package com.xscm.midi; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.PersistableBundle; import androidx.annotation.Nullable; import com.alibaba.android.arouter.launcher.ARouter; import com.xscm.modulelogin.activity.ImproveInfoActivity; import com.xscm.moduleutil.activity.BaseAppCompatActivity; import com.xscm.moduleutil.base.CommonAppContext; import com.xscm.moduleutil.dialog.PolicyDialog; import com.xscm.moduleutil.utils.ARouteConstants; import com.xscm.moduleutil.utils.SpUtil; import com.xscm.midi.databinding.ActivityLaunchPageBinding; public class LaunchPageActivity extends BaseAppCompatActivity { private Handler handler; private PolicyDialog policyDialog; @Override public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) { super.onCreate(savedInstanceState, persistentState); if (!isTaskRoot()) { // if (shouldRestoreRoom()){ // ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页").withString("roomId", CommonAppContext.getInstance().playId).navigation(); // } if (SpUtil.getUnderagePassword() != null && !SpUtil.getUnderagePassword().isEmpty()) { ARouter.getInstance().build(ARouteConstants.H5).withString("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url() + "/web/index.html#/pages/feedback/teenage?id=" + SpUtil.getToken()) .withString("type","1").navigation();//type==1:青少年模式 } finish(); return; } } private boolean shouldRestoreRoom() { // 检查是否应该恢复房间: // 1. 应用有正在播放的房间 // 2. 应用应该显示房间 // 3. 应用是从后台恢复的(通过检查 CommonAppContext 状态) return CommonAppContext.getInstance().isPlaying && CommonAppContext.getInstance().isShow; } @Override protected void initData() { handler = new Handler(); // 定义一个Runnable Runnable runnable = new Runnable() { @Override public void run() { initLogin(); } }; if (SpUtil.isAgreePolicy()) { initLogin(); // //延迟1.5秒执行 // handler.postDelayed(runnable, 2500); } else { policyDialog = new PolicyDialog(this); policyDialog.setCancelable(false); policyDialog.setCanceledOnTouchOutside(false); policyDialog.setPolicyClickListener(new PolicyDialog.PolicyClickListener() { @Override public void policyAgree() { SpUtil.completeAgreePolicy(); // CommonAppContext.getInstance().initialization(); initLogin(); } @Override public void policyExit() { finish(); } }); policyDialog.show(); } } @Override protected void onDestroy() { // 如果 PolicyDialog 仍在显示,则 dismiss 它 if (policyDialog != null && policyDialog.isShowing()) { policyDialog.dismiss(); policyDialog = null; } // 移除所有待处理的回调以防止内存泄漏 if (handler != null) { handler.removeCallbacksAndMessages(null); } super.onDestroy(); } @Override protected void initView() { } private void initLogin() { // 在启动新 Activity 前先关闭对话框 if (policyDialog != null && policyDialog.isShowing()) { policyDialog.dismiss(); policyDialog = null; } startActivity(new Intent(this, PasswordLoginActivity.class)); finish(); } @Override protected int getLayoutId() { return R.layout.activity_launch_page; } @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (!isTaskRoot()) { finish(); return; } } }