196 lines
6.2 KiB
Java
196 lines
6.2 KiB
Java
package com.qxcm.qxlive;
|
|
|
|
|
|
import android.app.Activity;
|
|
import android.content.Intent;
|
|
import android.os.Bundle;
|
|
import android.os.Handler;
|
|
import android.os.PersistableBundle;
|
|
import android.util.Log;
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
|
import com.alibaba.android.arouter.launcher.ARouter;
|
|
import com.qxcm.qxlive.databinding.ActivityLaunchPageBinding;
|
|
import com.xscm.modulemain.BaseMvpActivity;
|
|
import com.xscm.modulemain.activity.WebViewActivity;
|
|
import com.xscm.moduleutil.activity.IPresenter;
|
|
import com.xscm.moduleutil.activity.IView;
|
|
import com.xscm.moduleutil.base.AppStateListener;
|
|
import com.xscm.moduleutil.base.AppStateManager;
|
|
import com.xscm.moduleutil.base.CommonAppContext;
|
|
import com.xscm.modulemain.dialog.PolicyDialog;
|
|
import com.xscm.moduleutil.base.WebUrlConstants;
|
|
import com.xscm.moduleutil.utils.ARouteConstants;
|
|
import com.xscm.moduleutil.utils.SpUtil;
|
|
/**
|
|
APP准备启动
|
|
*
|
|
* _oo0oo_
|
|
* o8888888o
|
|
* 88" . "88
|
|
* (| -_- |)
|
|
* 0\ = /0
|
|
* ___/`---'\___
|
|
* .' \\| |// '.
|
|
* / \\||| : |||// \
|
|
* / _||||| -卍-|||||- \
|
|
* | | \\\ - /// | |
|
|
* | \_| ''\---/'' |_/ |
|
|
* \ .-\__ '-' ___/-. /
|
|
* ___'. .' /--.--\ `. .'___
|
|
* ."" '< `.___\_<|>_/___.' >' "".
|
|
* | | : `- \`.;`\ _ /`;.`/ - ` : | |
|
|
* \ \ `_. \_ __\ /__ _/ .-` / /
|
|
*=====`-.____`.___ \_____/___.-`___.-'=====
|
|
* `=---='
|
|
*
|
|
* 佛祖保佑 永无BUG
|
|
* 佛曰:
|
|
* 写字楼里写字间,写字间里程序员;
|
|
* 程序人员写程序,又拿程序换酒钱。
|
|
* 酒醒只在网上坐,酒醉还来网下眠;
|
|
* 酒醉酒醒日复日,网上网下年复年。
|
|
* 但愿老死电脑间,不愿鞠躬老板前;
|
|
* 奔驰宝马贵者趣,公交自行程序员。
|
|
* 别人笑我忒疯癫,我笑自己命太贱;
|
|
* 不见满街漂亮妹,哪个归得程序员?
|
|
*/
|
|
public class LaunchPageActivity extends BaseMvpActivity<IPresenter,ActivityLaunchPageBinding> implements IView<Activity> {
|
|
private Handler handler;
|
|
private PolicyDialog policyDialog;
|
|
private AppStateListener appStateListener;
|
|
|
|
@Override
|
|
public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
|
|
super.onCreate(savedInstanceState, persistentState);
|
|
|
|
// 获取Application实例并设置监听器
|
|
CommonAppContext app = (CommonAppContext) getApplication();
|
|
appStateListener = AppStateManager.getInstance();
|
|
app.setAppStateListener(appStateListener);
|
|
|
|
if (!isTaskRoot()) {
|
|
|
|
if (SpUtil.getUnderagePassword() != null && !SpUtil.getUnderagePassword().isEmpty()) {
|
|
Intent intent = new Intent(this, WebViewActivity.class);
|
|
intent.putExtra("url", String.format(WebUrlConstants.INSTANCE.getWEB_ADOLESCENT_URL(),SpUtil.getToken()));
|
|
intent.putExtra("title", "1");
|
|
startActivity(intent);
|
|
} else {
|
|
// 如果没有设置青少年模式,应该导航到首页
|
|
try {
|
|
ARouter.getInstance().build(ARouteConstants.ME).navigation();
|
|
} catch (Exception e) {
|
|
Log.e("LaunchPageActivity", "导航到首页失败", e);
|
|
}
|
|
}
|
|
finish();
|
|
return;
|
|
}
|
|
// if (shouldRestoreRoom()) {
|
|
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页").withString("roomId", CommonAppContext.getInstance().playId).navigation();
|
|
// }
|
|
|
|
}
|
|
|
|
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 IPresenter bindPresenter() {
|
|
return null;
|
|
}
|
|
|
|
@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;
|
|
}
|
|
|
|
}
|
|
} |