Commit d7f4139e539dc2be605e9a68f01c10eebaf25689

Authored by 韩亚云
1 parent c6b9ffa4

base测试

core/base/src/main/java/com/cnlive/libs/base/frame/activity/MvpActivity.java
@@ -4,7 +4,7 @@ import android.os.Bundle; @@ -4,7 +4,7 @@ import android.os.Bundle;
4 4
5 import androidx.annotation.NonNull; 5 import androidx.annotation.NonNull;
6 6
7 -import com.cnlive.libs.base.mvp.ReflectUtil; 7 +import com.cnlive.libs.base.util.ReflectUtil;
8 import com.hannesdorfmann.mosby3.mvp.MvpPresenter; 8 import com.hannesdorfmann.mosby3.mvp.MvpPresenter;
9 import com.hannesdorfmann.mosby3.mvp.MvpView; 9 import com.hannesdorfmann.mosby3.mvp.MvpView;
10 10
core/base/src/main/java/com/cnlive/libs/base/frame/activity/MvpBindingActivity.java
@@ -6,7 +6,7 @@ import androidx.annotation.NonNull; @@ -6,7 +6,7 @@ import androidx.annotation.NonNull;
6 import androidx.databinding.DataBindingUtil; 6 import androidx.databinding.DataBindingUtil;
7 import androidx.databinding.ViewDataBinding; 7 import androidx.databinding.ViewDataBinding;
8 8
9 -import com.cnlive.libs.base.mvp.ReflectUtil; 9 +import com.cnlive.libs.base.util.ReflectUtil;
10 import com.hannesdorfmann.mosby3.mvp.MvpPresenter; 10 import com.hannesdorfmann.mosby3.mvp.MvpPresenter;
11 import com.hannesdorfmann.mosby3.mvp.MvpView; 11 import com.hannesdorfmann.mosby3.mvp.MvpView;
12 12
core/base/src/main/java/com/cnlive/libs/base/frame/fragment/MyFragment.java renamed to core/base/src/main/java/com/cnlive/libs/base/frame/fragment/BaseFragment.java
@@ -5,10 +5,10 @@ import android.view.LayoutInflater; @@ -5,10 +5,10 @@ import android.view.LayoutInflater;
5 import android.view.View; 5 import android.view.View;
6 import android.view.ViewGroup; 6 import android.view.ViewGroup;
7 7
8 -import androidx.annotation.NonNull;  
9 import androidx.annotation.Nullable; 8 import androidx.annotation.Nullable;
10 9
11 -import com.cnlive.libs.base.mvp.ReflectUtil; 10 +import com.cnlive.libs.base.frame.presenter.BasePresenter;
  11 +import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter;
12 import com.hannesdorfmann.mosby3.mvp.MvpPresenter; 12 import com.hannesdorfmann.mosby3.mvp.MvpPresenter;
13 import com.hannesdorfmann.mosby3.mvp.MvpView; 13 import com.hannesdorfmann.mosby3.mvp.MvpView;
14 14
@@ -18,34 +18,27 @@ import com.hannesdorfmann.mosby3.mvp.MvpView; @@ -18,34 +18,27 @@ import com.hannesdorfmann.mosby3.mvp.MvpView;
18 * @param <V> MVP View {@link MvpView} 18 * @param <V> MVP View {@link MvpView}
19 * @param <P> MVP Presenter {@link MvpPresenter} 19 * @param <P> MVP Presenter {@link MvpPresenter}
20 */ 20 */
21 -public abstract class MyFragment<V extends MvpView, P extends MvpPresenter<V>> extends com.hannesdorfmann.mosby3.mvp.MvpFragment<V, P> { 21 +public abstract class BaseFragment<V extends MvpView, P extends MvpBasePresenter<V>> extends com.hannesdorfmann.mosby3.mvp.MvpFragment<V, P> {
22 22
23 - public V view; 23 + public View view;
24 24
25 @Nullable 25 @Nullable
26 @Override 26 @Override
27 public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 27 public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
28 - return inflater.inflate(getLayoutId(), container, false); 28 + return view = inflater.inflate(getLayoutId(), container, false);
29 } 29 }
30 30
31 - protected abstract int getLayoutId();  
32 -  
33 - @NonNull  
34 - public V createView() {  
35 - return ReflectUtil.instance(0, this.getClass(), this);  
36 - }  
37 -  
38 - @NonNull  
39 @Override 31 @Override
40 - public P createPresenter() {  
41 - return ReflectUtil.instance(1, this); 32 + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
  33 + super.onViewCreated(view, savedInstanceState);
  34 + getPresenter();
42 } 35 }
43 36
44 - @NonNull  
45 - @Override  
46 - public V getMvpView() {  
47 - if (view == null) view = createView();  
48 - return view;  
49 - } 37 +// @Override
  38 +// public P createPresenter() {
  39 +// return (P) new BasePresenter();
  40 +// }
  41 +
  42 + protected abstract int getLayoutId();
50 43
51 } 44 }
52 \ No newline at end of file 45 \ No newline at end of file
core/base/src/main/java/com/cnlive/libs/base/frame/fragment/MvpBindingFragment.java deleted 100644 → 0
1 -package com.cnlive.libs.base.frame.fragment;  
2 -  
3 -import android.os.Bundle;  
4 -import android.view.LayoutInflater;  
5 -import android.view.View;  
6 -import android.view.ViewGroup;  
7 -  
8 -import androidx.annotation.NonNull;  
9 -import androidx.annotation.Nullable;  
10 -import androidx.databinding.DataBindingUtil;  
11 -import androidx.databinding.ViewDataBinding;  
12 -  
13 -import com.cnlive.libs.base.mvp.ReflectUtil;  
14 -import com.hannesdorfmann.mosby3.mvp.MvpPresenter;  
15 -import com.hannesdorfmann.mosby3.mvp.MvpView;  
16 -  
17 -/**  
18 - * MVP Databinding Base Fragment  
19 - *  
20 - * @param <V> MVP View {@link MvpView}  
21 - * @param <P> MVP Presenter {@link MvpPresenter}  
22 - * @param <D> Databind Page Data  
23 - * @param <T> Databind Activity ViewDataBinding {@link ViewDataBinding}  
24 - */  
25 -public abstract class MvpBindingFragment<V extends MvpView, P extends MvpPresenter<V>, D, T extends ViewDataBinding> extends MyFragment<V, P> {  
26 -  
27 - public T binding;  
28 - public D data;  
29 -  
30 - @Nullable  
31 - @Override  
32 - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {  
33 - binding = DataBindingUtil.inflate(inflater, getLayoutId(), container, false);  
34 - ReflectUtil.invoke(binding, "setData", getViewData());  
35 - return binding.getRoot();  
36 - }  
37 -  
38 - protected D initLayoutData() {  
39 - return ReflectUtil.instance(2, this);  
40 - }  
41 -  
42 - @NonNull  
43 - public D getViewData() {  
44 - if (data == null) data = initLayoutData();  
45 - return data;  
46 - }  
47 -}  
48 \ No newline at end of file 0 \ No newline at end of file
core/base/src/main/java/com/cnlive/libs/base/frame/presenter/BasePresenter.java 0 → 100644
  1 +package com.cnlive.libs.base.frame.presenter;
  2 +
  3 +
  4 +import com.cnlive.libs.base.frame.view.BaseView;
  5 +import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter;
  6 +
  7 +public class BasePresenter extends MvpBasePresenter<BaseView> {
  8 +}
core/base/src/main/java/com/cnlive/libs/base/frame/view/MvpBaseView.java renamed to core/base/src/main/java/com/cnlive/libs/base/frame/view/BaseView.java
@@ -2,6 +2,5 @@ package com.cnlive.libs.base.frame.view; @@ -2,6 +2,5 @@ package com.cnlive.libs.base.frame.view;
2 2
3 import com.hannesdorfmann.mosby3.mvp.MvpView; 3 import com.hannesdorfmann.mosby3.mvp.MvpView;
4 4
5 -public abstract class MvpBaseView implements MvpView {  
6 - private String TAG = this.getClass().getSimpleName(); 5 +public interface BaseView extends MvpView {
7 } 6 }
core/base/src/main/java/com/cnlive/libs/base/mvp/BaseActivity.java deleted 100644 → 0
1 -package com.cnlive.libs.base.mvp;  
2 -  
3 -  
4 -import android.annotation.SuppressLint;  
5 -import android.content.Context;  
6 -import android.content.pm.ActivityInfo;  
7 -import android.database.DatabaseUtils;  
8 -import android.os.Bundle;  
9 -import android.os.Looper;  
10 -import android.view.View;  
11 -import android.view.Window;  
12 -import android.view.WindowManager;  
13 -import android.view.inputmethod.InputMethodManager;  
14 -import android.widget.Toast;  
15 -  
16 -import androidx.annotation.Nullable;  
17 -import androidx.appcompat.app.AppCompatActivity;  
18 -import androidx.databinding.DataBindingUtil;  
19 -import androidx.databinding.ViewDataBinding;  
20 -  
21 -import com.cnlive.libs.base.util.lib_permisshelper.PermissionsUtils;  
22 -import com.cnlive.libs.base.util.ActivityCollector;  
23 -  
24 -/**  
25 - * @author ys  
26 - */  
27 -public abstract class BaseActivity extends AppCompatActivity {  
28 - //获取TAG的activity名称  
29 - protected final String TAG = this.getClass().getSimpleName();  
30 - //是否显示标题栏  
31 - private boolean isShowTitle = true;  
32 - //是否显示状态栏  
33 - private boolean isShowStatusBar = true;  
34 - //是否允许旋转屏幕  
35 - private boolean isAllowScreenRoate = true;  
36 - //封装Toast对象  
37 - private static Toast toast;  
38 - public Context context;  
39 - private PermissionsUtils mPermissionsUtils;//权限申请  
40 - private int stateBarColor = -1;  
41 - public ViewDataBinding binding;  
42 -  
43 - @Override  
44 - protected void onCreate(@Nullable Bundle savedInstanceState) {  
45 - super.onCreate(savedInstanceState);  
46 - context = this;  
47 - //activity管理  
48 - ActivityCollector.addActivity(this);  
49 - if (!isShowTitle) {  
50 - requestWindowFeature(Window.FEATURE_NO_TITLE);  
51 - }  
52 -  
53 - if (!isShowStatusBar) {  
54 - getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN  
55 - , WindowManager.LayoutParams.FLAG_FULLSCREEN);  
56 - }  
57 - //设置布局  
58 - binding = DataBindingUtil.setContentView(this, initLayout());  
59 - //设置屏幕是否可旋转  
60 - if (!isAllowScreenRoate) {  
61 - setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);  
62 - } else {  
63 - setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);  
64 - }  
65 - mPermissionsUtils = new PermissionsUtils();//权限申请  
66 - //初始化控件  
67 - initView();  
68 - //设置数据  
69 - initData();  
70 - }  
71 -  
72 - /**  
73 - * 初始化布局  
74 - *  
75 - * @return 布局id  
76 - */  
77 - protected abstract int initLayout();  
78 -  
79 - /**  
80 - * 初始化控件  
81 - */  
82 - protected abstract void initView();  
83 -  
84 - /**  
85 - * 设置数据  
86 - */  
87 - protected abstract void initData();  
88 -  
89 - /**  
90 - * 设置是否显示标题栏  
91 - *  
92 - * @param showTitle true or false  
93 - */  
94 - public void setShowTitle(boolean showTitle) {  
95 - isShowTitle = showTitle;  
96 - }  
97 -  
98 - /**  
99 - * 设置是否显示状态栏  
100 - *  
101 - * @param showStatusBar true or false  
102 - */  
103 - public void setShowStatusBar(boolean showStatusBar) {  
104 - isShowStatusBar = showStatusBar;  
105 - }  
106 -  
107 - /**  
108 - * 是否允许屏幕旋转  
109 - *  
110 - * @param allowScreenRoate true or false  
111 - */  
112 - public void setAllowScreenRoate(boolean allowScreenRoate) {  
113 - isAllowScreenRoate = allowScreenRoate;  
114 - }  
115 -  
116 - /**  
117 - * 保证同一按钮在1秒内只会响应一次点击事件  
118 - */  
119 - public abstract class OnSingleClickListener implements View.OnClickListener {  
120 - //两次点击按钮之间的间隔,目前为1000ms  
121 - private static final int MIN_CLICK_DELAY_TIME = 1000;  
122 - private long lastClickTime;  
123 -  
124 - public abstract void onSingleClick(View view);  
125 -  
126 - @Override  
127 - public void onClick(View view) {  
128 - long curClickTime = System.currentTimeMillis();  
129 - if ((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) {  
130 - lastClickTime = curClickTime;  
131 - onSingleClick(view);  
132 - }  
133 - }  
134 - }  
135 -  
136 - /**  
137 - * 同一按钮在短时间内可重复响应点击事件  
138 - */  
139 - public abstract class OnMultiClickListener implements View.OnClickListener {  
140 - public abstract void onMultiClick(View view);  
141 -  
142 - @Override  
143 - public void onClick(View v) {  
144 - onMultiClick(v);  
145 - }  
146 - }  
147 -  
148 - /**  
149 - * 显示提示 toast  
150 - *  
151 - * @param msg 提示信息  
152 - */  
153 - @SuppressLint("ShowToast")  
154 - public void showToast(String msg) {  
155 - try {  
156 - if (null == toast) {  
157 - toast = Toast.makeText(context, msg, Toast.LENGTH_SHORT);  
158 - } else {  
159 - toast.setText(msg);  
160 - }  
161 - runOnUiThread(new Runnable() {  
162 - @Override  
163 - public void run() {  
164 - toast.show();  
165 - }  
166 - });  
167 - } catch (Exception e) {  
168 - e.printStackTrace();  
169 - //解决在子线程中调用Toast的异常情况处理  
170 - Looper.prepare();  
171 - Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();  
172 - Looper.loop();  
173 - }  
174 - }  
175 -  
176 -  
177 - /**  
178 - * 隐藏软键盘  
179 - */  
180 - public void hideSoftInput() {  
181 - InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);  
182 - if (getCurrentFocus() != null && null != imm) {  
183 - imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);  
184 - }  
185 - }  
186 -  
187 - /**  
188 - * 显示软键盘  
189 - */  
190 - public void showSoftInput() {  
191 - InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);  
192 - if (getCurrentFocus() != null && null != imm) {  
193 - imm.showSoftInputFromInputMethod(getCurrentFocus().getWindowToken(), 0);  
194 - }  
195 - }  
196 -  
197 - /**  
198 - * 显示软键盘  
199 - */  
200 - public void showSoftInput(View view) {  
201 - // InputMethodManager.SHOW_FORCED);  
202 - InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);  
203 - imm.showSoftInput(view, InputMethodManager.SHOW_FORCED);  
204 - }  
205 -  
206 - @Override  
207 - protected void onDestroy() {  
208 - super.onDestroy();  
209 - //activity管理  
210 - ActivityCollector.removeActivity(this);  
211 - }  
212 -}  
213 \ No newline at end of file 0 \ No newline at end of file
core/base/src/main/java/com/cnlive/libs/base/mvp/BaseFragment.java deleted 100644 → 0
1 -package com.cnlive.libs.base.mvp;  
2 -  
3 -import android.os.Bundle;  
4 -import android.view.LayoutInflater;  
5 -import android.view.View;  
6 -import android.view.ViewGroup;  
7 -  
8 -import androidx.annotation.NonNull;  
9 -import androidx.annotation.Nullable;  
10 -import androidx.databinding.DataBindingUtil;  
11 -import androidx.databinding.ViewDataBinding;  
12 -/**  
13 - * @author ys  
14 - */  
15 -public abstract class BaseFragment<V extends BaseView, P extends BasePresenter<V>> extends com.hannesdorfmann.mosby3.mvp.MvpFragment<V, P> {  
16 - public V v;  
17 - public P p;  
18 - public ViewDataBinding binding;  
19 - protected final String TAG = this.getClass().getSimpleName();  
20 -  
21 - @Nullable  
22 - @Override  
23 - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {  
24 - binding = DataBindingUtil.inflate(inflater, initLayout(), container, false);  
25 - return binding.getRoot();  
26 - }  
27 -  
28 - @Override  
29 - public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {  
30 - super.onViewCreated(view, savedInstanceState);  
31 - if (null != getMvpView()&&null!=getPresenter()) {  
32 - init();  
33 - }  
34 - }  
35 -  
36 - @Override  
37 - public P createPresenter() {  
38 - if (p == null) {  
39 - return ReflectUtil.instance(BasePresenter.class);  
40 - } else {  
41 - return ReflectUtil.instance(1, this);  
42 - }  
43 - }  
44 -  
45 - /**  
46 - * 初始化布局  
47 - *  
48 - * @return 布局id  
49 - */  
50 - protected abstract int initLayout();  
51 -  
52 - protected abstract void init();  
53 -  
54 -}  
core/base/src/main/java/com/cnlive/libs/base/mvp/BasePresenter.java deleted 100644 → 0
1 -package com.cnlive.libs.base.mvp;  
2 -  
3 -import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter;  
4 -/**  
5 - * @author ys  
6 - */  
7 -public class BasePresenter<V extends BaseView> extends MvpBasePresenter<V> {  
8 -  
9 -}  
core/base/src/main/java/com/cnlive/libs/base/mvp/BaseView.java deleted 100644 → 0
1 -package com.cnlive.libs.base.mvp;  
2 -  
3 -import android.app.Activity;  
4 -  
5 -import androidx.databinding.ViewDataBinding;  
6 -  
7 -import com.hannesdorfmann.mosby3.mvp.MvpView;  
8 -/**  
9 - * @author ys  
10 - */  
11 -public abstract class BaseView implements MvpView {  
12 - private BaseFragment fragment;  
13 - protected ViewDataBinding binding;  
14 -  
15 - public BaseView(BaseFragment fragment) {  
16 - this.fragment = fragment;  
17 - this.binding = fragment.binding;  
18 - }  
19 -  
20 - public Activity getContext() {  
21 - return fragment == null ? null : fragment.getActivity();  
22 - }  
23 -  
24 - protected abstract void initView();  
25 -  
26 - protected abstract void initData();  
27 -  
28 -}  
core/base/src/main/java/com/cnlive/libs/base/mvp/ReflectUtil.java renamed to core/base/src/main/java/com/cnlive/libs/base/util/ReflectUtil.java
1 -package com.cnlive.libs.base.mvp; 1 +package com.cnlive.libs.base.util;
2 2
3 3
4 import java.lang.reflect.Constructor; 4 import java.lang.reflect.Constructor;