From ed5c2ff12fd19e30b5eefec069d0899d91282337 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8E=E4=BF=8A?= <215613905@qq.com> Date: Thu, 10 Apr 2025 11:52:50 +0800 Subject: [PATCH] =?UTF-8?q?fix=E4=B8=8A=E6=AC=A1=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E5=BC=95=E5=8F=91=E7=9A=84TV=E7=AB=AF=E7=AD=9B=E9=80=89bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tvbox/osc/ui/dialog/GridFilterDialog.java | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/github/tvbox/osc/ui/dialog/GridFilterDialog.java b/app/src/main/java/com/github/tvbox/osc/ui/dialog/GridFilterDialog.java index 592d8a11..30351236 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/dialog/GridFilterDialog.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/dialog/GridFilterDialog.java @@ -1,7 +1,10 @@ package com.github.tvbox.osc.ui.dialog; +import android.app.UiModeManager; import android.content.Context; import android.content.DialogInterface; +import android.content.pm.PackageManager; +import android.content.res.Configuration; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; @@ -28,19 +31,24 @@ public class GridFilterDialog extends BaseDialog { public GridFilterDialog(@NonNull @NotNull Context context) { super(context); - setCanceledOnTouchOutside(true); + setCanceledOnTouchOutside(false); setCancelable(true); setContentView(R.layout.dialog_grid_filter); filterRoot = findViewById(R.id.filterRoot); - - - View rootView = findViewById(R.id.root); - rootView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - dismiss(); - } - }); + UiModeManager uiModeManager = (UiModeManager) context.getSystemService(Context.UI_MODE_SERVICE); + // 检查是否为电视设备 + boolean isTv = uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION + || context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEVISION) + || !context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN); + if(!isTv){ + View rootView = findViewById(R.id.root); + rootView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + dismiss(); + } + }); + } } public interface Callback { @@ -111,7 +119,7 @@ public class GridFilterDialog extends BaseDialog { WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); layoutParams.gravity = Gravity.BOTTOM; layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT; - layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT; + layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT; layoutParams.dimAmount = 0f; getWindow().getDecorView().setPadding(0, 0, 0, 0); getWindow().setAttributes(layoutParams);