From 8765977e27b4006d08cba080376559fec67f933c Mon Sep 17 00:00:00 2001 From: jhengazuki Date: Wed, 5 Nov 2025 13:03:08 +0800 Subject: [PATCH] Fix lock orientation --- .../main/java/com/fongmi/android/tv/utils/ResUtil.java | 10 ++++++++++ .../fongmi/android/tv/ui/activity/LiveActivity.java | 2 +- .../fongmi/android/tv/ui/activity/VideoActivity.java | 2 +- 3 files changed, 12 insertions(+), 2 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 a457a2ed2..2e2aa9798 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 @@ -1,6 +1,7 @@ package com.fongmi.android.tv.utils; import android.content.Context; +import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.content.res.TypedArray; import android.graphics.Paint; @@ -11,6 +12,7 @@ import android.util.DisplayMetrics; import android.util.TypedValue; import android.view.Display; import android.view.MotionEvent; +import android.view.Surface; import android.view.WindowManager; import android.view.animation.Animation; import android.view.animation.AnimationUtils; @@ -70,6 +72,14 @@ public class ResUtil { } } + public static int getScreenOrientation(Context context) { + int orientation = context.getResources().getConfiguration().orientation; + int rotation = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getRotation(); + if (orientation == Configuration.ORIENTATION_PORTRAIT) return ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; + if (orientation == Configuration.ORIENTATION_LANDSCAPE) return rotation == Surface.ROTATION_90 ? ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE; + return ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; + } + 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; } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index b1ecaa755..a64bca124 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -437,7 +437,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDown.Listener private int getLockOrient() { if (isLock()) { - return ActivityInfo.SCREEN_ORIENTATION_LOCKED; + return ResUtil.getScreenOrientation(this); } else if (isRotate()) { return ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT; } else { diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 79b0a1278..5811135c2 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -914,7 +914,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo private int getLockOrient() { if (isLock()) { - return ActivityInfo.SCREEN_ORIENTATION_LOCKED; + return ResUtil.getScreenOrientation(this); } else if (isRotate()) { return ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT; } else if (isPort() && isAutoRotate()) {