Commit f199d5ab27cdb7f5427d51d836f9013ea45c6c03

Authored by 朱显松
1 parent 7fb11524

replace the package structure ,add Mvp ViewState

Showing 24 changed files with 239 additions and 28 deletions
.idea/gradle.xml
... ... @@ -10,8 +10,6 @@
10 10 <option value="$PROJECT_DIR$" />
11 11 <option value="$PROJECT_DIR$/app" />
12 12 <option value="$PROJECT_DIR$/cnlive" />
13   - <option value="$PROJECT_DIR$/testlib" />
14   - <option value="$PROJECT_DIR$/testlib2" />
15 13 </set>
16 14 </option>
17 15 <option name="resolveModulePerSourceSet" value="false" />
... ...
app/src/main/java/com/cnlive/libs/demo/RequestTest.java
... ... @@ -2,8 +2,8 @@ package com.cnlive.libs.demo;
2 2  
3 3 import android.content.Context;
4 4  
5   -import com.cnlive.libs.base.network.RetrofitUtil;
6   -import com.cnlive.libs.base.network.Subscriber;
  5 +import com.cnlive.libs.base.data.network.RetrofitUtil;
  6 +import com.cnlive.libs.base.data.network.Subscriber;
7 7 import com.cnlive.libs.demo.data.model.AppInfo;
8 8 import com.cnlive.libs.demo.data.network.testapi.ApiRequest;
9 9 import com.cnlive.libs.demo.data.network.testapi.ApiService;
... ...
app/src/main/java/com/cnlive/libs/demo/data/model/BaseInfo.java
1 1 package com.cnlive.libs.demo.data.model;
2 2  
3   -import com.cnlive.libs.base.model.IBaseInfo;
  3 +import com.cnlive.libs.base.data.model.IBaseInfo;
4 4 import com.cnlive.libs.demo.RequestTest;
5 5  
6 6  
... ...
app/src/main/java/com/cnlive/libs/demo/data/network/testapi/ApiRequest.java
1 1 package com.cnlive.libs.demo.data.network.testapi;
2 2  
3 3  
4   -import com.cnlive.libs.base.model.IBaseInfo;
5   -import com.cnlive.libs.base.network.RetrofitUtil;
6   -import com.cnlive.libs.base.network.Subscriber;
  4 +import com.cnlive.libs.base.data.model.IBaseInfo;
  5 +import com.cnlive.libs.base.data.network.RetrofitUtil;
  6 +import com.cnlive.libs.base.data.network.Subscriber;
7 7 import com.cnlive.libs.demo.Config;
8 8  
9 9 import io.reactivex.Observable;
... ...
app/src/main/java/com/cnlive/libs/demo/mvptest/frame/presenter/LaunchPresenter.java
... ... @@ -2,7 +2,7 @@ package com.cnlive.libs.demo.mvptest.frame.presenter;
2 2  
3 3 import android.content.Context;
4 4  
5   -import com.cnlive.libs.base.network.Subscriber;
  5 +import com.cnlive.libs.base.data.network.Subscriber;
6 6 import com.cnlive.libs.base.util.LogUtil;
7 7 import com.cnlive.libs.base.util.TimerUtil;
8 8 import com.cnlive.libs.demo.Config;
... ...
app/src/main/java/com/cnlive/libs/demo/mvptest/ui/activity/LaunchActivity.java
... ... @@ -5,7 +5,7 @@ import android.content.Intent;
5 5 import android.os.Bundle;
6 6 import android.view.View;
7 7  
8   -import com.cnlive.libs.base.activity.MvpBindingActivity;
  8 +import com.cnlive.libs.base.frame.activity.MvpBindingActivity;
9 9 import com.cnlive.libs.demo.R;
10 10 import com.cnlive.libs.demo.databinding.ActivityLaunchBinding;
11 11 import com.cnlive.libs.demo.mvptest.frame.presenter.LaunchPresenter;
... ...
app/src/main/java/com/cnlive/libs/demo/viewstate/StateActivity.java 0 → 100644
  1 +package com.cnlive.libs.demo.viewstate;
  2 +
  3 +import android.support.annotation.NonNull;
  4 +
  5 +import com.hannesdorfmann.mosby3.mvp.viewstate.MvpViewStateActivity;
  6 +
  7 +/**
  8 + * Created by xiansong on 2017/8/25.
  9 + */
  10 +
  11 +public class StateActivity extends MvpViewStateActivity<StateView,StatePresenter,ViewState>{
  12 + @NonNull
  13 + @Override
  14 + public StatePresenter createPresenter() {
  15 + return new StatePresenter();
  16 + }
  17 +
  18 + @NonNull
  19 + @Override
  20 + public ViewState createViewState() {
  21 + return new ViewState();
  22 + }
  23 +
  24 + @Override
  25 + public void onNewViewStateInstance() {
  26 + //TODO Presenter 加载数据 - View 更新 - ViewState 保存
  27 + getPresenter().loadData();
  28 + }
  29 +}
... ...
app/src/main/java/com/cnlive/libs/demo/viewstate/StatePresenter.java 0 → 100644
  1 +package com.cnlive.libs.demo.viewstate;
  2 +
  3 +import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter;
  4 +
  5 +/**
  6 + * Created by xiansong on 2017/8/25.
  7 + */
  8 +
  9 +public class StatePresenter extends MvpBasePresenter<StateView> {
  10 +
  11 + public void loadData(){
  12 + getView().setData(null);
  13 + }
  14 +
  15 + public void start(){
  16 + if(getView()!=null)
  17 + getView().startUploadView();
  18 + }
  19 +
  20 + public void pause(){
  21 + if(getView()!=null)
  22 + getView().pauseUploadView();
  23 + }
  24 +}
... ...
app/src/main/java/com/cnlive/libs/demo/viewstate/StateView.java 0 → 100644
  1 +package com.cnlive.libs.demo.viewstate;
  2 +
  3 +import android.os.Parcelable;
  4 +
  5 +import com.hannesdorfmann.mosby3.mvp.MvpView;
  6 +
  7 +/**
  8 + * Created by xiansong on 2017/8/25.
  9 + */
  10 +
  11 +public class StateView implements MvpView {
  12 +
  13 + StateActivity activity;
  14 +
  15 + public StateView(StateActivity activity){
  16 + this.activity = activity;
  17 + }
  18 +
  19 + public void setData(Parcelable data){
  20 + activity.getViewState().setData(data);
  21 + }
  22 +
  23 + public void startUploadView(){
  24 +
  25 + }
  26 +
  27 + public void pauseUploadView(){
  28 +
  29 + }
  30 +}
... ...
app/src/main/java/com/cnlive/libs/demo/viewstate/ViewState.java 0 → 100644
  1 +package com.cnlive.libs.demo.viewstate;
  2 +
  3 +import android.os.Bundle;
  4 +import android.os.Parcelable;
  5 +import android.support.annotation.NonNull;
  6 +
  7 +import com.hannesdorfmann.mosby3.mvp.viewstate.RestorableViewState;
  8 +
  9 +/**
  10 + * Created by xiansong on 2017/8/25.
  11 + */
  12 +
  13 +public class ViewState implements RestorableViewState<StateView> {
  14 +
  15 + private static final String key_data = "state-data";
  16 +
  17 + public Parcelable data;
  18 +
  19 + @Override
  20 + public void saveInstanceState(@NonNull Bundle out) {
  21 + out.putParcelable(key_data, data);
  22 + }
  23 +
  24 + @Override
  25 + public RestorableViewState<StateView> restoreInstanceState(Bundle in) {
  26 + if (in == null) return null;
  27 +
  28 + data = in.getParcelable(key_data);
  29 + return this;
  30 + }
  31 +
  32 +
  33 + @Override
  34 + public void apply(StateView view, boolean retained) {
  35 + view.setData(data);
  36 + }
  37 +
  38 + public void setData(Parcelable data) {
  39 + this.data = data;
  40 + }
  41 +}
... ...
cnlive/src/main/java/com/cnlive/libs/base/model/IBaseInfo.java renamed to cnlive/src/main/java/com/cnlive/libs/base/data/model/IBaseInfo.java
1   -package com.cnlive.libs.base.model;
  1 +package com.cnlive.libs.base.data.model;
2 2  
3 3  
4 4 import java.io.Serializable;
... ...
cnlive/src/main/java/com/cnlive/libs/base/network/ClientInterceptor.java renamed to cnlive/src/main/java/com/cnlive/libs/base/data/network/ClientInterceptor.java
1   -package com.cnlive.libs.base.network;
  1 +package com.cnlive.libs.base.data.network;
2 2  
3 3  
4 4 import android.content.Context;
... ...
cnlive/src/main/java/com/cnlive/libs/base/network/NetworkUtil.java renamed to cnlive/src/main/java/com/cnlive/libs/base/data/network/NetworkUtil.java
1   -package com.cnlive.libs.base.network;
  1 +package com.cnlive.libs.base.data.network;
2 2  
3 3 import android.content.Context;
4 4 import android.net.ConnectivityManager;
... ...
cnlive/src/main/java/com/cnlive/libs/base/network/RetrofitUtil.java renamed to cnlive/src/main/java/com/cnlive/libs/base/data/network/RetrofitUtil.java
1   -package com.cnlive.libs.base.network;
  1 +package com.cnlive.libs.base.data.network;
2 2  
3 3  
4 4 import android.content.Context;
... ...
cnlive/src/main/java/com/cnlive/libs/base/network/Subscriber.java renamed to cnlive/src/main/java/com/cnlive/libs/base/data/network/Subscriber.java
1   -package com.cnlive.libs.base.network;
  1 +package com.cnlive.libs.base.data.network;
2 2  
3 3 import android.content.Context;
4 4 import android.support.annotation.IntDef;
5 5 import android.text.TextUtils;
6 6  
7 7 import com.cnlive.libs.base.R;
8   -import com.cnlive.libs.base.model.IBaseInfo;
  8 +import com.cnlive.libs.base.data.model.IBaseInfo;
9 9 import com.cnlive.libs.base.util.LogUtil;
10 10  
11 11 import java.lang.annotation.Retention;
... ...
cnlive/src/main/java/com/cnlive/libs/base/network/Tls12SocketFactory.java renamed to cnlive/src/main/java/com/cnlive/libs/base/data/network/Tls12SocketFactory.java
1   -package com.cnlive.libs.base.network;
  1 +package com.cnlive.libs.base.data.network;
2 2  
3 3 import java.io.IOException;
4 4 import java.net.InetAddress;
... ...
cnlive/src/main/java/com/cnlive/libs/base/network/TransformUtil.java renamed to cnlive/src/main/java/com/cnlive/libs/base/data/network/TransformUtil.java
1   -package com.cnlive.libs.base.network;
  1 +package com.cnlive.libs.base.data.network;
2 2  
3 3 import com.google.gson.Gson;
4 4  
... ...
cnlive/src/main/java/com/cnlive/libs/base/util/ReflectUtil.java renamed to cnlive/src/main/java/com/cnlive/libs/base/frame/ReflectUtil.java
1   -package com.cnlive.libs.base.util;
  1 +package com.cnlive.libs.base.frame;
2 2  
3 3  
  4 +import com.cnlive.libs.base.util.LogUtil;
  5 +
4 6 import java.lang.reflect.Constructor;
5 7 import java.lang.reflect.Method;
6 8 import java.lang.reflect.ParameterizedType;
... ...
cnlive/src/main/java/com/cnlive/libs/base/activity/MvpActivity.java renamed to cnlive/src/main/java/com/cnlive/libs/base/frame/activity/MvpActivity.java
1   -package com.cnlive.libs.base.activity;
  1 +package com.cnlive.libs.base.frame.activity;
2 2  
3 3 import android.os.Bundle;
4 4 import android.support.annotation.NonNull;
5 5  
6   -import com.cnlive.libs.base.util.ReflectUtil;
  6 +import com.cnlive.libs.base.frame.ReflectUtil;
7 7 import com.hannesdorfmann.mosby3.mvp.MvpPresenter;
8 8 import com.hannesdorfmann.mosby3.mvp.MvpView;
9 9  
... ...
cnlive/src/main/java/com/cnlive/libs/base/activity/MvpBindingActivity.java renamed to cnlive/src/main/java/com/cnlive/libs/base/frame/activity/MvpBindingActivity.java
1   -package com.cnlive.libs.base.activity;
  1 +package com.cnlive.libs.base.frame.activity;
2 2  
3 3 import android.databinding.DataBindingUtil;
4 4 import android.databinding.ViewDataBinding;
5 5 import android.os.Bundle;
6 6 import android.support.annotation.NonNull;
7 7  
8   -import com.cnlive.libs.base.util.ReflectUtil;
  8 +import com.cnlive.libs.base.frame.ReflectUtil;
9 9 import com.hannesdorfmann.mosby3.mvp.MvpPresenter;
10 10 import com.hannesdorfmann.mosby3.mvp.MvpView;
11 11  
... ... @@ -34,7 +34,7 @@ public abstract class MvpBindingActivity&lt;V extends MvpView, P extends MvpPresent
34 34  
35 35 @NonNull
36 36 public D getViewData() {
37   - if(data == null) data = initLayoutData();
  37 + if (data == null) data = initLayoutData();
38 38 return data;
39 39 }
40 40 }
... ...
cnlive/src/main/java/com/cnlive/libs/base/frame/activity/MvpViewStateActivity.java 0 → 100644
  1 +package com.cnlive.libs.base.frame.activity;
  2 +
  3 +import android.os.Bundle;
  4 +import android.support.annotation.NonNull;
  5 +
  6 +import com.cnlive.libs.base.frame.ReflectUtil;
  7 +import com.hannesdorfmann.mosby3.mvp.MvpPresenter;
  8 +import com.hannesdorfmann.mosby3.mvp.MvpView;
  9 +import com.hannesdorfmann.mosby3.mvp.viewstate.ViewState;
  10 +
  11 +/**
  12 + * Created by xiansong on 2017/8/25.
  13 + */
  14 +
  15 +public abstract class MvpViewStateActivity<V extends MvpView, P extends MvpPresenter<V>, VS extends ViewState<V>> extends com.hannesdorfmann.mosby3.mvp.viewstate.MvpViewStateActivity<V, P, VS> {
  16 +
  17 + public V view;
  18 +
  19 + protected abstract int getLayoutId();
  20 +
  21 + @Override
  22 + protected void onCreate(Bundle savedInstanceState) {
  23 + super.onCreate(savedInstanceState);
  24 + setContentView(getLayoutId());
  25 + }
  26 +
  27 + @NonNull
  28 + public V createView() {
  29 + return ReflectUtil.instance(0, this.getClass(), this);
  30 + }
  31 +
  32 + @NonNull
  33 + @Override
  34 + public P createPresenter() {
  35 + return ReflectUtil.instance(1, this);
  36 + }
  37 +
  38 + @NonNull
  39 + @Override
  40 + public VS createViewState() {
  41 + return ReflectUtil.instance(2, this);
  42 + }
  43 +
  44 + @NonNull
  45 + @Override
  46 + public V getMvpView() {
  47 + if (view == null) view = createView();
  48 + return view;
  49 + }
  50 +}
... ...
cnlive/src/main/java/com/cnlive/libs/base/frame/activity/MvpViewStateBindingActivity.java 0 → 100644
  1 +package com.cnlive.libs.base.frame.activity;
  2 +
  3 +import android.databinding.DataBindingUtil;
  4 +import android.databinding.ViewDataBinding;
  5 +import android.os.Bundle;
  6 +import android.support.annotation.NonNull;
  7 +
  8 +import com.cnlive.libs.base.frame.ReflectUtil;
  9 +import com.hannesdorfmann.mosby3.mvp.MvpPresenter;
  10 +import com.hannesdorfmann.mosby3.mvp.MvpView;
  11 +import com.hannesdorfmann.mosby3.mvp.viewstate.ViewState;
  12 +
  13 +/**
  14 + * Created by xiansong on 2017/8/25.
  15 + */
  16 +
  17 +public abstract class MvpViewStateBindingActivity<V extends MvpView, P extends MvpPresenter<V>, VS extends ViewState<V>, D, T extends ViewDataBinding> extends MvpViewStateActivity<V, P, VS> {
  18 + public T binding;
  19 + public D data;
  20 +
  21 + @Override
  22 + protected void onCreate(Bundle savedInstanceState) {
  23 + super.onCreate(savedInstanceState);
  24 + binding = DataBindingUtil.setContentView(this, getLayoutId());
  25 + ReflectUtil.invoke(binding, "setData", getViewData());
  26 + }
  27 +
  28 + protected D initLayoutData() {
  29 + return ReflectUtil.instance(2, this);
  30 + }
  31 +
  32 + @NonNull
  33 + public D getViewData() {
  34 + if(data == null) data = initLayoutData();
  35 + return data;
  36 + }
  37 +}
... ...
cnlive/src/main/java/com/cnlive/libs/base/fragment/MvpBindingFragment.java renamed to cnlive/src/main/java/com/cnlive/libs/base/frame/fragment/MvpBindingFragment.java
1   -package com.cnlive.libs.base.fragment;
  1 +package com.cnlive.libs.base.frame.fragment;
2 2  
3 3 import android.databinding.DataBindingUtil;
4 4 import android.databinding.ViewDataBinding;
... ... @@ -9,7 +9,7 @@ import android.view.LayoutInflater;
9 9 import android.view.View;
10 10 import android.view.ViewGroup;
11 11  
12   -import com.cnlive.libs.base.util.ReflectUtil;
  12 +import com.cnlive.libs.base.frame.ReflectUtil;
13 13 import com.hannesdorfmann.mosby3.mvp.MvpPresenter;
14 14 import com.hannesdorfmann.mosby3.mvp.MvpView;
15 15  
... ...
cnlive/src/main/java/com/cnlive/libs/base/fragment/MvpFragment.java renamed to cnlive/src/main/java/com/cnlive/libs/base/frame/fragment/MvpFragment.java
1   -package com.cnlive.libs.base.fragment;
  1 +package com.cnlive.libs.base.frame.fragment;
2 2  
3 3 import android.os.Bundle;
4 4 import android.support.annotation.NonNull;
... ... @@ -7,7 +7,7 @@ import android.view.LayoutInflater;
7 7 import android.view.View;
8 8 import android.view.ViewGroup;
9 9  
10   -import com.cnlive.libs.base.util.ReflectUtil;
  10 +import com.cnlive.libs.base.frame.ReflectUtil;
11 11 import com.hannesdorfmann.mosby3.mvp.MvpPresenter;
12 12 import com.hannesdorfmann.mosby3.mvp.MvpView;
13 13  
... ...