SplashActivity.java 5.27 KB
package com.vlion.simple;

import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;

import com.vlion.ad.core.Config;
import com.vlion.ad.moudle.splash.SplashManager;
import com.vlion.ad.moudle.splash.SplashViewListener;
import com.vlion.simple.util.PermissionHelper;
import com.vlion.simple.util.ScreenUtil;

/**
 * Created by gujun on 2017/10/11.
 */

public class SplashActivity extends AppCompatActivity {

    private static final String TAG = "SplashActivity";

    private PermissionHelper mPermissionHelper;

    private View defaultLayout, adLayout;
    private RelativeLayout splashAdContainer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);
        defaultLayout = findViewById(R.id.defaultLayout);
        adLayout = findViewById(R.id.adLayout);
        splashAdContainer = (RelativeLayout) findViewById(R.id.splashAdContainer);

        // 当系统为6.0以上时,需要申请权限
        mPermissionHelper = new PermissionHelper(this);
        mPermissionHelper.setOnApplyPermissionListener(new PermissionHelper.OnApplyPermissionListener() {
            @Override
            public void onAfterApplyAllPermission() {
                Log.i(TAG, "All of requested permissions has been granted, so run app logic.");
                startApp();
            }
        });

        if (Build.VERSION.SDK_INT < 23) {
            // 如果系统版本低于23,直接跑应用的逻辑
            Log.d(TAG, "The api level of system is lower than 23, so run app logic directly.");
            startApp();
        } else {
            // 如果权限全部申请了,那就直接跑应用逻辑
            if (mPermissionHelper.isAllRequestedPermissionGranted()) {
                Log.d(TAG, "All of requested permissions has been granted, so run app logic directly.");
                startApp();
            } else {
                // 如果还有权限为申请,而且系统版本大于23,执行申请权限逻辑
                Log.i(TAG, "Some of requested permissions hasn't been granted, so apply permissions first.");
                mPermissionHelper.applyPermissions();
            }
        }
    }

    private void startApp() {
        defaultLayout.setVisibility(View.VISIBLE);
        adLayout.setVisibility(View.GONE);

        SplashManager.getInstance().setTargetClass(MainActivity.class);
        SplashManager.getInstance().setAutoJumpToTargetWhenShowFailed(true);
        SplashManager.getInstance().setSplashViewContainer(splashAdContainer);
        SplashManager.getInstance().setAdScalingModel(Config.AD_SCALING_MODE_SCALE_TO_FIT);
        SplashManager.getInstance().showSplash(this, "353", R.mipmap.ic_launcher, new SplashViewListener() {

            @Override
            public void onRequestSuccess(int viewWidth, int viewHeight) {
                Log.e(TAG, "onRequestSuccess: " + viewWidth + "," + viewHeight);
                splashAdContainer.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT;
                splashAdContainer.getLayoutParams().height = ScreenUtil.getScreenWidth(SplashActivity.this) * viewHeight / viewWidth;
            }

            @Override
            public void onRequestFailed(int code, String errorMsg) {
                Log.e(TAG, "onRequestFailed: " + code + "," + errorMsg);
            }

            @Override
            public void onShowSuccess() {
                Log.e(TAG, "onShowSuccess: ");
                defaultLayout.setVisibility(View.GONE);
                adLayout.setVisibility(View.VISIBLE);
            }

            @Override
            public void onShowFailed(int code, String msg) {
                Log.e(TAG, "onShowFailed: " + code + "," + msg);
            }

            @Override
            public void onSplashClicked() {
                Log.e(TAG, "onSplashClicked: ");
            }

            @Override
            public void onSplashClosed() {
                Log.e(TAG, "onSplashClosed: ");
            }

            @Override
            public void onSwitchSplash() {
                Log.e(TAG, "onSwitchSplash: ");
            }
        });
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        mPermissionHelper.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        mPermissionHelper.onActivityResult(requestCode, resultCode, data);
    }

    @Override
    protected void onResume() {
        super.onResume();
        SplashManager.getInstance().onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        SplashManager.getInstance().onPause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        SplashManager.getInstance().onDestroy();
    }
}