From 7d10048de95741962ad8507d3a136afcbbddb544 Mon Sep 17 00:00:00 2001 From: FongMi Date: Sun, 3 Sep 2023 22:38:12 +0800 Subject: [PATCH] [mobile] support pad layout - part 3 --- app/build.gradle | 1 + app/src/mobile/java/com/fongmi/android/tv/Product.java | 6 +++++- .../fongmi/android/tv/ui/activity/CollectActivity.java | 9 +++++++-- .../com/fongmi/android/tv/ui/adapter/WordAdapter.java | 2 +- app/src/mobile/res/layout/activity_collect.xml | 4 ---- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index fcc017e0a..415ec323e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -125,6 +125,7 @@ dependencies { mobileImplementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' mobileImplementation 'com.github.chrisbanes:PhotoView:2.3.0' mobileImplementation 'com.github.devin1014.DLNA-Cast:dlna-dmc:V1.0.0' + mobileImplementation 'com.google.android.flexbox:flexbox:3.0.0' mobileImplementation('com.journeyapps:zxing-android-embedded:4.3.0') { transitive = false } annotationProcessor 'androidx.room:room-compiler:2.5.2' annotationProcessor 'com.github.bumptech.glide:compiler:4.15.1' 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 390d9ad0f..2dad4210c 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/Product.java +++ b/app/src/mobile/java/com/fongmi/android/tv/Product.java @@ -7,12 +7,16 @@ 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() - 5); + return Math.abs(Setting.getSize() - (isPad() ? 8 : 5)); } 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 05e4bb86e..3399e988f 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 @@ -43,6 +43,8 @@ import com.fongmi.android.tv.ui.custom.dialog.SiteDialog; import com.fongmi.android.tv.utils.ResUtil; import com.fongmi.android.tv.utils.Utils; import com.github.catvod.net.OkHttp; +import com.google.android.flexbox.FlexDirection; +import com.google.android.flexbox.FlexboxLayoutManager; import java.io.IOException; import java.util.ArrayList; @@ -127,8 +129,10 @@ public class CollectActivity extends BaseActivity implements CustomScroller.Call mBinding.recycler.setAdapter(mSearchAdapter = new SearchAdapter(this)); mBinding.wordRecycler.setHasFixedSize(true); mBinding.wordRecycler.setAdapter(mWordAdapter = new WordAdapter(this)); + mBinding.wordRecycler.setLayoutManager(new FlexboxLayoutManager(this, FlexDirection.ROW)); mBinding.recordRecycler.setHasFixedSize(true); mBinding.recordRecycler.setAdapter(mRecordAdapter = new RecordAdapter(this)); + mBinding.recordRecycler.setLayoutManager(new FlexboxLayoutManager(this, FlexDirection.ROW)); } private void setViewType() { @@ -136,9 +140,10 @@ public class CollectActivity extends BaseActivity implements CustomScroller.Call } private void setViewType(int viewType) { + int count = Product.isPad() ? 5 : 2; mSearchAdapter.setViewType(viewType); - mSearchAdapter.setSize(Product.getSpec(this, ResUtil.dp2px(64), 3)); - ((GridLayoutManager) mBinding.recycler.getLayoutManager()).setSpanCount(mSearchAdapter.isGrid() ? 2 : 1); + mSearchAdapter.setSize(Product.getSpec(this, ResUtil.dp2px((count + 2) * 16), count + 1)); + ((GridLayoutManager) mBinding.recycler.getLayoutManager()).setSpanCount(mSearchAdapter.isGrid() ? count : 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/adapter/WordAdapter.java b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/WordAdapter.java index 6e03b7a39..08e9e4404 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/WordAdapter.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/WordAdapter.java @@ -28,7 +28,7 @@ public class WordAdapter extends RecyclerView.Adapter { public void addAll(List items) { mItems.clear(); - mItems.addAll(items.subList(0, Math.min(items.size(), 10))); + mItems.addAll(items.subList(0, Math.min(items.size(), 20))); notifyDataSetChanged(); } diff --git a/app/src/mobile/res/layout/activity_collect.xml b/app/src/mobile/res/layout/activity_collect.xml index da4c9dfb0..2f6db9935 100644 --- a/app/src/mobile/res/layout/activity_collect.xml +++ b/app/src/mobile/res/layout/activity_collect.xml @@ -75,8 +75,6 @@ android:clipToPadding="false" android:overScrollMode="never" android:padding="8dp" - app:layoutManager="androidx.recyclerview.widget.GridLayoutManager" - app:spanCount="2" tools:itemCount="5" tools:listitem="@layout/adapter_collect_record" /> @@ -98,8 +96,6 @@ android:clipToPadding="false" android:overScrollMode="never" android:padding="8dp" - app:layoutManager="androidx.recyclerview.widget.GridLayoutManager" - app:spanCount="2" tools:itemCount="5" tools:listitem="@layout/adapter_collect_word" />