From d51997406bd439d0ce1bc27f2df9fe03017e1da9 Mon Sep 17 00:00:00 2001 From: FongMi Date: Mon, 31 Mar 2025 12:02:33 +0800 Subject: [PATCH] Fix bug --- .../com/fongmi/android/tv/utils/ResUtil.java | 30 +++++++++++++------ .../java/com/fongmi/android/tv/Product.java | 10 +++---- .../tv/ui/activity/CollectActivity.java | 2 +- .../tv/ui/custom/CustomKeyDownLive.java | 8 ++--- .../tv/ui/custom/CustomKeyDownVod.java | 4 +-- 5 files changed, 33 insertions(+), 21 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 8d0f6cf9a..d42f283d8 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 @@ -26,31 +26,43 @@ import com.fongmi.android.tv.App; public class ResUtil { public static DisplayMetrics getDisplayMetrics() { - return App.get().getResources().getDisplayMetrics(); + return getDisplayMetrics(App.get()); } - public static WindowManager getWindowManager() { - return (WindowManager) App.get().getSystemService(Context.WINDOW_SERVICE); + public static DisplayMetrics getDisplayMetrics(Context context) { + return context.getResources().getDisplayMetrics(); + } + + public static WindowManager getWindowManager(Context context) { + return (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); } public static int getScreenWidth() { + return getScreenWidth(App.get()); + } + + public static int getScreenWidth(Context context) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { - return getWindowManager().getCurrentWindowMetrics().getBounds().width(); + return getWindowManager(context).getCurrentWindowMetrics().getBounds().width(); } else { - return getDisplayMetrics().widthPixels; + return getDisplayMetrics(context).widthPixels; } } public static int getScreenHeight() { + return getScreenHeight(App.get()); + } + + public static int getScreenHeight(Context context) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { - return getWindowManager().getCurrentWindowMetrics().getBounds().height(); + return getWindowManager(context).getCurrentWindowMetrics().getBounds().height(); } else { - return getDisplayMetrics().heightPixels; + return getDisplayMetrics(context).heightPixels; } } - public static boolean isEdge(MotionEvent e, int edge) { - return e.getRawX() < edge || e.getRawX() > getScreenWidth() - edge || e.getRawY() < edge || e.getRawY() > getScreenHeight() - edge; + public static boolean isEdge(Context context, MotionEvent e, int edge) { + return e.getRawX() < edge || e.getRawX() > getScreenWidth(context) - edge || e.getRawY() < edge || e.getRawY() > getScreenHeight(context) - edge; } public static boolean isLand(Context context) { 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 6eb3e7ac5..227fce5ff 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/Product.java +++ b/app/src/mobile/java/com/fongmi/android/tv/Product.java @@ -29,15 +29,15 @@ public class Product { int column = getColumn(context, style); int space = ResUtil.dp2px(32) + ResUtil.dp2px(16 * (column - 1)); if (style.isOval()) space += ResUtil.dp2px(column * 16); - return getSpec(space, column, style); + return getSpec(context, space, column, style); } - public static int[] getSpec(int space, int column) { - return getSpec(space, column, Style.rect()); + public static int[] getSpec(Context context, int space, int column) { + return getSpec(context, space, column, Style.rect()); } - private static int[] getSpec(int space, int column, Style style) { - int base = ResUtil.getScreenWidth() - space; + private static int[] getSpec(Context context, int space, int column, Style style) { + int base = ResUtil.getScreenWidth(context) - space; int width = base / column; int height = (int) (width / style.getRatio()); return new int[]{width, height}; 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 a46e16f3c..bc72f3250 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 @@ -141,7 +141,7 @@ public class CollectActivity extends BaseActivity implements CustomScroller.Call private void setViewType(int viewType) { int count = Product.getColumn(this) - 1; mSearchAdapter.setViewType(viewType, count); - mSearchAdapter.setSize(Product.getSpec(ResUtil.dp2px(128 + (count) * 16), count)); + mSearchAdapter.setSize(Product.getSpec(this, ResUtil.dp2px(128 + (count) * 16), count)); ((GridLayoutManager) mBinding.recycler.getLayoutManager()).setSpanCount(mSearchAdapter.isGrid() ? count : 1); mBinding.view.setImageResource(mSearchAdapter.isGrid() ? R.drawable.ic_action_list : R.drawable.ic_action_grid); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/CustomKeyDownLive.java b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/CustomKeyDownLive.java index 1efac35d4..649c47fcd 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/CustomKeyDownLive.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/CustomKeyDownLive.java @@ -60,7 +60,7 @@ public class CustomKeyDownLive extends GestureDetector.SimpleOnGestureListener { } private boolean isEdge(MotionEvent e) { - return ResUtil.isEdge(e, ResUtil.dp2px(24)); + return ResUtil.isEdge(activity, e, ResUtil.dp2px(24)); } @Override @@ -104,7 +104,7 @@ public class CustomKeyDownLive extends GestureDetector.SimpleOnGestureListener { @Override public boolean onSingleTapConfirmed(@NonNull MotionEvent e) { - int half = ResUtil.getScreenWidth() / 2; + int half = ResUtil.getScreenWidth(activity) / 2; if (e.getX() > half || lock) listener.onDoubleTap(); else listener.onSingleTap(); return true; @@ -124,7 +124,7 @@ public class CustomKeyDownLive extends GestureDetector.SimpleOnGestureListener { } private void checkFunc(float distanceX, float distanceY, MotionEvent e2) { - int four = ResUtil.getScreenWidth() / 4; + int four = ResUtil.getScreenWidth(activity) / 4; if (e2.getX() > four && e2.getX() < four * 3) center = true; else if (Math.abs(distanceX) < Math.abs(distanceY)) checkSide(e2); if (Math.abs(distanceX) >= Math.abs(distanceY)) changeTime = true; @@ -146,7 +146,7 @@ public class CustomKeyDownLive extends GestureDetector.SimpleOnGestureListener { } private void checkSide(MotionEvent e2) { - int half = ResUtil.getScreenWidth() / 2; + int half = ResUtil.getScreenWidth(activity) / 2; if (e2.getX() > half) changeVolume = true; else changeBright = true; } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/CustomKeyDownVod.java b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/CustomKeyDownVod.java index 093263bf4..af42d1b50 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/CustomKeyDownVod.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/CustomKeyDownVod.java @@ -55,7 +55,7 @@ public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener { } private boolean isEdge(MotionEvent e) { - return ResUtil.isEdge(e, ResUtil.dp2px(24)); + return ResUtil.isEdge(activity, e, ResUtil.dp2px(24)); } @Override @@ -115,7 +115,7 @@ public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener { } private void checkSide(MotionEvent e2) { - int half = ResUtil.getScreenWidth() / 2; + int half = ResUtil.getScreenWidth(activity) / 2; if (e2.getX() > half) changeVolume = true; else changeBright = true; }