From 70157d909c341f28c87f8a8f832984147dbb26e4 Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 21 Feb 2023 17:18:59 +0800 Subject: [PATCH] [mobile] optimize pip mode --- .../com/fongmi/android/tv/utils/ResUtil.java | 9 +-- app/src/mobile/AndroidManifest.xml | 1 + .../java/com/fongmi/android/tv/Product.java | 5 +- .../tv/ui/activity/DetailActivity.java | 63 ++++++++++++------- .../android/tv/ui/activity/MainActivity.java | 12 ++-- .../tv/ui/fragment/child/SiteFragment.java | 8 +-- .../tv/ui/fragment/child/TypeFragment.java | 4 +- 7 files changed, 61 insertions(+), 41 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java b/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java index 17b21076f..7baca2a0f 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java @@ -1,5 +1,6 @@ package com.fongmi.android.tv.utils; +import android.app.Activity; import android.content.res.Configuration; import android.graphics.drawable.Drawable; import android.util.DisplayMetrics; @@ -29,12 +30,12 @@ public class ResUtil { return getDisplayMetrics().heightPixels; } - public static boolean isLand() { - return App.get().getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE; + public static boolean isLand(Activity activity) { + return activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE; } - public static boolean isPort() { - return App.get().getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT; + public static boolean isPort(Activity activity) { + return activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT; } public static int getEms() { diff --git a/app/src/mobile/AndroidManifest.xml b/app/src/mobile/AndroidManifest.xml index b6746a000..590a40874 100644 --- a/app/src/mobile/AndroidManifest.xml +++ b/app/src/mobile/AndroidManifest.xml @@ -25,6 +25,7 @@ adapter) { adapter.notifyItemRangeChanged(0, adapter.getItemCount()); } @@ -824,14 +843,6 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis hideControl(); } - @Override - public void onConfigurationChanged(@NonNull Configuration newConfig) { - super.onConfigurationChanged(newConfig); - if (isLock()) return; - if (ResUtil.isLand()) enterFullscreen(); - if (ResUtil.isPort()) exitFullscreen(); - } - @Override protected void onUserLeaveHint() { super.onUserLeaveHint(); @@ -844,24 +855,31 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) { super.onPictureInPictureModeChanged(isInPictureInPictureMode); mBinding.progressLayout.setVisibility(isInPictureInPictureMode ? View.GONE : View.VISIBLE); - if (isInPictureInPictureMode) { - hideControl(); - hideInfo(); - } else if (!mPlayers.isPlaying()) { - finish(); - } + if (isInPictureInPictureMode) hideAll(); + else if (isStop()) finish(); + } + + @Override + public void onConfigurationChanged(@NonNull Configuration newConfig) { + super.onConfigurationChanged(newConfig); + if (Utils.hasPIP() && isInPictureInPictureMode() || isLock()) return; + else if (ResUtil.isPort(this)) exitFullscreen(); + else if (ResUtil.isLand(this)) enterFullscreen(); } @Override protected void onStart() { super.onStart(); + setStop(false); onPlay(); } @Override protected void onStop() { - onPause(false); super.onStop(); + RefreshEvent.history(); + onPause(false); + setStop(true); } @Override @@ -873,7 +891,6 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis @Override protected void onPause() { super.onPause(); - RefreshEvent.history(); Clock.get().release(); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java index 352a99135..de6abfde4 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java @@ -36,6 +36,12 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt return mBinding = ActivityMainBinding.inflate(getLayoutInflater()); } + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + checkAction(intent); + } + @Override protected void initView() { Notify.progress(this); @@ -45,12 +51,6 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt initConfig(); } - @Override - protected void onNewIntent(Intent intent) { - super.onNewIntent(intent); - checkAction(intent); - } - private void checkAction(Intent intent) { boolean hasPush = ApiConfig.get().getSite("push_agent") != null; boolean hasAction = intent.getAction() != null && intent.getAction().equals(Intent.ACTION_SEND) && intent.getType().equals("text/plain"); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/SiteFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/SiteFragment.java index 72fbe1185..e58b90199 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/SiteFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/SiteFragment.java @@ -46,10 +46,10 @@ public class SiteFragment extends BaseFragment implements VodAdapter.OnClickList private void setRecyclerView() { mBinding.history.setHasFixedSize(true); mBinding.history.getItemAnimator().setChangeDuration(0); - mBinding.history.setLayoutManager(mHistoryManager = new GridLayoutManager(getContext(), Product.getColumn())); + mBinding.history.setLayoutManager(mHistoryManager = new GridLayoutManager(getContext(), Product.getColumn(getActivity()))); mBinding.history.setAdapter(mHistoryAdapter = new HistoryAdapter(this)); mBinding.recommend.setHasFixedSize(true); - mBinding.recommend.setLayoutManager(mRecommendManager = new GridLayoutManager(getContext(), Product.getColumn())); + mBinding.recommend.setLayoutManager(mRecommendManager = new GridLayoutManager(getContext(), Product.getColumn(getActivity()))); mBinding.recommend.setAdapter(mVodAdapter = new VodAdapter(this)); } @@ -107,7 +107,7 @@ public class SiteFragment extends BaseFragment implements VodAdapter.OnClickList @Override public void onConfigurationChanged(@NonNull Configuration newConfig) { super.onConfigurationChanged(newConfig); - mHistoryManager.setSpanCount(Product.getColumn()); - mRecommendManager.setSpanCount(Product.getColumn()); + mHistoryManager.setSpanCount(Product.getColumn(getActivity())); + mRecommendManager.setSpanCount(Product.getColumn(getActivity())); } } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/TypeFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/TypeFragment.java index 8ff6cf5f6..b28cd3233 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/TypeFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/TypeFragment.java @@ -76,7 +76,7 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac private void setRecyclerView() { mBinding.recycler.setHasFixedSize(true); mBinding.recycler.setAdapter(mVodAdapter = new VodAdapter(this)); - mBinding.recycler.setLayoutManager(mGridLayoutManager = new GridLayoutManager(getContext(), Product.getColumn())); + mBinding.recycler.setLayoutManager(mGridLayoutManager = new GridLayoutManager(getContext(), Product.getColumn(getActivity()))); } private void setViewModel() { @@ -148,6 +148,6 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac @Override public void onConfigurationChanged(@NonNull Configuration newConfig) { super.onConfigurationChanged(newConfig); - mGridLayoutManager.setSpanCount(Product.getColumn()); + mGridLayoutManager.setSpanCount(Product.getColumn(getActivity())); } }