From ba2e86094538c51436b1ec9784d935094e569bf2 Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 11 Jul 2024 18:18:47 +0800 Subject: [PATCH] Fix dialog bug --- .../fongmi/android/tv/ui/custom/CustomRecyclerView.java | 5 +++++ .../java/com/fongmi/android/tv/ui/dialog/LiveDialog.java | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomRecyclerView.java b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomRecyclerView.java index 5cee96579..1eab8edf4 100644 --- a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomRecyclerView.java +++ b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomRecyclerView.java @@ -11,6 +11,7 @@ import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; import com.fongmi.android.tv.R; +import com.fongmi.android.tv.utils.ResUtil; public class CustomRecyclerView extends RecyclerView { @@ -32,6 +33,10 @@ public class CustomRecyclerView extends RecyclerView { init(context, attrs); } + public void setMaxHeight(int maxHeight) { + this.maxHeight = ResUtil.dp2px(maxHeight); + } + private void init(Context context, AttributeSet attrs) { TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomRecyclerView); maxHeight = a.getLayoutDimension(R.styleable.CustomRecyclerView_maxHeight, maxHeight); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/LiveDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/LiveDialog.java index 8e70cfe2e..48b1d28d0 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/LiveDialog.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/LiveDialog.java @@ -2,6 +2,7 @@ package com.fongmi.android.tv.ui.dialog; import android.app.Activity; import android.view.LayoutInflater; +import android.view.WindowManager; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; @@ -12,6 +13,7 @@ import com.fongmi.android.tv.databinding.DialogLiveBinding; import com.fongmi.android.tv.impl.LiveCallback; import com.fongmi.android.tv.ui.adapter.LiveAdapter; import com.fongmi.android.tv.ui.custom.SpaceItemDecoration; +import com.fongmi.android.tv.utils.ResUtil; import com.google.android.material.dialog.MaterialAlertDialogBuilder; public class LiveDialog implements LiveAdapter.OnClickListener { @@ -20,6 +22,7 @@ public class LiveDialog implements LiveAdapter.OnClickListener { private DialogLiveBinding binding; private LiveAdapter adapter; private AlertDialog dialog; + private boolean full; public static LiveDialog create(Activity activity) { return new LiveDialog(activity); @@ -31,6 +34,7 @@ public class LiveDialog implements LiveAdapter.OnClickListener { private LiveDialog(Activity activity) { this.callback = (LiveCallback) activity; + this.full = true; init(activity); } @@ -61,10 +65,14 @@ public class LiveDialog implements LiveAdapter.OnClickListener { binding.recycler.setHasFixedSize(true); binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 8)); binding.recycler.post(() -> binding.recycler.scrollToPosition(LiveConfig.getHomeIndex())); + if (full) binding.recycler.setMaxHeight(264); } private void setDialog() { if (adapter.getItemCount() == 0) return; + WindowManager.LayoutParams params = dialog.getWindow().getAttributes(); + if (full) params.width = (int) (ResUtil.getScreenWidth() * 0.5f); + dialog.getWindow().setAttributes(params); dialog.getWindow().setDimAmount(0); dialog.show(); }