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 | 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
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
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 | 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
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
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<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 | ... | ... |