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()) {