From 3ad30aa780ad0ea33601a90f7c542052ae55976c Mon Sep 17 00:00:00 2001 From: FongMi Date: Mon, 4 Sep 2023 15:28:59 +0800 Subject: [PATCH] [mobile] support pad layout - part 6 --- .../main/java/com/fongmi/android/tv/utils/ResUtil.java | 10 +++++++++- app/src/mobile/java/com/fongmi/android/tv/Product.java | 8 +++----- .../fongmi/android/tv/ui/activity/CollectActivity.java | 6 +++--- .../android/tv/ui/custom/dialog/EpisodeGridDialog.java | 4 ++-- 4 files changed, 17 insertions(+), 11 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 e9bbcd666..d90ca435a 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 @@ -85,8 +85,16 @@ public class ResUtil { return e.getRawX() < edge || e.getRawX() > getScreenWidthNav() - edge || e.getRawY() < edge || e.getRawY() > getScreenHeightNav() - edge; } + public static int getOrient() { + return App.get().getResources().getConfiguration().orientation; + } + public static boolean isLand() { - return App.get().getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE; + return getOrient() == Configuration.ORIENTATION_LANDSCAPE; + } + + public static boolean isPad() { + return App.get().getResources().getConfiguration().smallestScreenWidthDp >= 600; } public static int sp2px(int sp) { diff --git a/app/src/mobile/java/com/fongmi/android/tv/Product.java b/app/src/mobile/java/com/fongmi/android/tv/Product.java index 2dad4210c..9940d54f4 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/Product.java +++ b/app/src/mobile/java/com/fongmi/android/tv/Product.java @@ -7,16 +7,14 @@ import com.fongmi.android.tv.utils.ResUtil; public class Product { - public static boolean isPad() { - return App.get().getResources().getConfiguration().smallestScreenWidthDp >= 600; - } - public static int getDeviceType() { return 1; } public static int getColumn() { - return Math.abs(Setting.getSize() - (isPad() ? 8 : 5)); + int count = ResUtil.isPad() ? 6 : 5; + count = count + ResUtil.getOrient() - 1; + return Math.abs(Setting.getSize() - count); } public static int getColumn(Style style) { diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java index 3399e988f..962873ef1 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java @@ -140,10 +140,10 @@ public class CollectActivity extends BaseActivity implements CustomScroller.Call } private void setViewType(int viewType) { - int count = Product.isPad() ? 5 : 2; + int count = Product.getColumn(); mSearchAdapter.setViewType(viewType); - mSearchAdapter.setSize(Product.getSpec(this, ResUtil.dp2px((count + 2) * 16), count + 1)); - ((GridLayoutManager) mBinding.recycler.getLayoutManager()).setSpanCount(mSearchAdapter.isGrid() ? count : 1); + mSearchAdapter.setSize(Product.getSpec(this, ResUtil.dp2px((count + 1) * 16), count)); + ((GridLayoutManager) mBinding.recycler.getLayoutManager()).setSpanCount(mSearchAdapter.isGrid() ? count - 1 : 1); mBinding.view.setImageResource(mSearchAdapter.isGrid() ? R.drawable.ic_action_list : R.drawable.ic_action_grid); RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mBinding.collect.getLayoutParams(); params.width = mSearchAdapter.getWidth() + ResUtil.dp2px(24); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/EpisodeGridDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/EpisodeGridDialog.java index d8c1e216c..3824be683 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/EpisodeGridDialog.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/EpisodeGridDialog.java @@ -10,10 +10,10 @@ import androidx.fragment.app.FragmentActivity; import androidx.viewbinding.ViewBinding; import androidx.viewpager2.adapter.FragmentStateAdapter; -import com.fongmi.android.tv.Product; import com.fongmi.android.tv.bean.Episode; import com.fongmi.android.tv.databinding.DialogEpisodeGridBinding; import com.fongmi.android.tv.ui.fragment.EpisodeFragment; +import com.fongmi.android.tv.utils.ResUtil; import com.google.android.material.bottomsheet.BottomSheetDialogFragment; import com.google.android.material.tabs.TabLayoutMediator; @@ -67,7 +67,7 @@ public class EpisodeGridDialog extends BaseDialog { private void setSpanCount() { int total = 0; - int row = Product.isPad() ? 5 : 10; + int row = ResUtil.isLand() ? 5 : 10; for (Episode item : episodes) total += item.getName().length(); int offset = (int) Math.ceil((double) total / episodes.size()); if (offset >= 12) spanCount = 1;