From ecaf8069072e71db4bff94671e72764b211d6af1 Mon Sep 17 00:00:00 2001
From: Linjiajia <319408893@qq.com>
Date: 星期四, 26 十月 2023 00:43:51 +0800
Subject: [PATCH] 功能完善

---
 app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java |   50 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 33 insertions(+), 17 deletions(-)

diff --git a/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java b/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java
index 300fbaa..bc15915 100644
--- a/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java
+++ b/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java
@@ -5,6 +5,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.Window;
@@ -15,30 +16,30 @@
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.databinding.DataBindingUtil;
 import androidx.databinding.ViewDataBinding;
+import androidx.drawerlayout.widget.DrawerLayout;
 import androidx.lifecycle.Observer;
 import androidx.lifecycle.ViewModelProvider;
 
 import com.android.app_base.action.TitleBarAction;
-import com.android.app_base.base.BaseApplication;
 import com.android.app_base.base.action.ClickAction;
 import com.android.app_base.base.viewmodel.BaseViewModel;
 import com.android.app_base.base.StateViewEnum;
-import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.base.viewmodel.SimpleViewModel;
 import com.blankj.utilcode.util.ToastUtils;
 import com.gyf.immersionbar.ImmersionBar;
 import com.hjq.bar.TitleBar;
 
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
+import java.util.Set;
 
 /**
  *  Activity鍩虹被,鎵�鏈夌殑 Activity 閮借缁ф壙姝ょ被
  */
-public abstract class BaseActivity<V extends ViewDataBinding,VM extends BaseViewModel> extends AppCompatActivity implements TitleBarAction, ClickAction {
-    protected V binding;
+public abstract class BaseActivity<VDB extends ViewDataBinding,VM extends BaseViewModel> extends AppCompatActivity implements TitleBarAction, ClickAction {
+    protected VDB binding;
     protected VM viewModel;
     private int viewModelId;
-
     /**
      * 鏍囬鏍忓璞�
      */
@@ -47,8 +48,6 @@
      * 鐘舵�佹爮娌夋蹈
      */
     private ImmersionBar mImmersionBar;
-
-
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -61,10 +60,6 @@
         initView();
         //椤甸潰浜嬩欢鐩戝惉鐨勬柟娉曪紝鐢ㄤ簬ViewModel灞傝浆鍒癡iew灞傜殑浜嬩欢娉ㄥ唽
         initLiveDataObserve();
-    }
-    @Override
-    protected void onResume() {
-        super.onResume();
         //椤甸潰鏁版嵁鍒濆鍖栨柟娉�
         initData();
     }
@@ -91,6 +86,7 @@
         initStateView();
         //鍒濆鍖栨矇娴稿紡鐘舵�佹爮鍜� titleBar
         initStatusBar();
+        initSoftKeyboard();
     }
 
     /**
@@ -98,8 +94,7 @@
      */
     protected void initViewDataBindingAndViewModel() {
         if (getLayoutId() > 0) {
-            binding = DataBindingUtil.setContentView(this, getLayoutId());
-            initSoftKeyboard();
+            binding = initViewBinding();
         }
         viewModelId = getVariableId();
         viewModel = initViewModel();
@@ -114,6 +109,13 @@
             getLifecycle().addObserver(viewModel);
         }
     }
+
+    /**
+     * 鍒濆鍖朧iewBinding
+     */
+    protected VDB initViewBinding() {
+        return DataBindingUtil.setContentView(this, getLayoutId());
+    }
     /**
      * 鍒濆鍖朧iewModel
      * @return 杩斿洖涓�涓猇iewModel
@@ -124,11 +126,12 @@
         if (type instanceof ParameterizedType){
             vmClass = (Class) ((ParameterizedType) type).getActualTypeArguments()[1];
         } else {
-            //濡傛灉娌℃湁鎸囧畾娉涘瀷鍙傛暟锛屽垯榛樿浣跨敤BaseViewModel
-            vmClass = (Class<VM>) BaseViewModel.class;
+            //濡傛灉娌℃湁鎸囧畾娉涘瀷鍙傛暟锛屽垯榛樿浣跨敤SimpleViewModel
+            vmClass = (Class<VM>) SimpleViewModel.class;
         }
         return new ViewModelProvider(this, (ViewModelProvider.Factory) ViewModelProvider.AndroidViewModelFactory.getInstance(getApplication())).get(vmClass);
     }
+
 
     /**
      * 瀵圭姸鎬佽鍥緇iveData杩涜瑙傚療鐩戝惉
@@ -146,6 +149,9 @@
                         break;
                     case DATA_LOADING:
                         dataLoading();
+                        break;
+                    case DATA_FINISH:
+                        dataFinish();
                         break;
                     case DATA_ERROR:
                         dataError();
@@ -167,19 +173,27 @@
         viewModel.getMessageLivaData().observe(this, new Observer<String>() {
             @Override
             public void onChanged(String message) {
-                ToastUtils.showShort(message);
+                if (!TextUtils.isEmpty(message)){
+                    ToastUtils.showShort(message);
+                }
             }
         });
     }
+
+
+
     /**
      * 缂虹渷椤电瓑鐘舵�佽鍥剧殑鏇存柊
      * 鏈夐渶姹傜殑锛屽湪瀛愮被閫夋嫨閲嶅啓
      */
     protected void dialogLoading() {
+
     }
     protected void dialogDismiss() {
     }
     protected void dataLoading() {
+    }
+    protected void dataFinish() {
     }
     protected void dataError() {
     }
@@ -194,12 +208,14 @@
      * 鍒濆鍖栨矇娴稿紡鐘舵�佹爮
      */
     protected void initStatusBar(){
+        if (getTitleBar() != null) {
+            getTitleBar().setOnTitleBarListener(this);
+        }
         if (isStatusBarImmersionEnabled()) {
             getImmersionBarConfig().init();
             // 璁剧疆鏍囬鏍忔矇娴�()
             if (getTitleBar() != null) {
                 ImmersionBar.setTitleBar(this, getTitleBar());
-                getTitleBar().setOnTitleBarListener(this);
             }
         }
     }

--
Gitblit v1.9.1