Commit f199d5ab27cdb7f5427d51d836f9013ea45c6c03
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,8 +10,6 @@ | ||
| 10 | <option value="$PROJECT_DIR$" /> | 10 | <option value="$PROJECT_DIR$" /> |
| 11 | <option value="$PROJECT_DIR$/app" /> | 11 | <option value="$PROJECT_DIR$/app" /> |
| 12 | <option value="$PROJECT_DIR$/cnlive" /> | 12 | <option value="$PROJECT_DIR$/cnlive" /> |
| 13 | - <option value="$PROJECT_DIR$/testlib" /> | ||
| 14 | - <option value="$PROJECT_DIR$/testlib2" /> | ||
| 15 | </set> | 13 | </set> |
| 16 | </option> | 14 | </option> |
| 17 | <option name="resolveModulePerSourceSet" value="false" /> | 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,8 +2,8 @@ package com.cnlive.libs.demo; | ||
| 2 | 2 | ||
| 3 | import android.content.Context; | 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 | import com.cnlive.libs.demo.data.model.AppInfo; | 7 | import com.cnlive.libs.demo.data.model.AppInfo; |
| 8 | import com.cnlive.libs.demo.data.network.testapi.ApiRequest; | 8 | import com.cnlive.libs.demo.data.network.testapi.ApiRequest; |
| 9 | import com.cnlive.libs.demo.data.network.testapi.ApiService; | 9 | import com.cnlive.libs.demo.data.network.testapi.ApiService; |
app/src/main/java/com/cnlive/libs/demo/data/model/BaseInfo.java
app/src/main/java/com/cnlive/libs/demo/data/network/testapi/ApiRequest.java
| 1 | package com.cnlive.libs.demo.data.network.testapi; | 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 | import com.cnlive.libs.demo.Config; | 7 | import com.cnlive.libs.demo.Config; |
| 8 | 8 | ||
| 9 | import io.reactivex.Observable; | 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,7 +2,7 @@ package com.cnlive.libs.demo.mvptest.frame.presenter; | ||
| 2 | 2 | ||
| 3 | import android.content.Context; | 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 | import com.cnlive.libs.base.util.LogUtil; | 6 | import com.cnlive.libs.base.util.LogUtil; |
| 7 | import com.cnlive.libs.base.util.TimerUtil; | 7 | import com.cnlive.libs.base.util.TimerUtil; |
| 8 | import com.cnlive.libs.demo.Config; | 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,7 +5,7 @@ import android.content.Intent; | ||
| 5 | import android.os.Bundle; | 5 | import android.os.Bundle; |
| 6 | import android.view.View; | 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 | import com.cnlive.libs.demo.R; | 9 | import com.cnlive.libs.demo.R; |
| 10 | import com.cnlive.libs.demo.databinding.ActivityLaunchBinding; | 10 | import com.cnlive.libs.demo.databinding.ActivityLaunchBinding; |
| 11 | import com.cnlive.libs.demo.mvptest.frame.presenter.LaunchPresenter; | 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
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
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
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
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 | import android.content.Context; | 3 | import android.content.Context; |
| 4 | import android.support.annotation.IntDef; | 4 | import android.support.annotation.IntDef; |
| 5 | import android.text.TextUtils; | 5 | import android.text.TextUtils; |
| 6 | 6 | ||
| 7 | import com.cnlive.libs.base.R; | 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 | import com.cnlive.libs.base.util.LogUtil; | 9 | import com.cnlive.libs.base.util.LogUtil; |
| 10 | 10 | ||
| 11 | import java.lang.annotation.Retention; | 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
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
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 | import java.lang.reflect.Constructor; | 6 | import java.lang.reflect.Constructor; |
| 5 | import java.lang.reflect.Method; | 7 | import java.lang.reflect.Method; |
| 6 | import java.lang.reflect.ParameterizedType; | 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 | import android.os.Bundle; | 3 | import android.os.Bundle; |
| 4 | import android.support.annotation.NonNull; | 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 | import com.hannesdorfmann.mosby3.mvp.MvpPresenter; | 7 | import com.hannesdorfmann.mosby3.mvp.MvpPresenter; |
| 8 | import com.hannesdorfmann.mosby3.mvp.MvpView; | 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 | import android.databinding.DataBindingUtil; | 3 | import android.databinding.DataBindingUtil; |
| 4 | import android.databinding.ViewDataBinding; | 4 | import android.databinding.ViewDataBinding; |
| 5 | import android.os.Bundle; | 5 | import android.os.Bundle; |
| 6 | import android.support.annotation.NonNull; | 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 | import com.hannesdorfmann.mosby3.mvp.MvpPresenter; | 9 | import com.hannesdorfmann.mosby3.mvp.MvpPresenter; |
| 10 | import com.hannesdorfmann.mosby3.mvp.MvpView; | 10 | import com.hannesdorfmann.mosby3.mvp.MvpView; |
| 11 | 11 | ||
| @@ -34,7 +34,7 @@ public abstract class MvpBindingActivity<V extends MvpView, P extends MvpPresent | @@ -34,7 +34,7 @@ public abstract class MvpBindingActivity<V extends MvpView, P extends MvpPresent | ||
| 34 | 34 | ||
| 35 | @NonNull | 35 | @NonNull |
| 36 | public D getViewData() { | 36 | public D getViewData() { |
| 37 | - if(data == null) data = initLayoutData(); | 37 | + if (data == null) data = initLayoutData(); |
| 38 | return data; | 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 | import android.databinding.DataBindingUtil; | 3 | import android.databinding.DataBindingUtil; |
| 4 | import android.databinding.ViewDataBinding; | 4 | import android.databinding.ViewDataBinding; |
| @@ -9,7 +9,7 @@ import android.view.LayoutInflater; | @@ -9,7 +9,7 @@ import android.view.LayoutInflater; | ||
| 9 | import android.view.View; | 9 | import android.view.View; |
| 10 | import android.view.ViewGroup; | 10 | import android.view.ViewGroup; |
| 11 | 11 | ||
| 12 | -import com.cnlive.libs.base.util.ReflectUtil; | 12 | +import com.cnlive.libs.base.frame.ReflectUtil; |
| 13 | import com.hannesdorfmann.mosby3.mvp.MvpPresenter; | 13 | import com.hannesdorfmann.mosby3.mvp.MvpPresenter; |
| 14 | import com.hannesdorfmann.mosby3.mvp.MvpView; | 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 | import android.os.Bundle; | 3 | import android.os.Bundle; |
| 4 | import android.support.annotation.NonNull; | 4 | import android.support.annotation.NonNull; |
| @@ -7,7 +7,7 @@ import android.view.LayoutInflater; | @@ -7,7 +7,7 @@ import android.view.LayoutInflater; | ||
| 7 | import android.view.View; | 7 | import android.view.View; |
| 8 | import android.view.ViewGroup; | 8 | import android.view.ViewGroup; |
| 9 | 9 | ||
| 10 | -import com.cnlive.libs.base.util.ReflectUtil; | 10 | +import com.cnlive.libs.base.frame.ReflectUtil; |
| 11 | import com.hannesdorfmann.mosby3.mvp.MvpPresenter; | 11 | import com.hannesdorfmann.mosby3.mvp.MvpPresenter; |
| 12 | import com.hannesdorfmann.mosby3.mvp.MvpView; | 12 | import com.hannesdorfmann.mosby3.mvp.MvpView; |
| 13 | 13 |