diff options
4 files changed, 34 insertions, 10 deletions
diff --git a/core/proto/android/server/windowmanagerservice.proto b/core/proto/android/server/windowmanagerservice.proto index d315ff27ef9a..0affcea99706 100644 --- a/core/proto/android/server/windowmanagerservice.proto +++ b/core/proto/android/server/windowmanagerservice.proto @@ -48,8 +48,8 @@ message WindowManagerServiceDumpProto { optional string focused_app = 4; optional IdentifierProto input_method_window = 5; optional bool display_frozen = 6; - optional int32 rotation = 7 [(.android.typedef) = "android.view.Surface.Rotation"]; - optional int32 last_orientation = 8 [(.android.typedef) = "android.content.pm.ActivityInfo.ScreenOrientation"]; + optional int32 rotation = 7 [(.android.typedef) = "android.view.Surface.Rotation", deprecated=true]; + optional int32 last_orientation = 8 [(.android.typedef) = "android.content.pm.ActivityInfo.ScreenOrientation", deprecated=true]; optional int32 focused_display_id = 9; optional bool hard_keyboard_available = 10; } @@ -183,7 +183,7 @@ message DisplayContentProto { repeated WindowTokenProto ime_windows = 8 [deprecated=true]; optional int32 dpi = 9; optional .android.view.DisplayInfoProto display_info = 10; - optional int32 rotation = 11 [(.android.typedef) = "android.view.Surface.Rotation"]; + optional int32 rotation = 11 [(.android.typedef) = "android.view.Surface.Rotation", deprecated=true]; optional ScreenRotationAnimationProto screen_rotation_animation = 12; optional DisplayFramesProto display_frames = 13; optional int32 surface_size = 14 [deprecated=true]; @@ -207,6 +207,8 @@ message DisplayContentProto { optional WindowStateProto current_focus = 30; optional ImeInsetsSourceProviderProto ime_insets_source_provider = 31; optional bool can_show_ime = 32; + + optional DisplayRotationProto display_rotation = 33; } /* represents DisplayArea object */ @@ -242,6 +244,16 @@ message DisplayFramesProto { optional .android.graphics.RectProto current = 3; } +message DisplayRotationProto { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional int32 rotation = 1 [(.android.typedef) = "android.view.Surface.Rotation"]; + optional bool frozen_to_user_rotation = 2; + optional int32 user_rotation = 3 [(.android.typedef) = "android.view.Surface.Rotation"]; + optional int32 fixed_to_user_rotation_mode = 4; + optional int32 last_orientation = 5 [(.android.typedef) = "android.content.pm.ActivityInfo.ScreenOrientation"]; +} + /* represents DockedStackDividerController */ message DockedStackDividerControllerProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; @@ -529,4 +541,4 @@ message ImeInsetsSourceProviderProto { optional InsetsSourceProviderProto insets_source_provider = 1; optional WindowStateProto ime_target_from_ime = 2; optional bool is_ime_layout_drawn = 3; -}
\ No newline at end of file +} diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index e7f0e3eb7a76..59f423253378 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -96,6 +96,7 @@ import static com.android.server.wm.DisplayContentProto.CURRENT_FOCUS; import static com.android.server.wm.DisplayContentProto.DISPLAY_FRAMES; import static com.android.server.wm.DisplayContentProto.DISPLAY_INFO; import static com.android.server.wm.DisplayContentProto.DISPLAY_READY; +import static com.android.server.wm.DisplayContentProto.DISPLAY_ROTATION; import static com.android.server.wm.DisplayContentProto.DPI; import static com.android.server.wm.DisplayContentProto.FOCUSED_APP; import static com.android.server.wm.DisplayContentProto.FOCUSED_ROOT_TASK_ID; @@ -107,7 +108,6 @@ import static com.android.server.wm.DisplayContentProto.INPUT_METHOD_TARGET; import static com.android.server.wm.DisplayContentProto.OPENING_APPS; import static com.android.server.wm.DisplayContentProto.RESUMED_ACTIVITY; import static com.android.server.wm.DisplayContentProto.ROOT_DISPLAY_AREA; -import static com.android.server.wm.DisplayContentProto.ROTATION; import static com.android.server.wm.DisplayContentProto.SCREEN_ROTATION_ANIMATION; import static com.android.server.wm.DisplayContentProto.SINGLE_TASK_INSTANCE; import static com.android.server.wm.Task.ActivityState.RESUMED; @@ -2868,7 +2868,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp proto.write(ID, mDisplayId); proto.write(DPI, mBaseDisplayDensity); mDisplayInfo.dumpDebug(proto, DISPLAY_INFO); - proto.write(ROTATION, getRotation()); + mDisplayRotation.dumpDebug(proto, DISPLAY_ROTATION); final ScreenRotationAnimation screenRotationAnimation = getRotationAnimation(); if (screenRotationAnimation != null) { screenRotationAnimation.dumpDebug(proto, SCREEN_ROTATION_ANIMATION); diff --git a/services/core/java/com/android/server/wm/DisplayRotation.java b/services/core/java/com/android/server/wm/DisplayRotation.java index 0f43e49b568b..66c4b4e63357 100644 --- a/services/core/java/com/android/server/wm/DisplayRotation.java +++ b/services/core/java/com/android/server/wm/DisplayRotation.java @@ -24,6 +24,11 @@ import static android.view.WindowManager.LayoutParams.ROTATION_ANIMATION_SEAMLES import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_OPEN; +import static com.android.server.wm.DisplayRotationProto.FIXED_TO_USER_ROTATION_MODE; +import static com.android.server.wm.DisplayRotationProto.FROZEN_TO_USER_ROTATION; +import static com.android.server.wm.DisplayRotationProto.LAST_ORIENTATION; +import static com.android.server.wm.DisplayRotationProto.ROTATION; +import static com.android.server.wm.DisplayRotationProto.USER_ROTATION; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ANIM; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; @@ -51,6 +56,7 @@ import android.os.UserHandle; import android.provider.Settings; import android.util.Slog; import android.util.SparseArray; +import android.util.proto.ProtoOutputStream; import android.view.IDisplayWindowRotationCallback; import android.view.IWindowManager; import android.view.Surface; @@ -1453,6 +1459,16 @@ public class DisplayRotation { pw.println(prefix + " mFixedToUserRotation=" + isFixedToUserRotation()); } + void dumpDebug(ProtoOutputStream proto, long fieldId) { + final long token = proto.start(fieldId); + proto.write(ROTATION, getRotation()); + proto.write(FROZEN_TO_USER_ROTATION, isRotationFrozen()); + proto.write(USER_ROTATION, getUserRotation()); + proto.write(FIXED_TO_USER_ROTATION_MODE, mFixedToUserRotation); + proto.write(LAST_ORIENTATION, mLastOrientation); + proto.end(token); + } + private class OrientationListener extends WindowOrientationListener { final SparseArray<Runnable> mRunnableCache = new SparseArray<>(5); boolean mEnabled; diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 223aa1e9be39..03f88a4b77fc 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -122,10 +122,8 @@ import static com.android.server.wm.WindowManagerServiceDumpProto.FOCUSED_DISPLA import static com.android.server.wm.WindowManagerServiceDumpProto.FOCUSED_WINDOW; import static com.android.server.wm.WindowManagerServiceDumpProto.HARD_KEYBOARD_AVAILABLE; import static com.android.server.wm.WindowManagerServiceDumpProto.INPUT_METHOD_WINDOW; -import static com.android.server.wm.WindowManagerServiceDumpProto.LAST_ORIENTATION; import static com.android.server.wm.WindowManagerServiceDumpProto.POLICY; import static com.android.server.wm.WindowManagerServiceDumpProto.ROOT_WINDOW_CONTAINER; -import static com.android.server.wm.WindowManagerServiceDumpProto.ROTATION; import android.Manifest; import android.Manifest.permission; @@ -5998,8 +5996,6 @@ public class WindowManagerService extends IWindowManager.Stub } proto.write(DISPLAY_FROZEN, mDisplayFrozen); final DisplayContent defaultDisplayContent = getDefaultDisplayContentLocked(); - proto.write(ROTATION, defaultDisplayContent.getRotation()); - proto.write(LAST_ORIENTATION, defaultDisplayContent.getLastOrientation()); proto.write(FOCUSED_DISPLAY_ID, topFocusedDisplayContent.getDisplayId()); proto.write(HARD_KEYBOARD_AVAILABLE, mHardKeyboardAvailable); } |