diff --git a/app/build.gradle b/app/build.gradle index f12deca..a3f9e00 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId "com.uiui.videoplayer" minSdkVersion 24 targetSdkVersion 28 - versionCode 115 - versionName "1.1.4" + versionCode 116 + versionName "1.1.5" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" @@ -25,7 +25,7 @@ android { ndk { // add support lib abiFilters /*"armeabi",*/ "armeabi-v7a", "arm64-v8a", "x86" -/*, "x86_64", "mips", "mips64"*/ + /*, "x86_64", "mips", "mips64"*/ } lintOptions { @@ -201,5 +201,6 @@ dependencies { //指示器 implementation 'com.github.hackware1993:MagicIndicator:1.7.0' // for androidx implementation 'com.github.Othershe:CombineBitmap:1.0.5' +// implementation 'com.github.wuao:FlycoTabLayout2:Tag1.1.3' } diff --git a/app/src/main/java/com/uiui/videoplayer/activity/main/MainActivity.java b/app/src/main/java/com/uiui/videoplayer/activity/main/MainActivity.java index 2620723..2b2f9da 100644 --- a/app/src/main/java/com/uiui/videoplayer/activity/main/MainActivity.java +++ b/app/src/main/java/com/uiui/videoplayer/activity/main/MainActivity.java @@ -61,7 +61,7 @@ public class MainActivity extends BaseMvvmActivity { - public final BehaviorSubject lifecycleSubject = BehaviorSubject.create(); +public abstract class BaseFragment extends BaseRxFragment { protected boolean isViewInitiated; protected boolean isVisibleToUser; protected boolean isDataInitiated; - @Override - @NonNull - @CheckResult - public final Observable lifecycle() { - return lifecycleSubject.hide(); - } - - @Override - @NonNull - @CheckResult - public final LifecycleTransformer bindUntilEvent(@NonNull FragmentEvent event) { - return RxLifecycle.bindUntilEvent(lifecycleSubject, event); - } - - @Override - @NonNull - @CheckResult - public final LifecycleTransformer bindToLifecycle() { - return RxLifecycleAndroid.bindFragment(lifecycleSubject); - } - - @Override - @CallSuper - public void onAttach(android.app.Activity activity) { - super.onAttach(activity); - lifecycleSubject.onNext(FragmentEvent.ATTACH); - } - - @Override - @CallSuper - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - lifecycleSubject.onNext(FragmentEvent.CREATE); - } - - @Nullable - @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - return super.onCreateView(inflater, container, savedInstanceState); - } @Override public void onActivityCreated(Bundle savedInstanceState) { @@ -91,65 +34,11 @@ public abstract class BaseFragment extends Fragment implements LifecycleProvider public boolean prepareFetchData(boolean forceUpdate) { if (isVisibleToUser && isViewInitiated && (!isDataInitiated || forceUpdate)) { fetchData(); - isDataInitiated = true; + //注释掉保证每次都更新数据 +// isDataInitiated = true; return true; } return false; } - @Override - @CallSuper - public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - lifecycleSubject.onNext(FragmentEvent.CREATE_VIEW); - } - - @Override - @CallSuper - public void onStart() { - super.onStart(); - lifecycleSubject.onNext(FragmentEvent.START); - } - - @Override - @CallSuper - public void onResume() { - super.onResume(); - lifecycleSubject.onNext(FragmentEvent.RESUME); - } - - @Override - @CallSuper - public void onPause() { - lifecycleSubject.onNext(FragmentEvent.PAUSE); - super.onPause(); - } - - @Override - @CallSuper - public void onStop() { - lifecycleSubject.onNext(FragmentEvent.STOP); - super.onStop(); - } - - @Override - @CallSuper - public void onDestroyView() { - lifecycleSubject.onNext(FragmentEvent.DESTROY_VIEW); - super.onDestroyView(); - } - - @Override - @CallSuper - public void onDestroy() { - lifecycleSubject.onNext(FragmentEvent.DESTROY); - super.onDestroy(); - } - - @Override - @CallSuper - public void onDetach() { - lifecycleSubject.onNext(FragmentEvent.DETACH); - super.onDetach(); - } } diff --git a/app/src/main/java/com/uiui/videoplayer/base/BaseTransparentActivity.java b/app/src/main/java/com/uiui/videoplayer/base/BaseTransparentActivity.java index dfb8c1c..e5ba4db 100644 --- a/app/src/main/java/com/uiui/videoplayer/base/BaseTransparentActivity.java +++ b/app/src/main/java/com/uiui/videoplayer/base/BaseTransparentActivity.java @@ -6,6 +6,7 @@ import androidx.annotation.CallSuper; import androidx.annotation.Nullable; import com.uiui.videoplayer.R; +import com.uiui.videoplayer.base.rx.BaseRxActivity; import com.zackratos.ultimatebarx.ultimatebarx.java.UltimateBarX; public abstract class BaseTransparentActivity extends BaseRxActivity { @@ -23,13 +24,13 @@ public abstract class BaseTransparentActivity extends BaseRxActivity { .transparent() .colorRes(R.color.colorPrimaryDark) .light(setNightMode()) - .fitWindow(true) + .fitWindow(setfitWindow()) .apply(); UltimateBarX.navigationBar(this) .transparent() .colorRes(R.color.colorPrimaryDark) .light(setNightMode()) - .fitWindow(true) + .fitWindow(setfitWindow()) .apply(); } @@ -41,5 +42,16 @@ public abstract class BaseTransparentActivity extends BaseRxActivity { /** * @return 是否是黑色状态栏 */ - protected abstract boolean setNightMode(); +// protected abstract boolean setNightMode(); + public boolean setNightMode() { + return false; + } + + /** + * @return 是否是入侵 + */ +// protected abstract boolean setNightMode(); + public boolean setfitWindow() { + return false; + } } \ No newline at end of file diff --git a/app/src/main/java/com/uiui/videoplayer/base/mvp/BaseActivity.java b/app/src/main/java/com/uiui/videoplayer/base/mvp/BaseActivity.java index 01a1e74..fba7ad5 100644 --- a/app/src/main/java/com/uiui/videoplayer/base/mvp/BaseActivity.java +++ b/app/src/main/java/com/uiui/videoplayer/base/mvp/BaseActivity.java @@ -7,6 +7,7 @@ import androidx.annotation.Nullable; import com.uiui.videoplayer.base.BaseTransparentActivity; +@Deprecated public abstract class BaseActivity extends BaseTransparentActivity { public BaseActivity() { diff --git a/app/src/main/java/com/uiui/videoplayer/base/mvp/BasePresenter.java b/app/src/main/java/com/uiui/videoplayer/base/mvp/BasePresenter.java index c4b4b1c..e0fc978 100644 --- a/app/src/main/java/com/uiui/videoplayer/base/mvp/BasePresenter.java +++ b/app/src/main/java/com/uiui/videoplayer/base/mvp/BasePresenter.java @@ -1,5 +1,6 @@ package com.uiui.videoplayer.base.mvp; +@Deprecated public interface BasePresenter { void attachView(V view); diff --git a/app/src/main/java/com/uiui/videoplayer/base/mvp/BaseView.java b/app/src/main/java/com/uiui/videoplayer/base/mvp/BaseView.java index b956b36..0f1042b 100644 --- a/app/src/main/java/com/uiui/videoplayer/base/mvp/BaseView.java +++ b/app/src/main/java/com/uiui/videoplayer/base/mvp/BaseView.java @@ -1,4 +1,5 @@ package com.uiui.videoplayer.base.mvp; +@Deprecated public interface BaseView { } diff --git a/app/src/main/java/com/uiui/videoplayer/base/BaseRxActivity.java b/app/src/main/java/com/uiui/videoplayer/base/rx/BaseRxActivity.java similarity index 98% rename from app/src/main/java/com/uiui/videoplayer/base/BaseRxActivity.java rename to app/src/main/java/com/uiui/videoplayer/base/rx/BaseRxActivity.java index 99100c7..1f684fc 100644 --- a/app/src/main/java/com/uiui/videoplayer/base/BaseRxActivity.java +++ b/app/src/main/java/com/uiui/videoplayer/base/rx/BaseRxActivity.java @@ -1,4 +1,4 @@ -package com.uiui.videoplayer.base; +package com.uiui.videoplayer.base.rx; import android.os.Bundle; diff --git a/app/src/main/java/com/uiui/videoplayer/base/rx/BaseRxFragment.java b/app/src/main/java/com/uiui/videoplayer/base/rx/BaseRxFragment.java new file mode 100644 index 0000000..5f3de79 --- /dev/null +++ b/app/src/main/java/com/uiui/videoplayer/base/rx/BaseRxFragment.java @@ -0,0 +1,123 @@ +package com.uiui.videoplayer.base.rx; + +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.CallSuper; +import androidx.annotation.CheckResult; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + +import com.trello.rxlifecycle4.LifecycleProvider; +import com.trello.rxlifecycle4.LifecycleTransformer; +import com.trello.rxlifecycle4.RxLifecycle; +import com.trello.rxlifecycle4.android.FragmentEvent; +import com.trello.rxlifecycle4.android.RxLifecycleAndroid; + +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.subjects.BehaviorSubject; + +/** + * {@link com.trello.rxlifecycle4.components.RxFragment} + * copied form RxFragment} + */ +public class BaseRxFragment extends Fragment implements LifecycleProvider { + private final BehaviorSubject lifecycleSubject = BehaviorSubject.create(); + + public BehaviorSubject getLifecycleSubject() { + return lifecycleSubject; + } + + @Override + @NonNull + @CheckResult + public final Observable lifecycle() { + return lifecycleSubject.hide(); + } + + @Override + @NonNull + @CheckResult + public final LifecycleTransformer bindUntilEvent(@NonNull FragmentEvent event) { + return RxLifecycle.bindUntilEvent(lifecycleSubject, event); + } + + @Override + @NonNull + @CheckResult + public final LifecycleTransformer bindToLifecycle() { + return RxLifecycleAndroid.bindFragment(lifecycleSubject); + } + + @Override + @CallSuper + public void onAttach(android.app.Activity activity) { + super.onAttach(activity); + lifecycleSubject.onNext(FragmentEvent.ATTACH); + } + + @Override + @CallSuper + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + lifecycleSubject.onNext(FragmentEvent.CREATE); + } + + @Override + @CallSuper + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + lifecycleSubject.onNext(FragmentEvent.CREATE_VIEW); + } + + @Override + @CallSuper + public void onStart() { + super.onStart(); + lifecycleSubject.onNext(FragmentEvent.START); + } + + @Override + @CallSuper + public void onResume() { + super.onResume(); + lifecycleSubject.onNext(FragmentEvent.RESUME); + } + + @Override + @CallSuper + public void onPause() { + lifecycleSubject.onNext(FragmentEvent.PAUSE); + super.onPause(); + } + + @Override + @CallSuper + public void onStop() { + lifecycleSubject.onNext(FragmentEvent.STOP); + super.onStop(); + } + + @Override + @CallSuper + public void onDestroyView() { + lifecycleSubject.onNext(FragmentEvent.DESTROY_VIEW); + super.onDestroyView(); + } + + @Override + @CallSuper + public void onDestroy() { + lifecycleSubject.onNext(FragmentEvent.DESTROY); + super.onDestroy(); + } + + @Override + @CallSuper + public void onDetach() { + lifecycleSubject.onNext(FragmentEvent.DETACH); + super.onDetach(); + } +} + diff --git a/app/src/main/java/com/uiui/videoplayer/base/rx/BaseRxService.java b/app/src/main/java/com/uiui/videoplayer/base/rx/BaseRxService.java new file mode 100644 index 0000000..c9ebf15 --- /dev/null +++ b/app/src/main/java/com/uiui/videoplayer/base/rx/BaseRxService.java @@ -0,0 +1,55 @@ +package com.uiui.videoplayer.base.rx; + +import android.app.Service; +import android.content.Intent; + +import androidx.annotation.NonNull; + +import com.trello.rxlifecycle4.LifecycleProvider; +import com.trello.rxlifecycle4.LifecycleTransformer; +import com.trello.rxlifecycle4.RxLifecycle; +import com.trello.rxlifecycle4.android.ActivityEvent; +import com.trello.rxlifecycle4.android.RxLifecycleAndroid; + +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.subjects.BehaviorSubject; + +public abstract class BaseRxService extends Service implements LifecycleProvider { + public final BehaviorSubject lifecycleSubject = BehaviorSubject.create(); + + public BaseRxService() { + super(); + } + + @Override + public final Observable lifecycle() { + return lifecycleSubject.hide(); + } + + @Override + public final LifecycleTransformer bindUntilEvent(@NonNull ActivityEvent event) { + return RxLifecycle.bindUntilEvent(lifecycleSubject, event); + } + + @Override + public final LifecycleTransformer bindToLifecycle() { + return RxLifecycleAndroid.bindActivity(lifecycleSubject); + } + + @Override + public void onCreate() { + super.onCreate(); + lifecycleSubject.onNext(ActivityEvent.CREATE); + } + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + return super.onStartCommand(intent, flags, startId); + } + + @Override + public void onDestroy() { + super.onDestroy(); + lifecycleSubject.onNext(ActivityEvent.STOP); + } +} diff --git a/app/src/main/java/com/uiui/videoplayer/fragment/pic/PictureFragment.java b/app/src/main/java/com/uiui/videoplayer/fragment/pic/PictureFragment.java index 0339b93..b810944 100644 --- a/app/src/main/java/com/uiui/videoplayer/fragment/pic/PictureFragment.java +++ b/app/src/main/java/com/uiui/videoplayer/fragment/pic/PictureFragment.java @@ -48,7 +48,7 @@ public class PictureFragment extends BaseFragment implements PictureContact.Pict private PicturePresenter mPresenter; private PicAdapter mPicAdapter; - private static final int SPAN_COUNT = 3; + private static final int SPAN_COUNT = 2; // TODO: Rename parameter arguments, choose names that match // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER @@ -117,7 +117,7 @@ public class PictureFragment extends BaseFragment implements PictureContact.Pict private void initView() { mPresenter = new PicturePresenter(mContext); - mPresenter.setLifecycle(lifecycleSubject); + mPresenter.setLifecycle(getLifecycleSubject()); mPresenter.attachView(this); GridLayoutManager layoutManager = new GridLayoutManager(mContext, SPAN_COUNT, LinearLayoutManager.VERTICAL, false); diff --git a/app/src/main/java/com/uiui/videoplayer/fragment/video/VideoFragment.java b/app/src/main/java/com/uiui/videoplayer/fragment/video/VideoFragment.java index 9dbc0de..44db695 100644 --- a/app/src/main/java/com/uiui/videoplayer/fragment/video/VideoFragment.java +++ b/app/src/main/java/com/uiui/videoplayer/fragment/video/VideoFragment.java @@ -56,7 +56,7 @@ public class VideoFragment extends BaseFragment implements VideoContact.VideoVie private VideoPresenter mPresenter; private RecycleGridLayoutManager mManager; private VideoAdapter mVideoAdapter; - private static final int SPAN_COUNT = 3; + private static final int SPAN_COUNT = 2; // TODO: Rename parameter arguments, choose names that match // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER @@ -124,7 +124,7 @@ public class VideoFragment extends BaseFragment implements VideoContact.VideoVie private void initView() { mPresenter = new VideoPresenter(mContext); - mPresenter.setLifecycle(lifecycleSubject); + mPresenter.setLifecycle(getLifecycleSubject()); mPresenter.attachView(this); Aria.download(this).register(); diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index de1597b..9942dc2 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -12,126 +12,115 @@ + android:layout_height="match_parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> + android:layout_height="@dimen/dp_48" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> - - - - - - - - - - - - - - + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> - - - - - - - + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_vip.xml b/app/src/main/res/layout/activity_vip.xml index ec361d1..9e4abdd 100644 --- a/app/src/main/res/layout/activity_vip.xml +++ b/app/src/main/res/layout/activity_vip.xml @@ -16,8 +16,8 @@ android:onClick="@{click::exit}"> + android:textSize="@dimen/sp_14" /> + android:textSize="@dimen/sp_14" /> diff --git a/app/src/main/res/layout/item_pic.xml b/app/src/main/res/layout/item_pic.xml index 79cc85d..845ad00 100644 --- a/app/src/main/res/layout/item_pic.xml +++ b/app/src/main/res/layout/item_pic.xml @@ -8,8 +8,8 @@ diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index fd8f794..e22f952 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -7,7 +7,7 @@ @color/colorAccent @color/colorBackground ?attr/colorPrimary - + true @@ -40,7 +40,8 @@ true - false + + true true @@ -49,6 +50,7 @@ @android:style/Animation.Dialog true + true