nilupeng
2022-08-10 2270c82c340e89b40291efa144dd5dd73710ff51
app/src/main/java/com/runt/open/mvvm/ui/splash/SplashActivity.java
@@ -1,19 +1,17 @@
package com.runt.open.mvvm.ui.splash;
import android.content.Intent;
import android.os.Build;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import androidx.annotation.NonNull;
import androidx.lifecycle.Observer;
import com.bytedance.sdk.openadsdk.TTSplashAd;
import com.runt.open.mvvm.MainActivity;
import com.google.gson.Gson;
import com.runt.open.mvvm.base.activities.BaseActivity;
import com.runt.open.mvvm.base.model.ImpViewModel;
import com.runt.open.mvvm.config.Configuration;
import com.runt.open.mvvm.databinding.ActivitySplashBinding;
import com.runt.open.mvvm.ui.login.UserBean;
import com.runt.open.mvvm.ui.main.MainActivity;
/**
@@ -21,73 +19,38 @@
 *
 * @purpose Created by Runt (qingingrunt2010@qq.com) on 2020-4-16.
 */
public class SplashActivity extends BaseActivity<ActivitySplashBinding,SplashViewModel> {
public class SplashActivity extends BaseActivity<ActivitySplashBinding, ImpViewModel> {
    final String TAG = "WelcomeActivity";
    @Override
    public void initViews() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
            // 延伸显示区域到刘海
            WindowManager.LayoutParams attributes = getWindow().getAttributes();
            attributes.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
            getWindow().setAttributes(attributes);
        }
        // 设置页面全屏显示 隐藏底部导航
        getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
    }
    Handler handler = new Handler(){
        boolean started = false;
        @Override
        public void handleMessage(@NonNull Message msg) {
            super.handleMessage(msg);
            if(!started) {//确保该语句只执行一次
                started = true;
    @Override
    public void loadData() {
        String json = getStringProjectPrefrence(Configuration.KEY_USERINFO);
        if(!isNull(json)){
            UserBean user = new Gson().fromJson(json ,UserBean.class);
            UserBean.setUser(user);
        }
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent intent = new Intent(mContext, MainActivity.class);
                startActivity(intent);
                finish();
            }
        }
    };
    @Override
    public void initViews() {
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);//全屏
        hideBottomUIMenu();
        viewModel.getSplashAd().observe(this, new Observer<TTSplashAd>() {
            @Override
            public void onChanged(TTSplashAd ttSplashAd) {
                binding.splashAdContainer.addView(ttSplashAd.getSplashView());
                //设置SplashView的交互监听器
                ttSplashAd.setSplashInteractionListener(new TTSplashAd.AdInteractionListener() {
                    @Override
                    public void onAdClicked(View view, int type) {
                        Log.d(TAG, "onAdClicked");
                    }
                    @Override
                    public void onAdShow(View view, int type) {
                        Log.d(TAG, "onAdShow");
                    }
                    @Override
                    public void onAdSkip() {
                        Log.d(TAG, "onAdSkip");
                        handler.sendMessage(new Message());
                    }
                    @Override
                    public void onAdTimeOver() {
                        Log.d(TAG, "onAdTimeOver");
                        handler.sendMessage(new Message());
                    }
                });
            }
        });
        viewModel.getTimeOut().observe(this, new Observer<Integer>() {
            @Override
            public void onChanged(Integer integer) {
                handler.sendMessage(new Message());
            }
        });
        viewModel.applyTdAd(mContext);;//请求广告
        },2000);
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        binding.splashAdContainer.removeAllViews();
    }
}