diff --git a/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java b/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java index f1d245e5f9..9d171ee448 100755 --- a/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java @@ -17,6 +17,7 @@ package com.android.server.wm; import static android.view.WindowManager.LayoutParams.*; +import com.android.internal.view.RotationPolicy; import static android.view.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER; import android.app.AppOpsManager; @@ -8445,9 +8446,11 @@ public class WindowManagerService extends IWindowManager.Stub mRotation = Surface.ROTATION_0; rotation = Surface.ROTATION_90; } - if(mPolicy.getUserRotationMode() == WindowManagerPolicy.USER_ROTATION_FREE) + if(!RotationPolicy.isRotationLockToggleVisible(mContext) + && mPolicy.getUserRotationMode() == WindowManagerPolicy.USER_ROTATION_FREE) { rotation = Surface.ROTATION_0; + Slog.v(TAG, "Not allow rotate, force to ROTATION_0"); } /* $_rbox_$_modify_$_huangjc , force android rotation according to 0 */