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