Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 674d8440 authored by Felix Stern's avatar Felix Stern
Browse files

Adding RemoteInsetsControlTarget to proto dump

Fix: 399856349
Test: adb shell dumpsys window --proto
Flag: EXEMPT proto only
Change-Id: I34d18e81fd5bef58debbf048b87d6b1004add404
parent 6e9fc6c7
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -235,6 +235,7 @@ message DisplayContentProto {
    optional IdentifierProto input_method_input_target_identifier = 41;
    optional IdentifierProto input_method_control_target_identifier = 42;
    optional IdentifierProto current_focus_identifier = 43;
    optional RemoteInsetsControlTargetProto remote_insets_control_target = 44;
}

/* represents DisplayArea object */
@@ -476,6 +477,13 @@ message WindowStateProto {
    optional int32 sync_seq_id = 51;
}

// represents RemoteInsetsControlTarget
message RemoteInsetsControlTargetProto {
    optional IdentifierProto identifier = 1;
    optional int32 requested_visible_types = 2;
    optional int32 animating_types = 3;
}

message IdentifierProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

+42 −4
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
import static android.content.res.Configuration.ORIENTATION_UNDEFINED;
import static android.os.Build.VERSION_CODES.N;
import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
import static android.os.UserHandle.USER_NULL;
import static android.util.DisplayMetrics.DENSITY_DEFAULT;
import static android.util.RotationUtils.deltaRotation;
import static android.util.TypedValue.COMPLEX_UNIT_DIP;
@@ -123,12 +124,19 @@ import static com.android.server.wm.DisplayContentProto.INPUT_METHOD_LAYERING_TA
import static com.android.server.wm.DisplayContentProto.IS_SLEEPING;
import static com.android.server.wm.DisplayContentProto.KEEP_CLEAR_AREAS;
import static com.android.server.wm.DisplayContentProto.MIN_SIZE_OF_RESIZEABLE_TASK_DP;
import static com.android.server.wm.DisplayContentProto.REMOTE_INSETS_CONTROL_TARGET;
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.SLEEP_TOKENS;
import static com.android.server.wm.EventLogTags.IMF_REMOVE_IME_SCREENSHOT;
import static com.android.server.wm.EventLogTags.IMF_SHOW_IME_SCREENSHOT;
import static com.android.server.wm.EventLogTags.IMF_UPDATE_IME_PARENT;
import static com.android.server.wm.IdentifierProto.HASH_CODE;
import static com.android.server.wm.IdentifierProto.TITLE;
import static com.android.server.wm.IdentifierProto.USER_ID;
import static com.android.server.wm.RemoteInsetsControlTargetProto.ANIMATING_TYPES;
import static com.android.server.wm.RemoteInsetsControlTargetProto.IDENTIFIER;
import static com.android.server.wm.RemoteInsetsControlTargetProto.REQUESTED_VISIBLE_TYPES;
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_WINDOW_ANIMATION;
import static com.android.server.wm.WindowContainerChildProto.DISPLAY_CONTENT;
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_DISPLAY;
@@ -3630,10 +3638,18 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
            mImeInputTarget.getWindowState().writeIdentifierToProto(
                    proto, INPUT_METHOD_INPUT_TARGET_IDENTIFIER);
        }
        if (mImeControlTarget != null
                && mImeControlTarget.getWindow() != null) {
        if (mImeControlTarget != null) {
            if (mImeControlTarget.getWindow() != null) {
                mImeControlTarget.getWindow().writeIdentifierToProto(
                        proto, INPUT_METHOD_CONTROL_TARGET_IDENTIFIER);
            } else if (mImeControlTarget instanceof RemoteInsetsControlTarget rict) {
                rict.writeIdentifierToProto(proto,
                        INPUT_METHOD_CONTROL_TARGET_IDENTIFIER);
            }
        }
        if (mRemoteInsetsControlTarget != null) {
            mRemoteInsetsControlTarget.dumpDebug(proto,
                    REMOTE_INSETS_CONTROL_TARGET, logLevel);
        }
        if (mCurrentFocus != null) {
            mCurrentFocus.writeIdentifierToProto(proto, CURRENT_FOCUS_IDENTIFIER);
@@ -7127,6 +7143,28 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
                }
            }
        }

        public void writeIdentifierToProto(ProtoOutputStream proto, long fieldId) {
            final long token = proto.start(fieldId);
            proto.write(HASH_CODE, System.identityHashCode(this));
            proto.write(USER_ID, USER_NULL);
            proto.write(TITLE, "RemoteInsetsControlTarget(displayId=" + mDisplayId + ")");
            proto.end(token);
        }

        public void dumpDebug(ProtoOutputStream proto, long fieldId,
                @WindowTracingLogLevel int logLevel) {
            if (logLevel == WindowTracingLogLevel.CRITICAL && !isVisible()) {
                return;
            }
            final long token = proto.start(fieldId);
            writeIdentifierToProto(proto, IDENTIFIER);

            proto.write(REQUESTED_VISIBLE_TYPES, mRequestedVisibleTypes);
            proto.write(ANIMATING_TYPES, mAnimatingTypes);
            proto.end(token);
        }

    }

    MagnificationSpec getMagnificationSpec() {