diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/LiveDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/LiveDialog.java index 325f224a0..fb4271477 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/LiveDialog.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/LiveDialog.java @@ -20,6 +20,7 @@ import com.google.android.material.bottomsheet.BottomSheetDialogFragment; public class LiveDialog extends BaseDialog implements LiveAdapter.OnClickListener { + private final LiveAdapter adapter; private DialogLiveBinding binding; private LiveCallback callback; @@ -27,6 +28,10 @@ public class LiveDialog extends BaseDialog implements LiveAdapter.OnClickListene return new LiveDialog(); } + public LiveDialog() { + this.adapter = new LiveAdapter(this); + } + public void show(FragmentActivity activity) { for (Fragment f : activity.getSupportFragmentManager().getFragments()) if (f instanceof BottomSheetDialogFragment) return; show(activity.getSupportFragmentManager(), null); @@ -39,6 +44,10 @@ public class LiveDialog extends BaseDialog implements LiveAdapter.OnClickListene this.callback = (LiveCallback) fragment; } + private int getCount() { + return adapter.getItemCount() < 2 ? 1 : 2; + } + @Override protected ViewBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) { return binding = DialogLiveBinding.inflate(inflater, container, false); @@ -46,10 +55,10 @@ public class LiveDialog extends BaseDialog implements LiveAdapter.OnClickListene @Override protected void initView() { + binding.recycler.setAdapter(adapter); binding.recycler.setHasFixedSize(true); - binding.recycler.setAdapter(new LiveAdapter(this)); - binding.recycler.addItemDecoration(new SpaceItemDecoration(2, 16)); - binding.recycler.setLayoutManager(new GridLayoutManager(getContext(), 2)); + binding.recycler.addItemDecoration(new SpaceItemDecoration(getCount(), 16)); + binding.recycler.setLayoutManager(new GridLayoutManager(getContext(), getCount())); binding.recycler.scrollToPosition(LiveConfig.getHomeIndex()); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/SiteDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/SiteDialog.java index 9af08b964..861c65a3a 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/SiteDialog.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/SiteDialog.java @@ -23,7 +23,7 @@ public class SiteDialog extends BaseDialog implements SiteAdapter.OnClickListene private final SiteAdapter adapter; private DialogSiteBinding binding; private SiteCallback callback; - private int spanCount; + private int count; public static SiteDialog create() { return new SiteDialog(); @@ -35,20 +35,20 @@ public class SiteDialog extends BaseDialog implements SiteAdapter.OnClickListene public SiteDialog search() { this.adapter.search(true); - this.spanCount = 2; + this.count = 2; return this; } public SiteDialog change() { this.adapter.change(true); - this.spanCount = 2; + this.count = 2; return this; } public SiteDialog all() { this.adapter.search(true); this.adapter.change(true); - this.spanCount = 1; + this.count = 1; return this; } @@ -64,6 +64,10 @@ public class SiteDialog extends BaseDialog implements SiteAdapter.OnClickListene this.callback = (SiteCallback) fragment; } + private int getCount() { + return adapter.getItemCount() < 2 ? 1 : count; + } + @Override protected ViewBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) { return binding = DialogSiteBinding.inflate(inflater, container, false); @@ -74,8 +78,8 @@ public class SiteDialog extends BaseDialog implements SiteAdapter.OnClickListene binding.recycler.setAdapter(adapter); binding.recycler.setItemAnimator(null); binding.recycler.setHasFixedSize(true); - binding.recycler.addItemDecoration(new SpaceItemDecoration(spanCount, 16)); - binding.recycler.setLayoutManager(new GridLayoutManager(getContext(), spanCount)); + binding.recycler.addItemDecoration(new SpaceItemDecoration(getCount(), 16)); + binding.recycler.setLayoutManager(new GridLayoutManager(getContext(), getCount())); binding.recycler.scrollToPosition(ApiConfig.getHomeIndex()); }