From 3a154bdb0a5aaa2c0ac3eac95a6ba747068bd454 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 13 一月 2026 10:00:37 +0800
Subject: [PATCH] 优化

---
 keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/base/MyBaseActivity.java |  165 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 165 insertions(+), 0 deletions(-)

diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/base/MyBaseActivity.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/base/MyBaseActivity.java
new file mode 100644
index 0000000..b9533e3
--- /dev/null
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/base/MyBaseActivity.java
@@ -0,0 +1,165 @@
+package com.doumee.keyCabinet.base;
+
+import android.graphics.drawable.AnimationDrawable;
+import android.os.Build;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.ImageView;
+
+import androidx.annotation.Nullable;
+import androidx.databinding.ViewDataBinding;
+
+import com.doumee.lib_coremodel.base.BaseActivity;
+import com.doumee.lib_coremodel.base.BaseProgressDialog;
+import com.doumee.lib_coremodel.base.BaseViewModel;
+import com.doumee.lib_coremodel.util.SpUtil;
+import com.doumee.keyCabinet.MApplication;
+import com.doumee.keyCabinet.R;
+import com.doumee.keyCabinet.ui.main.MainActivity;
+import com.doumee.keyCabinet.utils.LanguageUtil;
+import com.doumee.keyCabinet.utils.LogoutTool;
+
+public abstract class MyBaseActivity<VM extends BaseViewModel,VDB extends ViewDataBinding> extends BaseActivity<VM ,VDB> {
+    protected boolean isAddCountTimer = true;
+    protected boolean isToGuild = false;
+    protected boolean isHideBottomUIMenu = true;
+
+    @Override
+    public void onAttachedToWindow() {
+        super.onAttachedToWindow();
+        setLanguage();
+    }
+
+    private void setLanguage() {
+        String language = SpUtil.getString("language");
+        if(TextUtils.isEmpty(language)){
+            return;
+        }
+        LanguageUtil.changeAppLanguage(this,language);
+    }
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        if(isHideBottomUIMenu) {
+            hideBottomUIMenu();
+        }
+        super.onCreate(savedInstanceState);
+        LogoutTool.activities.add(this);
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        initCountTimer();
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+        stopCountTimer();
+    }
+
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent ev) {
+        switch (ev.getAction()) {
+            //鑾峰彇瑙︽懜鍔ㄤ綔锛屽鏋淎CTION_UP锛岃鏃跺紑濮嬨��
+            case MotionEvent.ACTION_UP:
+                downTime = 60;
+                initCountTimer();
+                break;
+            //鍚﹀垯鍏朵粬鍔ㄤ綔璁℃椂鍙栨秷
+            default:
+                stopCountTimer();
+                break;
+        }
+        return super.dispatchTouchEvent(ev);
+    }
+
+    protected long downTime = 60;
+
+    protected void initCountTimer(){
+        if(!isAddCountTimer){
+            return;
+        }
+        MApplication.initCountTimer(downTime*1000,timerCallBack);
+        MApplication.startCountTimer();
+    }
+
+    private MApplication.CountTimerCallBack timerCallBack = new MApplication.CountTimerCallBack() {
+        @Override
+        public void onFinish() {
+            if(isFinishing()){
+                return;
+            }
+            LogoutTool.backToActivity(MainActivity.class.getSimpleName(),getContext());
+        }
+
+        @Override
+        public void onTick(long millisUntilFinished) {
+            if(isFinishing()){
+                return;
+            }
+            timeChange((millisUntilFinished/1000)+"s");
+        }
+    };
+
+    protected void stopCountTimer(){
+        if(!isAddCountTimer){
+            return;
+        }
+        MApplication.stopCountTimer();
+    }
+
+    protected void timeChange(String djs){
+
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        LogoutTool.activities.remove(this);
+        timerCallBack = null;
+    }
+
+    protected void hideBottomUIMenu() {
+        //闅愯棌铏氭嫙鎸夐敭锛屽苟涓斿叏灞�
+        if (Build.VERSION.SDK_INT  <=11 && Build.VERSION.SDK_INT < 19) { // lower api
+            View v = this.getWindow().getDecorView();
+            v.setSystemUiVisibility(View.GONE);
+        } else if (Build.VERSION.SDK_INT  >= 19) {
+            Window _window = getWindow();
+            WindowManager.LayoutParams params = _window.getAttributes();
+            params.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION|View.SYSTEM_UI_FLAG_IMMERSIVE;
+            _window.setAttributes(params);
+        }
+    }
+
+    @Override
+    protected void showProgressDialog(boolean isCancel){
+        showProgressDialog(R.layout.custom_progress_bar,isCancel);
+    }
+
+    @Override
+    protected void showProgressDialog(View v, boolean isCancel){
+        dismissProgressDialog();
+        ImageView img = v.findViewById(R.id.loading_image);
+        AnimationDrawable anim = (AnimationDrawable) img.getDrawable();
+        anim.start();
+        mProgressDialog =  BaseProgressDialog.newInstance(getContext());
+        mProgressDialog.setContentView(v);
+        mProgressDialog.setCanceledOnTouchOutside(isCancel);
+        mProgressDialog.show();
+        /*try {
+            mProgressDialog = ProgressDialog.show(this, "", );
+            mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
+            mProgressDialog.setCancelable(isCancel);
+            mProgressDialog.show();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }*/
+    }
+}

--
Gitblit v1.9.3