From b3a51f064c4dfb27f54cd9526803338d2e8dc296 Mon Sep 17 00:00:00 2001
From: Runt <qingingrunt2010@qq.com>
Date: Sat, 13 Aug 2022 16:26:49 +0000
Subject: [PATCH] 添加注释,部分优化

---
 app/src/main/java/com/runt/open/mvvm/base/activities/BaseFragmentActivity.java        |   73 ++++++++++++
 app/src/main/java/com/runt/open/mvvm/ui/coin/WithDrawActivity.java                    |    1 
 app/src/main/java/com/runt/open/mvvm/base/activities/BaseActivity.java                |  103 ++++++++++++----
 app/src/main/java/com/runt/open/mvvm/ui/adapter/NumAdapter.java                       |    1 
 app/src/main/java/com/runt/open/mvvm/base/activities/LoadPageActivity.java            |   12 +
 app/src/main/java/com/runt/open/mvvm/retrofit/utils/RetrofitUtils.java                |    4 
 app/src/main/java/com/runt/open/mvvm/ui/adapter/CoinTransAdapter.java                 |    1 
 app/src/main/java/com/runt/open/mvvm/base/model/LoadPageViewModel.java                |   16 --
 app/src/main/java/com/runt/open/mvvm/retrofit/Interceptor/AddHeadersInterceptor.java  |   39 ++++++
 app/src/main/java/com/runt/open/mvvm/base/adapter/BaseAdapter.java                    |   14 -
 app/src/main/java/com/runt/open/mvvm/ui/adapter/MsgAdapter.java                       |    4 
 app/src/main/java/com/runt/open/mvvm/ui/sign/SignInViewModel.java                     |    2 
 app/src/main/java/com/runt/open/mvvm/base/model/BaseViewModel.java                    |    9 +
 app/src/main/java/com/runt/open/mvvm/ui/main/MainActivity.java                        |    3 
 app/src/main/java/com/runt/open/mvvm/ui/coin/CoinSettingActivity.java                 |    2 
 app/src/main/java/com/runt/open/mvvm/base/fragments/BaseFragment.java                 |    5 
 app/src/main/java/com/runt/open/mvvm/base/activities/BaseTabActivity.java             |   13 ++
 /dev/null                                                                             |   11 -
 app/src/main/java/com/runt/open/mvvm/base/fragments/LoadPageFragment.java             |    4 
 app/src/main/java/com/runt/open/mvvm/ui/login/LoginViewModel.java                     |    3 
 app/src/main/java/com/runt/open/mvvm/base/fragments/BaseTabFragment.java              |    5 
 app/src/main/java/com/runt/open/mvvm/retrofit/api/CommonApiCenter.java                |   17 ++
 app/src/main/java/com/runt/open/mvvm/retrofit/Interceptor/HttpLoggingInterceptor.java |   16 ++
 app/src/main/java/com/runt/open/mvvm/ui/adapter/CalendarAdapter.java                  |    1 
 24 files changed, 270 insertions(+), 89 deletions(-)

diff --git a/app/src/main/java/com/runt/open/mvvm/base/activities/BaseActivity.java b/app/src/main/java/com/runt/open/mvvm/base/activities/BaseActivity.java
index b60cc95..5610e15 100644
--- a/app/src/main/java/com/runt/open/mvvm/base/activities/BaseActivity.java
+++ b/app/src/main/java/com/runt/open/mvvm/base/activities/BaseActivity.java
@@ -43,11 +43,16 @@
  */
 public abstract class BaseActivity<VB extends ViewBinding,VM extends BaseViewModel> extends AppCompatActivity {
 
-    protected  VB mBinding;
-    protected  VM mViewModel;
+    //viewbind
+    protected VB mBinding;
+    //viewmodel
+    protected VM mViewModel;
     protected String TAG ;
+    //文件读取权限
     public final String[] FILE_PERMISSIONS = new String []{Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE};
+    //夹带摄像头权限
     public final String[] CAMERA_PERMISSIONS = new String[]{ FILE_PERMISSIONS[0],FILE_PERMISSIONS[1], Manifest.permission.CAMERA};
+    //夹带录音权限
     public final String[] CAMERA_RECORD_PERMISSIONS = new String[]{ FILE_PERMISSIONS[0],FILE_PERMISSIONS[1], Manifest.permission.CAMERA,Manifest.permission.RECORD_AUDIO};
 
     public static final String PARAMS_TITLE = "title";
@@ -82,6 +87,7 @@
             RESULT_CODE_SUCESS = 4046/*成功*/,
             RESULT_CODE_CANCEL = 4043/*取消*/;
     protected Context mContext;
+    //标题栏
     protected TitleBarView titleBarView;
 
 
@@ -89,10 +95,11 @@
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         // get genericity "B"
-        setStatusBarBgColor(R.color.white);
-        setStatusBarTextColor(true);
+        setStatusBarBgColor(R.color.white);//白色状态栏
+        setStatusBarTextColor(true);//状态栏文本黑色
         final ParameterizedType type = (ParameterizedType) this.getClass().getGenericSuperclass();
         try {
+            //实例化泛型类
             Class<VB> entityClass = (Class<VB>) type.getActualTypeArguments()[0];
             Method method = entityClass.getMethod("inflate", LayoutInflater.class);//get method from name "inflate";
             mBinding = (VB) method.invoke(entityClass,getLayoutInflater());//execute method to create a objct of viewbind;
@@ -111,32 +118,45 @@
         } catch (Exception e) {
         }
         TAG = this.getClass().getSimpleName();
-        initViews();
+        initViews();//初始化UI
         mViewModel.onCreate(this);
-        loadData();
+        loadData();//加载数据
     }
 
     public abstract void initViews();
 
     public abstract void loadData();
 
+    /**
+     * 是否为空
+     * @param object
+     * @return
+     */
     public boolean isNull(Object object){
         return object == null || object.toString().trim().equals("") || object.equals("null");
     }
 
+    /**
+     * 设置标题
+     * @param text
+     */
     protected void setTitle(String text){
         titleBarView.setTitleText(text);
     }
 
-    protected void onTitleLeftClick(){
-        onBackKeyDown();
-    }
-
+    /**
+     * 标题栏右侧文本
+     * @param text
+     */
     protected void setTitleRight(String text){
         titleBarView.setRightText(text);
         titleBarView.setRightDra(null);
     }
 
+    /**
+     * 标题栏右侧图片
+     * @param drawable
+     */
     protected void setTitleRight(Drawable drawable){
         titleBarView.setRightText(null);
         titleBarView.setRightDra(drawable);
@@ -145,35 +165,61 @@
 
     AlertDialog dialog;
     /**
-     * 显示弹框
-     * @param title
-     * @param msg
-     * @param resPonse
+     * 显示输入框弹框
+     * @param title     标题
+     * @param msg       消息
+     * @param resPonse  回调
      */
     public void showDialog(String title,String msg,ResPonse resPonse){
         showDialog(title,msg,"确认","取消",resPonse);
     }
 
+    /**
+     * 显示输入框弹框
+     * @param title     标题
+     * @param msg       消息
+     * @param hint      默认消息文本
+     * @param resPonse  回调
+     */
     public void showInputDialog(String title,String msg,String hint,ResPonse resPonse){
         showInputDialog(title,msg,hint,"确认","取消",resPonse);
     }
 
+    /**
+     * 显示输入框弹框
+     * @param title     标题
+     * @param msg       消息
+     * @param hint      默认消息文本
+     * @param btnOk     确认按钮文本
+     * @param btnCancel 取消按钮文本
+     * @param resPonse  回调
+     */
     public void showInputDialog(String title, String msg, String hint,String btnOk,String btnCancel,final  ResPonse resPonse){
         showDialog(title,msg,hint,btnOk,btnCancel,resPonse,true);
     }
 
     /**
      * 显示弹框
-     * @param title
-     * @param msg
-     * @param btnOk
-     * @param btnCancel
-     * @param resPonse
+     * @param title     标题
+     * @param msg       消息
+     * @param btnOk     确认按钮文本
+     * @param btnCancel 取消按钮文本
+     * @param resPonse  回调
      */
     public void showDialog(String title, String msg, String btnOk,String btnCancel,final  ResPonse resPonse){
         showDialog(title,msg,null,btnOk,btnCancel,resPonse,false);
     }
 
+    /**
+     * 显示弹框
+     * @param title     标题
+     * @param msg       消息
+     * @param hint      默认消息文本
+     * @param btnOk     确认按钮文本
+     * @param btnCancel 取消按钮文本
+     * @param resPonse  回调
+     * @param isEdit    是否为输入框
+     */
     private void showDialog(String title, String msg, String hint,String btnOk,String btnCancel,final  ResPonse resPonse,boolean isEdit){
 
         AlertDialog.Builder builder = new AlertDialog.Builder(this,R.style.TransparentDialog);
@@ -245,16 +291,23 @@
         }
     }
 
+    /**
+     * viewmodel 工厂创建实例
+     * @return
+     */
     public ViewModelProvider.Factory getViewModelFactory(){
         return ViewModelFactory.getInstance();
     }
 
+    /**
+     * 透明状态栏
+     * @param isBlack   是否为黑色文本
+     */
     public void setStatusBarTransparent(boolean isBlack){
         //透明状态栏
         getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
         //透明导航栏
         getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
-
         setStatusBarTextColor(isBlack);
         final ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) titleBarView.getLayoutParams();
         layoutParams.topMargin = layoutParams.topMargin+getStatusBarHeight();
@@ -410,12 +463,6 @@
         return storePath + File.separator +fileName;
     }
 
-
-    protected boolean onBackKeyDown() {
-        onBackPressed();
-        return false;
-    }
-
     /**
      * 拨打电话(直接拨打电话)
      * @param phoneNum 电话号码
@@ -435,11 +482,11 @@
                 });
     }
 
-
+    //===========================================
+    //以下为preferences操作
     public boolean getBooleanUserPrefrence(String key){
         return PreferencesUtils.getBoolean(this,key,false,PreferencesUtils.USER);
     }
-
     public boolean getBooleanProjectPrefrence(String key){
         return PreferencesUtils.getBoolean(this,key,false,PreferencesUtils.PROJECT);
     }
diff --git a/app/src/main/java/com/runt/open/mvvm/base/activities/BaseFragmentActivity.java b/app/src/main/java/com/runt/open/mvvm/base/activities/BaseFragmentActivity.java
new file mode 100644
index 0000000..298bfa5
--- /dev/null
+++ b/app/src/main/java/com/runt/open/mvvm/base/activities/BaseFragmentActivity.java
@@ -0,0 +1,73 @@
+package com.runt.open.mvvm.base.activities;
+
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+import androidx.viewbinding.ViewBinding;
+
+import com.runt.open.mvvm.R;
+import com.runt.open.mvvm.base.fragments.BaseFragment;
+import com.runt.open.mvvm.base.model.BaseViewModel;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 带有fragment切换的activity
+ *  继承此类,有效优化代码22行
+ * 试用于加载各种fragment需求的activity
+ * Created by Runt (qingingrunt2010@qq.com) on 2022/8/13.
+ */
+public class BaseFragmentActivity <VB extends ViewBinding,VM extends BaseViewModel>
+        extends BaseActivity<VB,VM>{
+
+
+    List<BaseFragment> fragments = new ArrayList<>();
+
+    /**
+     * 切换界面  要显示的fragnemt
+     * @param fragment
+     */
+    protected void showFragment(BaseFragment fragment){
+        showFragment(fragments.indexOf(fragment));
+    }
+
+    /**
+     * 切换界面  要显示的fragnemt
+     * @param position
+     */
+    protected void showFragment(int position){
+        if(position>fragments.size()-1|| position < 0){
+            showToast("当前fragment不在队列中");
+            return;
+        }
+        FragmentManager fragmentManager = getSupportFragmentManager();
+        FragmentTransaction transaction = fragmentManager.beginTransaction();
+        for(int i = 0 ; i < fragments.size() ; i ++){
+            if(i != position){
+                transaction.hide(fragments.get(i));
+            }
+        }
+        transaction.show(fragments.get(position));
+        transaction.commit();
+    }
+
+    /**
+     * 添加fragment
+     * @param fragment
+     */
+    protected void addAndShowFragment(BaseFragment fragment){
+        if(fragments.contains(fragment)){
+            showFragment(fragment);
+            return;
+        }
+        FragmentManager fragmentManager = getSupportFragmentManager();
+        FragmentTransaction transaction = fragmentManager.beginTransaction();
+        for(int i = 0 ; i < fragments.size() ; i ++){
+            transaction.hide(fragments.get(i));
+        }
+        transaction.add(R.id.framelayout,fragment).commit();
+        fragments.add(fragment);
+    }
+
+
+}
diff --git a/app/src/main/java/com/runt/open/mvvm/base/activities/BaseTabActivity.java b/app/src/main/java/com/runt/open/mvvm/base/activities/BaseTabActivity.java
index e02d83c..32b53c8 100644
--- a/app/src/main/java/com/runt/open/mvvm/base/activities/BaseTabActivity.java
+++ b/app/src/main/java/com/runt/open/mvvm/base/activities/BaseTabActivity.java
@@ -17,8 +17,12 @@
 import java.util.List;
 
 /**
+ * 带有tablayout activity封装(带有viewpager的视图父类)
+ * 继承此类,有效优化代码13行
+ * 项目中有过多含有viewpager的activity可调用,其他情况下不建议使用,优化代码量不佳
  * Created by Administrator on 2021/11/4 0004.
  */
+@Deprecated
 public abstract class BaseTabActivity<B extends ViewBinding,VM extends BaseViewModel>  extends BaseActivity<B,VM> {
 
     TabLayout tabLayout;
@@ -50,9 +54,16 @@
         new TabLayoutMediator(tabLayout, viewPager2, (tab, position) -> tab.setText(tabTitles.get(position))).attach();
     }
 
-
+    /**
+     * tablayout 标题列表
+     * @return
+     */
     protected abstract List<String> initTabTitles();
 
+    /**
+     * 初始化fragment列表
+     * @return
+     */
     protected abstract List<BaseFragment> initFragments();
 
     protected List<String> getTabTitles(){
diff --git a/app/src/main/java/com/runt/open/mvvm/base/activities/LoadPageActivity.java b/app/src/main/java/com/runt/open/mvvm/base/activities/LoadPageActivity.java
index 245f461..44a86d1 100644
--- a/app/src/main/java/com/runt/open/mvvm/base/activities/LoadPageActivity.java
+++ b/app/src/main/java/com/runt/open/mvvm/base/activities/LoadPageActivity.java
@@ -1,5 +1,8 @@
 package com.runt.open.mvvm.base.activities;
 
+import android.view.MotionEvent;
+import android.view.View;
+
 import androidx.annotation.NonNull;
 import androidx.lifecycle.Observer;
 import androidx.recyclerview.widget.LinearLayoutManager;
@@ -21,6 +24,9 @@
 import java.util.Map;
 
 /**
+ * 含有上拉刷新的Activity
+ * 继承此类,有效优化代码60行
+ * 试用于 有下拉刷新,上拉加载等分页需求的界面
  * Created by Administrator on 2021/11/4 0004.
  */
 public abstract class LoadPageActivity<VB extends ViewBinding,VM extends LoadPageViewModel,A extends BaseAdapter,RESULT>
@@ -30,11 +36,13 @@
     //适配器
     protected A adapter;
 
-    protected abstract String initTitle();
+    protected String initTitle(){return null;}
 
     @Override
     public void initViews() {
-        setTitle(initTitle());
+        if(initTitle() != null) {
+            setTitle(initTitle());
+        }
         try {
             Class<A> entityClass = (Class<A>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[2];
             this.adapter = entityClass.newInstance();//实例化泛型
diff --git a/app/src/main/java/com/runt/open/mvvm/base/adapter/BaseAdapter.java b/app/src/main/java/com/runt/open/mvvm/base/adapter/BaseAdapter.java
index 00f3fd9..a494dcf 100644
--- a/app/src/main/java/com/runt/open/mvvm/base/adapter/BaseAdapter.java
+++ b/app/src/main/java/com/runt/open/mvvm/base/adapter/BaseAdapter.java
@@ -17,8 +17,8 @@
 
 /**
  * Created by Administrator on 2021/10/27 0027.
- *  T  数据类型
- *  V 适配器视图
+ *  DATA  数据类型
+ *  VB 适配器视图
  */
 public abstract class BaseAdapter<DATA, VB extends ViewBinding> extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
 
@@ -75,16 +75,9 @@
     @Override
     public ViewBindHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
         if(viewType == 1 ){
-            // get genericity "B"
             try {
+                //实例化viewbind
                 Class<VB> entityClass = (Class<VB>) ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments()[1];
-                /*for(Method method: entityClass.getMethods()){
-                    StringBuilder sb = new StringBuilder();
-                    for(Class type : method.getParameterTypes()){
-                        sb.append(type.getSimpleName()+",");
-                    }
-                    Log.e("BaseAdapter",String.format("method:%s,return:%s,param:%s",method.getName(),method.getReturnType().getSimpleName(),sb.toString()));
-                }*/
                 Method method = entityClass.getMethod("inflate", LayoutInflater.class,ViewGroup.class,boolean.class);//get method from name "inflate";
                 VB vBind = (VB) method.invoke(entityClass,LayoutInflater.from(parent.getContext()),parent,false);//execute method to create a objct of viewbind;
                 return new ViewBindHolder(vBind);
@@ -103,6 +96,7 @@
                 e.printStackTrace();
             }
         }
+        //加载空数据
         return new ViewBindHolder( LayoutNullBinding.inflate( LayoutInflater.from(parent.getContext()), parent, false ) );
     }
 
diff --git a/app/src/main/java/com/runt/open/mvvm/base/fragments/BaseFragment.java b/app/src/main/java/com/runt/open/mvvm/base/fragments/BaseFragment.java
index 5918601..16213a5 100644
--- a/app/src/main/java/com/runt/open/mvvm/base/fragments/BaseFragment.java
+++ b/app/src/main/java/com/runt/open/mvvm/base/fragments/BaseFragment.java
@@ -43,6 +43,7 @@
     public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
         // get genericity "B"
         try {
+            //实例化viewbind,viewmodel
             final ParameterizedType type = (ParameterizedType) this.getClass().getGenericSuperclass();
             Class<VB> entityClass = (Class<VB>) type.getActualTypeArguments()[0];
             Method method = entityClass.getMethod("inflate", LayoutInflater.class,ViewGroup.class,boolean.class);//get method from name "inflate";
@@ -52,6 +53,7 @@
         } catch (Exception e) {
             e.printStackTrace();
         }
+        //加载UI
         initViews();
         return mBinding.getRoot();
     }
@@ -73,6 +75,9 @@
         loadData();
     }
 
+    /**
+     * 该方法内调用getActivity()为空,需要在loadData()中使用
+     */
     public abstract void initViews();
 
     public abstract void loadData();
diff --git a/app/src/main/java/com/runt/open/mvvm/base/fragments/BaseTabFragment.java b/app/src/main/java/com/runt/open/mvvm/base/fragments/BaseTabFragment.java
index bf6878f..7ab8f97 100644
--- a/app/src/main/java/com/runt/open/mvvm/base/fragments/BaseTabFragment.java
+++ b/app/src/main/java/com/runt/open/mvvm/base/fragments/BaseTabFragment.java
@@ -13,9 +13,12 @@
 import java.util.List;
 
 /**
- * 带有tablayout fragment封装
+ * 带有tablayout fragment封装(带有viewpager的视图父类)
+ * 继承此类,有效优化代码13行
+ * 项目中有过多含有viewpager的fragment可调用,其他情况下不建议使用,优化代码量不佳
  * Created by Administrator on 2021/11/3 0003.
  */
+@Deprecated
 public abstract class BaseTabFragment<B extends ViewBinding,VM extends BaseViewModel> extends BaseFragment<B,VM> {
 
     TabLayout tabLayout;
diff --git a/app/src/main/java/com/runt/open/mvvm/base/fragments/LoadPageFragment.java b/app/src/main/java/com/runt/open/mvvm/base/fragments/LoadPageFragment.java
index 0b1855e..c32f594 100644
--- a/app/src/main/java/com/runt/open/mvvm/base/fragments/LoadPageFragment.java
+++ b/app/src/main/java/com/runt/open/mvvm/base/fragments/LoadPageFragment.java
@@ -21,7 +21,9 @@
 import java.util.Map;
 
 /**
- * 分页fragment 封装
+ * 含有上拉刷新的分页fragment
+ * 继承此类,有效优化代码60行
+ * 试用于 有下拉刷新,上拉加载等分页需求的界面
  * Created by Administrator on 2021/11/3 0003.
  */
 public abstract class LoadPageFragment<VB extends ViewBinding,VM extends LoadPageViewModel,A extends BaseAdapter,RESULT> extends BaseFragment<VB,VM>  implements OnRefreshLoadMoreListener {
diff --git a/app/src/main/java/com/runt/open/mvvm/base/model/BaseViewModel.java b/app/src/main/java/com/runt/open/mvvm/base/model/BaseViewModel.java
index fde9799..d799898 100644
--- a/app/src/main/java/com/runt/open/mvvm/base/model/BaseViewModel.java
+++ b/app/src/main/java/com/runt/open/mvvm/base/model/BaseViewModel.java
@@ -47,6 +47,9 @@
         this.mActivity = activity;
     }
 
+    /**
+     * 获取用户信息
+     */
     public void getUserBean(){
         httpObserverOn(commonApi.getUserBean(), new HttpObserver<UserBean>() {
             @Override
@@ -112,6 +115,10 @@
 
     }
 
+    /**
+     * 检查更新
+     * @param showTip
+     */
     public void checkUpdate(boolean showTip){
         Observable<HttpApiResult<Results.ApkVersion>> appUpdate = commonApi.getAppUpdate();
         HttpObserver<Results.ApkVersion> observer = new HttpObserver<Results.ApkVersion>(mActivity) {
@@ -259,7 +266,7 @@
 
 
     /**
-     * 网络请求观察
+     * 网络请求观察(加载框)
      * @param observable
      * @param <T>
      * @return
diff --git a/app/src/main/java/com/runt/open/mvvm/base/model/ItemViewModel.java b/app/src/main/java/com/runt/open/mvvm/base/model/ItemViewModel.java
deleted file mode 100644
index ef2d908..0000000
--- a/app/src/main/java/com/runt/open/mvvm/base/model/ItemViewModel.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.runt.open.mvvm.base.model;
-
-import androidx.lifecycle.MutableLiveData;
-
-/**
- * Created by Administrator on 2021/11/5 0005.
- */
-public class ItemViewModel<T> extends BaseViewModel {
-
-    MutableLiveData<T> liveData = new MutableLiveData<>();
-
-    public MutableLiveData<T> getLiveData() {
-        return liveData;
-    }
-}
diff --git a/app/src/main/java/com/runt/open/mvvm/base/model/LoadPageViewModel.java b/app/src/main/java/com/runt/open/mvvm/base/model/LoadPageViewModel.java
index 1cdb1a1..1f7fc47 100644
--- a/app/src/main/java/com/runt/open/mvvm/base/model/LoadPageViewModel.java
+++ b/app/src/main/java/com/runt/open/mvvm/base/model/LoadPageViewModel.java
@@ -29,9 +29,6 @@
 
     /**
      * 数据请求
-     */
-    /**
-     * 数据请求
      * @param page  页数
      * @param param 请求参数
      */
@@ -62,19 +59,6 @@
 
     public MutableLiveData getLiveFailed() {
         return liveFailed;
-    }
-
-    public class PageHttpObserver extends HttpObserver<PageResult<D>> {
-        @Override
-        protected void onSuccess(PageResult<D> data) {
-            liveData.postValue(data.rows);
-        }
-
-        @Override
-        protected void onFailed(HttpApiResult httpResult) {
-            mActivity.showToast(httpResult.msg);
-            liveFailed.postValue(1);
-        }
     }
 
 }
diff --git a/app/src/main/java/com/runt/open/mvvm/retrofit/Interceptor/AddHeadersInterceptor.java b/app/src/main/java/com/runt/open/mvvm/retrofit/Interceptor/AddHeadersInterceptor.java
new file mode 100644
index 0000000..66cd343
--- /dev/null
+++ b/app/src/main/java/com/runt/open/mvvm/retrofit/Interceptor/AddHeadersInterceptor.java
@@ -0,0 +1,39 @@
+package com.runt.open.mvvm.retrofit.Interceptor;
+
+
+import com.google.gson.Gson;
+import com.runt.open.mvvm.MyApplication;
+import com.runt.open.mvvm.data.PhoneDevice;
+import com.runt.open.mvvm.ui.login.UserBean;
+import com.runt.open.mvvm.util.DeviceUtil;
+
+import java.io.IOException;
+
+import okhttp3.Interceptor;
+import okhttp3.Request;
+import okhttp3.Response;
+
+/**
+ * My father is Object, ites purpose of   添加header拦截器
+ *
+ * @purpose Created by Runt (qingingrunt2010@qq.com) on 2021-10-8.
+ */
+public class AddHeadersInterceptor implements Interceptor {
+
+    @Override
+    public Response intercept(Chain chain) throws IOException {
+        return chain.proceed(addHeaders(chain.request()));
+    }
+
+    protected Request addHeaders(Request request){
+        Request.Builder requestBuild = request.newBuilder()
+                .addHeader("device", new Gson().toJson(PhoneDevice.getDevice()))
+                .addHeader("appVersion", DeviceUtil.getAppVersionName(MyApplication.getApplication()))
+                .addHeader("os", DeviceUtil.isHarmonyOS()? "harmony" : "android");
+        if(UserBean.getUser() != null){
+            requestBuild.addHeader("token", UserBean.getUser().getToken());
+        }
+        return requestBuild.build().newBuilder().build();
+    }
+
+}
diff --git a/app/src/main/java/com/runt/open/mvvm/retrofit/Interceptor/EncryptInterceptor.java b/app/src/main/java/com/runt/open/mvvm/retrofit/Interceptor/EncryptInterceptor.java
deleted file mode 100644
index fdf7e30..0000000
--- a/app/src/main/java/com/runt/open/mvvm/retrofit/Interceptor/EncryptInterceptor.java
+++ /dev/null
@@ -1,111 +0,0 @@
-package com.runt.open.mvvm.retrofit.Interceptor;
-
-
-import com.google.gson.Gson;
-import com.runt.open.mvvm.retrofit.utils.RSAUtils;
-
-import org.json.JSONObject;
-
-import java.io.IOException;
-import java.net.URLDecoder;
-import java.nio.charset.Charset;
-import java.util.HashMap;
-import java.util.Map;
-
-import okhttp3.FormBody;
-import okhttp3.Headers;
-import okhttp3.Interceptor;
-import okhttp3.MediaType;
-import okhttp3.MultipartBody;
-import okhttp3.Request;
-import okhttp3.RequestBody;
-import okhttp3.Response;
-import okio.Buffer;
-
-/**
- * My father is Object, ites purpose of     加密拦截器
- *
- * @purpose Created by Runt (qingingrunt2010@qq.com) on 2021-10-8.
- */
-public class EncryptInterceptor implements Interceptor {
-
-    protected static final Charset UTF8 = Charset.forName("UTF-8");
-    private final String ENCRYPT = "paramsString";
-
-    @Override
-    public Response intercept(Chain chain) throws IOException {
-        return chain.proceed(encryptRequest(chain.request()));
-    }
-
-
-    //加密
-    protected Request encryptRequest(Request request) throws IOException {
-        Headers headers = request.headers();
-        RequestBody requestBody = request.body();
-        Request.Builder builder = request.newBuilder();
-        for(int i = 0 ; i < headers.size() ; i ++){
-            builder.addHeader(headers.name(i),headers.value(i));
-        }
-        if(requestBody != null){
-            Charset charset = UTF8;
-            MediaType contentType = requestBody.contentType();
-            if (contentType != null) {
-                charset = contentType.charset(UTF8);
-            }
-            HashMap param = new HashMap();
-            if(requestBody instanceof MultipartBody){
-                MultipartBody body = (MultipartBody) requestBody;
-                for(MultipartBody.Part part:body.parts()){
-                    Buffer buffer1 = new Buffer();
-                    part.body().writeTo(buffer1);
-                    String str=buffer1.readString(charset).replaceAll("%(?![0-9a-fA-F]{2})","%25");
-                    param.put(part.headers().get(part.headers().name(0)), URLDecoder.decode(str, "UTF-8"));
-                }
-                MultipartBody.Builder mbuilder = new MultipartBody.Builder().setType(MultipartBody.FORM);
-                mbuilder.addFormDataPart(ENCRYPT,encryptParam(param));
-                builder.post(mbuilder.build());
-            }else if(requestBody instanceof FormBody){
-                FormBody body = (FormBody) requestBody;
-                for(int i = 0 ; i < body.size() ; i ++ ){
-                    param.put(body.name(i),body.value(i));
-                }
-                FormBody.Builder formBuild = new FormBody.Builder();
-                formBuild.add(ENCRYPT,encryptParam(param));
-                builder.post(formBuild.build());
-            }else{
-                Buffer buffer = new Buffer();
-                requestBody.writeTo(buffer);
-                String str = buffer.readString(charset);
-                String encrypt = encryptJson(str);
-                param.put(ENCRYPT,encrypt);
-                builder.post(RequestBody.create(MediaType.parse("application/json;charset=utf-8"), new JSONObject(param).toString()));
-            }
-        }
-        return builder.build();
-    }
-
-
-    /**
-     * 加密传递的参数
-     * @param params
-     * @return
-     */
-    public static String encryptParam(Map<String, Object> params){
-        return encryptJson(new JSONObject(params).toString());
-    }
-    public static String encryptJson(String json){
-        try {
-            //System.out.println("object:"+object);
-            Map signMap = new HashMap();
-            //用客户端私钥加签
-            signMap.put("sign",RSAUtils.sign(json,RSAUtils.getPrivateKey(RSAUtils.PRIVATE_KEY)));
-            signMap.put("body",json);
-            //System.out.println("signMap:"+signMap);
-            //用服务端公钥加密
-            return RSAUtils.encrypt(new Gson().toJson(signMap),RSAUtils.getPublicKey(RSAUtils.PUBLIC_KEY));
-        }catch (Exception e){
-            e.printStackTrace();
-            return e.getMessage();
-        }
-    }
-}
diff --git a/app/src/main/java/com/runt/open/mvvm/retrofit/Interceptor/HttpLoggingInterceptor.java b/app/src/main/java/com/runt/open/mvvm/retrofit/Interceptor/HttpLoggingInterceptor.java
index 59cb698..556ec33 100644
--- a/app/src/main/java/com/runt/open/mvvm/retrofit/Interceptor/HttpLoggingInterceptor.java
+++ b/app/src/main/java/com/runt/open/mvvm/retrofit/Interceptor/HttpLoggingInterceptor.java
@@ -31,7 +31,7 @@
  * @purpose Created by Runt (qingingrunt2010@qq.com) on 2020-10-21.
  */
 
-public class HttpLoggingInterceptor extends EncryptInterceptor {
+public class HttpLoggingInterceptor extends AddHeadersInterceptor {
 
     final String TAG = "HttpLogging";
 
@@ -65,7 +65,6 @@
         try {
             logArrays.addAll(getRequestLog(request));
             int position = logArrays.size() +2;
-            //request = encryptRequest(request);//加密
             response = chain.proceed(request);
             logArrays.addAll(getResponseLog(response));
             NetWorkCost netWorkCost = NetWorkListenear.workCostMap.get(hashCode);
@@ -109,6 +108,11 @@
         return response;
     }
 
+    /**
+     * 请求数据信息
+     * @param request
+     * @return
+     */
     private ArrayList<String> getRequestLog(Request request) throws IOException, JSONException {
         RequestBody requestBody = request.body();
         ArrayList<String> logArrays = new ArrayList<>();
@@ -175,7 +179,13 @@
 
     }
 
-
+    /**
+     * 返回的数据信息
+     * @param response
+     * @return
+     * @throws IOException
+     * @throws JSONException
+     */
     private ArrayList<String> getResponseLog(Response response) throws IOException, JSONException {
         ArrayList<String> logArrays = new ArrayList<>();
         ResponseBody responseBody = response.body();
diff --git a/app/src/main/java/com/runt/open/mvvm/retrofit/api/CommonApiCenter.java b/app/src/main/java/com/runt/open/mvvm/retrofit/api/CommonApiCenter.java
index c27a0bf..3beabf5 100644
--- a/app/src/main/java/com/runt/open/mvvm/retrofit/api/CommonApiCenter.java
+++ b/app/src/main/java/com/runt/open/mvvm/retrofit/api/CommonApiCenter.java
@@ -6,19 +6,28 @@
 import com.runt.open.mvvm.data.PageResult;
 import com.runt.open.mvvm.data.Results;
 import com.runt.open.mvvm.ui.login.UserBean;
-import io.reactivex.Observable;
-import okhttp3.MultipartBody;
-import retrofit2.http.*;
 
 import java.util.List;
 import java.util.Map;
+
+import io.reactivex.Observable;
+import okhttp3.MultipartBody;
+import retrofit2.http.Field;
+import retrofit2.http.FieldMap;
+import retrofit2.http.FormUrlEncoded;
+import retrofit2.http.GET;
+import retrofit2.http.Multipart;
+import retrofit2.http.POST;
+import retrofit2.http.Part;
+import retrofit2.http.Query;
+import retrofit2.http.QueryMap;
+import retrofit2.http.Url;
 
 /**
  * My father is Object, ites purpose of     常用接口
  *
  * @purpose Created by Runt (qingingrunt2010@qq.com) on 2021-7-21.
  */
-
 public interface CommonApiCenter {
 
     @GET
diff --git a/app/src/main/java/com/runt/open/mvvm/retrofit/utils/RetrofitUtils.java b/app/src/main/java/com/runt/open/mvvm/retrofit/utils/RetrofitUtils.java
index 65e3440..61fc860 100644
--- a/app/src/main/java/com/runt/open/mvvm/retrofit/utils/RetrofitUtils.java
+++ b/app/src/main/java/com/runt/open/mvvm/retrofit/utils/RetrofitUtils.java
@@ -2,7 +2,7 @@
 
 
 import com.runt.open.mvvm.BuildConfig;
-import com.runt.open.mvvm.retrofit.Interceptor.EncryptInterceptor;
+import com.runt.open.mvvm.retrofit.Interceptor.AddHeadersInterceptor;
 import com.runt.open.mvvm.retrofit.Interceptor.HttpLoggingInterceptor;
 import com.runt.open.mvvm.retrofit.api.CommonApiCenter;
 import com.runt.open.mvvm.retrofit.converter.GsonConverterFactory;
@@ -29,7 +29,7 @@
     CommonApiCenter commonApi;//常用接口
 
     OkHttpClient.Builder builder = new OkHttpClient.Builder()
-            .addInterceptor(new EncryptInterceptor());
+            .addInterceptor(new AddHeadersInterceptor());
     OkHttpClient.Builder logBuilder = new OkHttpClient.Builder()
             .addInterceptor(new HttpLoggingInterceptor());//log打印拦截器
 
diff --git a/app/src/main/java/com/runt/open/mvvm/ui/adapter/CalendarAdapter.java b/app/src/main/java/com/runt/open/mvvm/ui/adapter/CalendarAdapter.java
index 22722d8..3ab4918 100644
--- a/app/src/main/java/com/runt/open/mvvm/ui/adapter/CalendarAdapter.java
+++ b/app/src/main/java/com/runt/open/mvvm/ui/adapter/CalendarAdapter.java
@@ -9,6 +9,7 @@
 import java.util.List;
 
 /**
+ * 日历
  * @purpose Created by Runt (qingingrunt2010@qq.com) on 2019-3-26.
  */
 public class CalendarAdapter extends BaseAdapter<Results.Mycalendar, ItemCalendarDayBinding> {
diff --git a/app/src/main/java/com/runt/open/mvvm/ui/adapter/CoinTransAdapter.java b/app/src/main/java/com/runt/open/mvvm/ui/adapter/CoinTransAdapter.java
index 14b970a..90f552f 100644
--- a/app/src/main/java/com/runt/open/mvvm/ui/adapter/CoinTransAdapter.java
+++ b/app/src/main/java/com/runt/open/mvvm/ui/adapter/CoinTransAdapter.java
@@ -12,6 +12,7 @@
 import com.runt.open.mvvm.util.HandleDate;
 
 /**
+ * 金币记录
  * @purpose Created by Runt (qingingrunt2010@qq.com) on 2020-10-29.
  */
 public class CoinTransAdapter extends BaseAdapter<Results.CustomCoin, ItemCoinReportBinding> {
diff --git a/app/src/main/java/com/runt/open/mvvm/ui/adapter/MsgAdapter.java b/app/src/main/java/com/runt/open/mvvm/ui/adapter/MsgAdapter.java
index 55b2ca8..560cc0e 100644
--- a/app/src/main/java/com/runt/open/mvvm/ui/adapter/MsgAdapter.java
+++ b/app/src/main/java/com/runt/open/mvvm/ui/adapter/MsgAdapter.java
@@ -10,11 +10,9 @@
 import com.runt.open.mvvm.util.HandleDate;
 
 /**
- * My father is Object, ites purpose of
- *
+ * 资讯记录
  * @purpose Created by Runt (qingingrunt2010@qq.com) on 2020-8-21.
  */
-
 public class MsgAdapter extends BaseAdapter<Results.Message, ItemMsgBinding> {
 
     @Override
diff --git a/app/src/main/java/com/runt/open/mvvm/ui/adapter/NumAdapter.java b/app/src/main/java/com/runt/open/mvvm/ui/adapter/NumAdapter.java
index 785afd0..1824540 100644
--- a/app/src/main/java/com/runt/open/mvvm/ui/adapter/NumAdapter.java
+++ b/app/src/main/java/com/runt/open/mvvm/ui/adapter/NumAdapter.java
@@ -6,6 +6,7 @@
 import java.util.List;
 
 /**
+ * 数字键盘
  * @purpose Created by Runt (qingingrunt2010@qq.com) on 2020-10-30.
  */
 public class NumAdapter extends BaseAdapter<String, ItemNumBinding> {
diff --git a/app/src/main/java/com/runt/open/mvvm/ui/coin/CoinSettingActivity.java b/app/src/main/java/com/runt/open/mvvm/ui/coin/CoinSettingActivity.java
index 47f8eed..79e1066 100644
--- a/app/src/main/java/com/runt/open/mvvm/ui/coin/CoinSettingActivity.java
+++ b/app/src/main/java/com/runt/open/mvvm/ui/coin/CoinSettingActivity.java
@@ -45,7 +45,7 @@
                             showDialog("设置支付密码", "当前账号还没有设置支付密码", "设置", "取消", new ResPonse() {
                                 @Override
                                 public void doSuccess(Object obj) {
-                                    //startActivity(new Intent(mContext, PaypassActivity.class).putExtra("type", 1));//去设置密码
+                                    startActivity(new Intent(mContext, PaypassActivity.class).putExtra("type", 1));//去设置密码
                                 }
                             });
                         }
diff --git a/app/src/main/java/com/runt/open/mvvm/ui/coin/WithDrawActivity.java b/app/src/main/java/com/runt/open/mvvm/ui/coin/WithDrawActivity.java
index 53d7523..1d731b7 100644
--- a/app/src/main/java/com/runt/open/mvvm/ui/coin/WithDrawActivity.java
+++ b/app/src/main/java/com/runt/open/mvvm/ui/coin/WithDrawActivity.java
@@ -13,6 +13,7 @@
 import com.runt.open.mvvm.ui.paypass.PaypassActivity;
 
 /**
+ * 提现
  * @purpose Created by Runt (qingingrunt2010@qq.com) on 2020-10-30.
  */
 public class WithDrawActivity extends BaseActivity<ActivityWithdrawBinding, CoinViewModel> {
diff --git a/app/src/main/java/com/runt/open/mvvm/ui/login/LoginDataSource.java b/app/src/main/java/com/runt/open/mvvm/ui/login/LoginDataSource.java
deleted file mode 100644
index 6b88fa8..0000000
--- a/app/src/main/java/com/runt/open/mvvm/ui/login/LoginDataSource.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.runt.open.mvvm.ui.login;
-
-/**
- * Created by Administrator on 2021/11/15 0015.
- */
-public class LoginDataSource {
-}
diff --git a/app/src/main/java/com/runt/open/mvvm/ui/login/LoginViewModel.java b/app/src/main/java/com/runt/open/mvvm/ui/login/LoginViewModel.java
index dd5cd96..e285cde 100644
--- a/app/src/main/java/com/runt/open/mvvm/ui/login/LoginViewModel.java
+++ b/app/src/main/java/com/runt/open/mvvm/ui/login/LoginViewModel.java
@@ -24,7 +24,6 @@
         loginApi = RetrofitUtils.getInstance().getRetrofit(LoginApiCenter.class);
     }
 
-    MutableLiveData<Results.StringApiResult> resetResult = new MutableLiveData<>();
     MutableLiveData<Results.StringApiResult> registerResult = new MutableLiveData<>();
     HttpObserver<UserBean> logginObserver;
 
@@ -85,7 +84,7 @@
         httpObserverOnLoading(loginApi.register(phone, sms, pass), new HttpObserver<Results.StringApiResult>(){
             @Override
             protected void onSuccess(Results.StringApiResult data) {
-                resetResult.setValue(data);
+                registerResult.setValue(data);
             }
         });
     }
diff --git a/app/src/main/java/com/runt/open/mvvm/ui/main/MainActivity.java b/app/src/main/java/com/runt/open/mvvm/ui/main/MainActivity.java
index 70f50a9..7127d89 100644
--- a/app/src/main/java/com/runt/open/mvvm/ui/main/MainActivity.java
+++ b/app/src/main/java/com/runt/open/mvvm/ui/main/MainActivity.java
@@ -14,6 +14,7 @@
 import com.runt.open.mvvm.base.activities.BaseActivity;
 import com.runt.open.mvvm.base.adapter.FragmentAdapter;
 import com.runt.open.mvvm.base.fragments.BaseFragment;
+import com.runt.open.mvvm.base.model.ImpViewModel;
 import com.runt.open.mvvm.data.PhoneDevice;
 import com.runt.open.mvvm.databinding.ActivityMainBinding;
 import com.runt.open.mvvm.listener.CustomClickListener;
@@ -27,7 +28,7 @@
 
 import java.util.Arrays;
 
-public class MainActivity extends BaseActivity<ActivityMainBinding, MainViewModel> {
+public class MainActivity extends BaseActivity<ActivityMainBinding, ImpViewModel> {
 
     private BaseFragment[] fragments = {new PageFragments.HomeFragment(),new ServiceFragment(),new MineFragment()} ;
     ActivityResultLauncher<Intent>  loginLaunch = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
diff --git a/app/src/main/java/com/runt/open/mvvm/ui/main/MainViewModel.java b/app/src/main/java/com/runt/open/mvvm/ui/main/MainViewModel.java
deleted file mode 100644
index d313fdd..0000000
--- a/app/src/main/java/com/runt/open/mvvm/ui/main/MainViewModel.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.runt.open.mvvm.ui.main;
-
-import com.runt.open.mvvm.base.model.BaseViewModel;
-
-/**
- * My father is Object, ites purpose of
- *
- * @purpose Created by Runt (qingingrunt2010@qq.com) on 2020-9-17.
- */
-public class MainViewModel extends BaseViewModel {
-}
diff --git a/app/src/main/java/com/runt/open/mvvm/ui/sign/SignInViewModel.java b/app/src/main/java/com/runt/open/mvvm/ui/sign/SignInViewModel.java
index 405efe0..7c3603f 100644
--- a/app/src/main/java/com/runt/open/mvvm/ui/sign/SignInViewModel.java
+++ b/app/src/main/java/com/runt/open/mvvm/ui/sign/SignInViewModel.java
@@ -13,8 +13,6 @@
  */
 public class SignInViewModel extends BaseViewModel {
 
-
-
     public void signIn(HttpObserver<String> observer){
         httpObserverOn(commonApi.signIn(),observer);
     }

--
Gitblit v1.9.1