Loading core/java/android/inputmethodservice/InputMethodService.java +5 −18 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package android.inputmethodservice; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; import static android.view.ViewRootImpl.NEW_INSETS_MODE_NONE; import static android.view.WindowInsets.Type.navigationBars; import static android.view.WindowInsets.Type.statusBars; import static android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS; Loading Loading @@ -2201,22 +2200,15 @@ public class InputMethodService extends AbstractInputMethodService { } /** * Apply the IME visibility in {@link android.view.ImeInsetsSourceConsumer} when * {@link ViewRootImpl.sNewInsetsMode} is enabled. * Applies the IME visibility in {@link android.view.ImeInsetsSourceConsumer}. * * @param setVisible {@code true} to make it visible, false to hide it. */ private void applyVisibilityInInsetsConsumerIfNecessary(boolean setVisible) { if (!isVisibilityAppliedUsingInsetsConsumer()) { return; } mPrivOps.applyImeVisibility(setVisible ? mCurShowInputToken : mCurHideInputToken, setVisible); } private boolean isVisibilityAppliedUsingInsetsConsumer() { return ViewRootImpl.sNewInsetsMode > NEW_INSETS_MODE_NONE; } private void finishViews(boolean finishingInput) { if (mInputViewStarted) { if (DEBUG) Log.v(TAG, "CALL: onFinishInputView"); Loading @@ -2241,15 +2233,10 @@ public class InputMethodService extends AbstractInputMethodService { mWindowVisible = false; finishViews(false /* finishingInput */); if (mDecorViewVisible) { // When insets API is enabled, it is responsible for client and server side // visibility of IME window. if (isVisibilityAppliedUsingInsetsConsumer()) { // It is responsible for client and server side visibility of IME window. if (mInputView != null) { mInputView.dispatchWindowVisibilityChanged(View.GONE); } } else { mWindow.hide(); } mDecorViewVisible = false; onWindowHidden(); mDecorViewWasVisible = false; Loading core/java/android/view/InsetsState.java +1 −21 Original line number Diff line number Diff line Loading @@ -17,10 +17,6 @@ package android.view; import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_STABLE; import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL; import static android.view.ViewRootImpl.NEW_INSETS_MODE_IME; import static android.view.ViewRootImpl.NEW_INSETS_MODE_NONE; import static android.view.ViewRootImpl.sNewInsetsMode; import static android.view.WindowInsets.Type.MANDATORY_SYSTEM_GESTURES; import static android.view.WindowInsets.Type.SYSTEM_GESTURES; import static android.view.WindowInsets.Type.displayCutout; Loading Loading @@ -195,18 +191,6 @@ public class InsetsState implements Parcelable { continue; } boolean skipNonImeInImeMode = ViewRootImpl.sNewInsetsMode == NEW_INSETS_MODE_IME && source.getType() != ITYPE_IME; boolean skipSystemBars = ViewRootImpl.sNewInsetsMode != NEW_INSETS_MODE_FULL && (type == ITYPE_STATUS_BAR || type == ITYPE_NAVIGATION_BAR); boolean skipLegacyTypes = ViewRootImpl.sNewInsetsMode == NEW_INSETS_MODE_NONE && (type == ITYPE_STATUS_BAR || type == ITYPE_NAVIGATION_BAR || type == ITYPE_IME); if (skipSystemBars || skipLegacyTypes || skipNonImeInImeMode) { typeVisibilityMap[indexOf(toPublicType(type))] = source.isVisible(); continue; } processSource(source, relativeFrame, false /* ignoreVisibility */, typeInsetsMap, typeSideMap, typeVisibilityMap); Loading Loading @@ -239,8 +223,7 @@ public class InsetsState implements Parcelable { return new WindowInsets(typeInsetsMap, typeMaxInsetsMap, typeVisibilityMap, isScreenRound, alwaysConsumeSystemBars, cutout, compatInsetsTypes, sNewInsetsMode == NEW_INSETS_MODE_FULL && (legacySystemUiFlags & SYSTEM_UI_FLAG_LAYOUT_STABLE) != 0); (legacySystemUiFlags & SYSTEM_UI_FLAG_LAYOUT_STABLE) != 0); } public Rect calculateVisibleInsets(Rect frame, @SoftInputModeFlags int softInputMode) { Loading @@ -250,9 +233,6 @@ public class InsetsState implements Parcelable { if (source == null) { continue; } if (sNewInsetsMode != NEW_INSETS_MODE_FULL && type != ITYPE_IME) { continue; } // Ignore everything that's not a system bar or IME. int publicType = InsetsState.toPublicType(type); Loading core/java/android/view/View.java +9 −3 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package android.view; import static android.content.res.Resources.ID_NULL; import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL; import static android.view.accessibility.AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED; import static com.android.internal.util.FrameworkStatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__DEEP_PRESS; Loading Loading @@ -5435,8 +5434,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, sAcceptZeroSizeDragShadow = targetSdkVersion < Build.VERSION_CODES.P; sBrokenInsetsDispatch = ViewRootImpl.sNewInsetsMode != NEW_INSETS_MODE_FULL || targetSdkVersion < Build.VERSION_CODES.R; sBrokenInsetsDispatch = targetSdkVersion < Build.VERSION_CODES.R; sBrokenWindowBackground = targetSdkVersion < Build.VERSION_CODES.Q; Loading Loading @@ -26262,6 +26260,14 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } } /** * This needs to be a better API before it is exposed. For now, only the root view will get * notified. * @hide */ public void onSystemBarAppearanceChanged(@WindowInsetsController.Appearance int appearance) { } /** * Creates an image that the system displays during the drag and drop * operation. This is called a "drag shadow". The default implementation core/java/android/view/ViewRootImpl.java +17 −68 Original line number Diff line number Diff line Loading @@ -220,45 +220,6 @@ public final class ViewRootImpl implements ViewParent, */ private static final boolean MT_RENDERER_AVAILABLE = true; /** * If set to 2, the view system will switch from using rectangles retrieved from window to * dispatch to the view hierarchy to using {@link InsetsController}, that derives the insets * directly from the full configuration, enabling richer information about the insets state, as * well as new APIs to control it frame-by-frame, and synchronize animations with it. * <p> * Only set this to 2 once the new insets system is productionized and the old APIs are * fully migrated over. * <p> * If set to 1, this will switch to a mode where we only use the new approach for IME, but not * for the status/navigation bar. */ private static final String USE_NEW_INSETS_PROPERTY = "persist.debug.new_insets"; /** * @see #USE_NEW_INSETS_PROPERTY * @hide */ public static final int NEW_INSETS_MODE_NONE = 0; /** * @see #USE_NEW_INSETS_PROPERTY * @hide */ public static final int NEW_INSETS_MODE_IME = 1; /** * @see #USE_NEW_INSETS_PROPERTY * @hide */ public static final int NEW_INSETS_MODE_FULL = 2; /** * @see #USE_NEW_INSETS_PROPERTY * @hide */ public static int sNewInsetsMode = SystemProperties.getInt(USE_NEW_INSETS_PROPERTY, NEW_INSETS_MODE_FULL); /** * Set this system property to true to force the view hierarchy to render * at 60 Hz. This can be used to measure the potential framerate. Loading Loading @@ -454,8 +415,8 @@ public final class ViewRootImpl implements ViewParent, @UnsupportedAppUsage final View.AttachInfo mAttachInfo; final SystemUiVisibilityInfo mCompatibleVisibilityInfo; int mDispatchedSystemUiVisibility = ViewRootImpl.sNewInsetsMode == NEW_INSETS_MODE_FULL ? 0 : -1; int mDispatchedSystemUiVisibility; int mDispatchedSystemBarAppearance; InputQueue.Callback mInputQueueCallback; InputQueue mInputQueue; @UnsupportedAppUsage Loading Loading @@ -1409,6 +1370,10 @@ public final class ViewRootImpl implements ViewParent, attrs.systemUiVisibility = mWindowAttributes.systemUiVisibility; attrs.subtreeSystemUiVisibility = mWindowAttributes.subtreeSystemUiVisibility; // Transfer over appearance and behavior values as they carry current state. attrs.insetsFlags.appearance = mWindowAttributes.insetsFlags.appearance; attrs.insetsFlags.behavior = mWindowAttributes.insetsFlags.behavior; final int changes = mWindowAttributes.copyFrom(attrs); if ((changes & WindowManager.LayoutParams.TRANSLUCENT_FLAGS_CHANGED) != 0) { // Recompute system ui visibility. Loading Loading @@ -1627,9 +1592,6 @@ public final class ViewRootImpl implements ViewParent, } void notifyInsetsChanged() { if (sNewInsetsMode == NEW_INSETS_MODE_NONE) { return; } mApplyInsetsRequested = true; requestLayout(); Loading Loading @@ -2063,8 +2025,7 @@ public final class ViewRootImpl implements ViewParent, */ void updateCompatSysUiVisibility(@InternalInsetsType int type, boolean visible, boolean hasControl) { if ((type != ITYPE_STATUS_BAR && type != ITYPE_NAVIGATION_BAR) || ViewRootImpl.sNewInsetsMode != ViewRootImpl.NEW_INSETS_MODE_FULL) { if (type != ITYPE_STATUS_BAR && type != ITYPE_NAVIGATION_BAR) { return; } final SystemUiVisibilityInfo info = mCompatibleVisibilityInfo; Loading @@ -2089,14 +2050,6 @@ public final class ViewRootImpl implements ViewParent, } private void handleDispatchSystemUiVisibilityChanged(SystemUiVisibilityInfo args) { if (mSeq != args.seq && sNewInsetsMode != NEW_INSETS_MODE_FULL) { // The sequence has changed, so we need to update our value and make // sure to do a traversal afterward so the window manager is given our // most recent data. mSeq = args.seq; mAttachInfo.mForceReportNewAttributes = true; scheduleTraversals(); } if (mView == null) return; if (args.localChanges != 0) { mView.updateLocalSystemUiVisibility(args.localValue, args.localChanges); Loading @@ -2112,9 +2065,6 @@ public final class ViewRootImpl implements ViewParent, @VisibleForTesting public static void adjustLayoutParamsForCompatibility(WindowManager.LayoutParams inOutParams) { if (sNewInsetsMode != NEW_INSETS_MODE_FULL) { return; } final int sysUiVis = inOutParams.systemUiVisibility | inOutParams.subtreeSystemUiVisibility; final int flags = inOutParams.flags; final int type = inOutParams.type; Loading Loading @@ -2179,9 +2129,6 @@ public final class ViewRootImpl implements ViewParent, } private void controlInsetsForCompatibility(WindowManager.LayoutParams params) { if (sNewInsetsMode != NEW_INSETS_MODE_FULL) { return; } final int sysUiVis = params.systemUiVisibility | params.subtreeSystemUiVisibility; final int flags = params.flags; final boolean matchParent = params.width == MATCH_PARENT && params.height == MATCH_PARENT; Loading Loading @@ -2629,6 +2576,10 @@ public final class ViewRootImpl implements ViewParent, } adjustLayoutParamsForCompatibility(params); controlInsetsForCompatibility(params); if (mDispatchedSystemBarAppearance != params.insetsFlags.appearance) { mDispatchedSystemBarAppearance = params.insetsFlags.appearance; mView.onSystemBarAppearanceChanged(mDispatchedSystemBarAppearance); } } if (mFirst || windowShouldResize || viewVisibilityChanged || cutoutChanged || params != null Loading Loading @@ -3239,7 +3190,6 @@ public final class ViewRootImpl implements ViewParent, hasWindowFocus = mUpcomingWindowFocus; inTouchMode = mUpcomingInTouchMode; } if (sNewInsetsMode != NEW_INSETS_MODE_NONE) { // TODO (b/131181940): Make sure this doesn't leak Activity with mActivityConfigCallback // config changes. if (hasWindowFocus) { Loading @@ -3247,7 +3197,6 @@ public final class ViewRootImpl implements ViewParent, } else { mInsetsController.onWindowFocusLost(); } } if (mAdded) { profileRendering(hasWindowFocus); Loading core/java/android/view/WindowManagerImpl.java +4 −15 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package android.view; import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN; import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION; import static android.view.View.SYSTEM_UI_FLAG_VISIBLE; import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL; import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR; import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN; import static android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING; Loading @@ -30,7 +29,6 @@ import android.app.ResourcesManager; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.res.Configuration; import android.graphics.Insets; import android.graphics.Rect; import android.graphics.Region; import android.os.Bundle; Loading Loading @@ -275,19 +273,10 @@ public final class WindowManagerImpl implements WindowManager { final Configuration config = mContext.getResources().getConfiguration(); final boolean isScreenRound = config.isScreenRound(); final int windowingMode = config.windowConfiguration.getWindowingMode(); if (ViewRootImpl.sNewInsetsMode == NEW_INSETS_MODE_FULL) { return insetsState.calculateInsets(bounds, null /* ignoringVisibilityState*/, isScreenRound, alwaysConsumeSystemBars, displayCutout.get(), SOFT_INPUT_ADJUST_NOTHING, attrs.flags, SYSTEM_UI_FLAG_VISIBLE, attrs.type, windowingMode, null /* typeSideMap */); } else { return new WindowInsets.Builder() .setAlwaysConsumeSystemBars(alwaysConsumeSystemBars) .setRound(isScreenRound) .setSystemWindowInsets(Insets.of(systemWindowInsets)) .setStableInsets(Insets.of(stableInsets)) .setDisplayCutout(displayCutout.get()).build(); } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading Loading
core/java/android/inputmethodservice/InputMethodService.java +5 −18 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package android.inputmethodservice; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; import static android.view.ViewRootImpl.NEW_INSETS_MODE_NONE; import static android.view.WindowInsets.Type.navigationBars; import static android.view.WindowInsets.Type.statusBars; import static android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS; Loading Loading @@ -2201,22 +2200,15 @@ public class InputMethodService extends AbstractInputMethodService { } /** * Apply the IME visibility in {@link android.view.ImeInsetsSourceConsumer} when * {@link ViewRootImpl.sNewInsetsMode} is enabled. * Applies the IME visibility in {@link android.view.ImeInsetsSourceConsumer}. * * @param setVisible {@code true} to make it visible, false to hide it. */ private void applyVisibilityInInsetsConsumerIfNecessary(boolean setVisible) { if (!isVisibilityAppliedUsingInsetsConsumer()) { return; } mPrivOps.applyImeVisibility(setVisible ? mCurShowInputToken : mCurHideInputToken, setVisible); } private boolean isVisibilityAppliedUsingInsetsConsumer() { return ViewRootImpl.sNewInsetsMode > NEW_INSETS_MODE_NONE; } private void finishViews(boolean finishingInput) { if (mInputViewStarted) { if (DEBUG) Log.v(TAG, "CALL: onFinishInputView"); Loading @@ -2241,15 +2233,10 @@ public class InputMethodService extends AbstractInputMethodService { mWindowVisible = false; finishViews(false /* finishingInput */); if (mDecorViewVisible) { // When insets API is enabled, it is responsible for client and server side // visibility of IME window. if (isVisibilityAppliedUsingInsetsConsumer()) { // It is responsible for client and server side visibility of IME window. if (mInputView != null) { mInputView.dispatchWindowVisibilityChanged(View.GONE); } } else { mWindow.hide(); } mDecorViewVisible = false; onWindowHidden(); mDecorViewWasVisible = false; Loading
core/java/android/view/InsetsState.java +1 −21 Original line number Diff line number Diff line Loading @@ -17,10 +17,6 @@ package android.view; import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_STABLE; import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL; import static android.view.ViewRootImpl.NEW_INSETS_MODE_IME; import static android.view.ViewRootImpl.NEW_INSETS_MODE_NONE; import static android.view.ViewRootImpl.sNewInsetsMode; import static android.view.WindowInsets.Type.MANDATORY_SYSTEM_GESTURES; import static android.view.WindowInsets.Type.SYSTEM_GESTURES; import static android.view.WindowInsets.Type.displayCutout; Loading Loading @@ -195,18 +191,6 @@ public class InsetsState implements Parcelable { continue; } boolean skipNonImeInImeMode = ViewRootImpl.sNewInsetsMode == NEW_INSETS_MODE_IME && source.getType() != ITYPE_IME; boolean skipSystemBars = ViewRootImpl.sNewInsetsMode != NEW_INSETS_MODE_FULL && (type == ITYPE_STATUS_BAR || type == ITYPE_NAVIGATION_BAR); boolean skipLegacyTypes = ViewRootImpl.sNewInsetsMode == NEW_INSETS_MODE_NONE && (type == ITYPE_STATUS_BAR || type == ITYPE_NAVIGATION_BAR || type == ITYPE_IME); if (skipSystemBars || skipLegacyTypes || skipNonImeInImeMode) { typeVisibilityMap[indexOf(toPublicType(type))] = source.isVisible(); continue; } processSource(source, relativeFrame, false /* ignoreVisibility */, typeInsetsMap, typeSideMap, typeVisibilityMap); Loading Loading @@ -239,8 +223,7 @@ public class InsetsState implements Parcelable { return new WindowInsets(typeInsetsMap, typeMaxInsetsMap, typeVisibilityMap, isScreenRound, alwaysConsumeSystemBars, cutout, compatInsetsTypes, sNewInsetsMode == NEW_INSETS_MODE_FULL && (legacySystemUiFlags & SYSTEM_UI_FLAG_LAYOUT_STABLE) != 0); (legacySystemUiFlags & SYSTEM_UI_FLAG_LAYOUT_STABLE) != 0); } public Rect calculateVisibleInsets(Rect frame, @SoftInputModeFlags int softInputMode) { Loading @@ -250,9 +233,6 @@ public class InsetsState implements Parcelable { if (source == null) { continue; } if (sNewInsetsMode != NEW_INSETS_MODE_FULL && type != ITYPE_IME) { continue; } // Ignore everything that's not a system bar or IME. int publicType = InsetsState.toPublicType(type); Loading
core/java/android/view/View.java +9 −3 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package android.view; import static android.content.res.Resources.ID_NULL; import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL; import static android.view.accessibility.AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED; import static com.android.internal.util.FrameworkStatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__DEEP_PRESS; Loading Loading @@ -5435,8 +5434,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, sAcceptZeroSizeDragShadow = targetSdkVersion < Build.VERSION_CODES.P; sBrokenInsetsDispatch = ViewRootImpl.sNewInsetsMode != NEW_INSETS_MODE_FULL || targetSdkVersion < Build.VERSION_CODES.R; sBrokenInsetsDispatch = targetSdkVersion < Build.VERSION_CODES.R; sBrokenWindowBackground = targetSdkVersion < Build.VERSION_CODES.Q; Loading Loading @@ -26262,6 +26260,14 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } } /** * This needs to be a better API before it is exposed. For now, only the root view will get * notified. * @hide */ public void onSystemBarAppearanceChanged(@WindowInsetsController.Appearance int appearance) { } /** * Creates an image that the system displays during the drag and drop * operation. This is called a "drag shadow". The default implementation
core/java/android/view/ViewRootImpl.java +17 −68 Original line number Diff line number Diff line Loading @@ -220,45 +220,6 @@ public final class ViewRootImpl implements ViewParent, */ private static final boolean MT_RENDERER_AVAILABLE = true; /** * If set to 2, the view system will switch from using rectangles retrieved from window to * dispatch to the view hierarchy to using {@link InsetsController}, that derives the insets * directly from the full configuration, enabling richer information about the insets state, as * well as new APIs to control it frame-by-frame, and synchronize animations with it. * <p> * Only set this to 2 once the new insets system is productionized and the old APIs are * fully migrated over. * <p> * If set to 1, this will switch to a mode where we only use the new approach for IME, but not * for the status/navigation bar. */ private static final String USE_NEW_INSETS_PROPERTY = "persist.debug.new_insets"; /** * @see #USE_NEW_INSETS_PROPERTY * @hide */ public static final int NEW_INSETS_MODE_NONE = 0; /** * @see #USE_NEW_INSETS_PROPERTY * @hide */ public static final int NEW_INSETS_MODE_IME = 1; /** * @see #USE_NEW_INSETS_PROPERTY * @hide */ public static final int NEW_INSETS_MODE_FULL = 2; /** * @see #USE_NEW_INSETS_PROPERTY * @hide */ public static int sNewInsetsMode = SystemProperties.getInt(USE_NEW_INSETS_PROPERTY, NEW_INSETS_MODE_FULL); /** * Set this system property to true to force the view hierarchy to render * at 60 Hz. This can be used to measure the potential framerate. Loading Loading @@ -454,8 +415,8 @@ public final class ViewRootImpl implements ViewParent, @UnsupportedAppUsage final View.AttachInfo mAttachInfo; final SystemUiVisibilityInfo mCompatibleVisibilityInfo; int mDispatchedSystemUiVisibility = ViewRootImpl.sNewInsetsMode == NEW_INSETS_MODE_FULL ? 0 : -1; int mDispatchedSystemUiVisibility; int mDispatchedSystemBarAppearance; InputQueue.Callback mInputQueueCallback; InputQueue mInputQueue; @UnsupportedAppUsage Loading Loading @@ -1409,6 +1370,10 @@ public final class ViewRootImpl implements ViewParent, attrs.systemUiVisibility = mWindowAttributes.systemUiVisibility; attrs.subtreeSystemUiVisibility = mWindowAttributes.subtreeSystemUiVisibility; // Transfer over appearance and behavior values as they carry current state. attrs.insetsFlags.appearance = mWindowAttributes.insetsFlags.appearance; attrs.insetsFlags.behavior = mWindowAttributes.insetsFlags.behavior; final int changes = mWindowAttributes.copyFrom(attrs); if ((changes & WindowManager.LayoutParams.TRANSLUCENT_FLAGS_CHANGED) != 0) { // Recompute system ui visibility. Loading Loading @@ -1627,9 +1592,6 @@ public final class ViewRootImpl implements ViewParent, } void notifyInsetsChanged() { if (sNewInsetsMode == NEW_INSETS_MODE_NONE) { return; } mApplyInsetsRequested = true; requestLayout(); Loading Loading @@ -2063,8 +2025,7 @@ public final class ViewRootImpl implements ViewParent, */ void updateCompatSysUiVisibility(@InternalInsetsType int type, boolean visible, boolean hasControl) { if ((type != ITYPE_STATUS_BAR && type != ITYPE_NAVIGATION_BAR) || ViewRootImpl.sNewInsetsMode != ViewRootImpl.NEW_INSETS_MODE_FULL) { if (type != ITYPE_STATUS_BAR && type != ITYPE_NAVIGATION_BAR) { return; } final SystemUiVisibilityInfo info = mCompatibleVisibilityInfo; Loading @@ -2089,14 +2050,6 @@ public final class ViewRootImpl implements ViewParent, } private void handleDispatchSystemUiVisibilityChanged(SystemUiVisibilityInfo args) { if (mSeq != args.seq && sNewInsetsMode != NEW_INSETS_MODE_FULL) { // The sequence has changed, so we need to update our value and make // sure to do a traversal afterward so the window manager is given our // most recent data. mSeq = args.seq; mAttachInfo.mForceReportNewAttributes = true; scheduleTraversals(); } if (mView == null) return; if (args.localChanges != 0) { mView.updateLocalSystemUiVisibility(args.localValue, args.localChanges); Loading @@ -2112,9 +2065,6 @@ public final class ViewRootImpl implements ViewParent, @VisibleForTesting public static void adjustLayoutParamsForCompatibility(WindowManager.LayoutParams inOutParams) { if (sNewInsetsMode != NEW_INSETS_MODE_FULL) { return; } final int sysUiVis = inOutParams.systemUiVisibility | inOutParams.subtreeSystemUiVisibility; final int flags = inOutParams.flags; final int type = inOutParams.type; Loading Loading @@ -2179,9 +2129,6 @@ public final class ViewRootImpl implements ViewParent, } private void controlInsetsForCompatibility(WindowManager.LayoutParams params) { if (sNewInsetsMode != NEW_INSETS_MODE_FULL) { return; } final int sysUiVis = params.systemUiVisibility | params.subtreeSystemUiVisibility; final int flags = params.flags; final boolean matchParent = params.width == MATCH_PARENT && params.height == MATCH_PARENT; Loading Loading @@ -2629,6 +2576,10 @@ public final class ViewRootImpl implements ViewParent, } adjustLayoutParamsForCompatibility(params); controlInsetsForCompatibility(params); if (mDispatchedSystemBarAppearance != params.insetsFlags.appearance) { mDispatchedSystemBarAppearance = params.insetsFlags.appearance; mView.onSystemBarAppearanceChanged(mDispatchedSystemBarAppearance); } } if (mFirst || windowShouldResize || viewVisibilityChanged || cutoutChanged || params != null Loading Loading @@ -3239,7 +3190,6 @@ public final class ViewRootImpl implements ViewParent, hasWindowFocus = mUpcomingWindowFocus; inTouchMode = mUpcomingInTouchMode; } if (sNewInsetsMode != NEW_INSETS_MODE_NONE) { // TODO (b/131181940): Make sure this doesn't leak Activity with mActivityConfigCallback // config changes. if (hasWindowFocus) { Loading @@ -3247,7 +3197,6 @@ public final class ViewRootImpl implements ViewParent, } else { mInsetsController.onWindowFocusLost(); } } if (mAdded) { profileRendering(hasWindowFocus); Loading
core/java/android/view/WindowManagerImpl.java +4 −15 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package android.view; import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN; import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION; import static android.view.View.SYSTEM_UI_FLAG_VISIBLE; import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL; import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR; import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN; import static android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING; Loading @@ -30,7 +29,6 @@ import android.app.ResourcesManager; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.res.Configuration; import android.graphics.Insets; import android.graphics.Rect; import android.graphics.Region; import android.os.Bundle; Loading Loading @@ -275,19 +273,10 @@ public final class WindowManagerImpl implements WindowManager { final Configuration config = mContext.getResources().getConfiguration(); final boolean isScreenRound = config.isScreenRound(); final int windowingMode = config.windowConfiguration.getWindowingMode(); if (ViewRootImpl.sNewInsetsMode == NEW_INSETS_MODE_FULL) { return insetsState.calculateInsets(bounds, null /* ignoringVisibilityState*/, isScreenRound, alwaysConsumeSystemBars, displayCutout.get(), SOFT_INPUT_ADJUST_NOTHING, attrs.flags, SYSTEM_UI_FLAG_VISIBLE, attrs.type, windowingMode, null /* typeSideMap */); } else { return new WindowInsets.Builder() .setAlwaysConsumeSystemBars(alwaysConsumeSystemBars) .setRound(isScreenRound) .setSystemWindowInsets(Insets.of(systemWindowInsets)) .setStableInsets(Insets.of(stableInsets)) .setDisplayCutout(displayCutout.get()).build(); } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading