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

Commit b3a0c13a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Remove preferKeepClearAreaForFocusDelay, turn it into a flag" into...

Merge "Remove preferKeepClearAreaForFocusDelay, turn it into a flag" into tm-dev am: 12a7628e am: c3f7c806

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18184947



Change-Id: I0b1f8272f51f60519011d3a98b1679fe83a3e6ce
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 92dd3539 c3f7c806
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2920,7 +2920,7 @@ package android.view {
    method public static int getHoverTooltipHideTimeout();
    method public static int getHoverTooltipShowTimeout();
    method public static int getLongPressTooltipHideTimeout();
    method public int getPreferKeepClearForFocusDelay();
    method public boolean isPreferKeepClearForFocusEnabled();
  }

  public class ViewDebug {
+6 −31
Original line number Diff line number Diff line
@@ -4781,9 +4781,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
    @UnsupportedAppUsage
    ListenerInfo mListenerInfo;
    private boolean mPreferKeepClearForFocus;
    private Runnable mMarkPreferKeepClearForFocus;
    private static class TooltipInfo {
        /**
         * Text to be displayed in a tooltip popup.
@@ -11962,8 +11959,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
    @NonNull
    List<Rect> collectPreferKeepClearRects() {
        ListenerInfo info = mListenerInfo;
        boolean keepBoundsClear =
                (info != null && info.mPreferKeepClear) || mPreferKeepClearForFocus;
        boolean keepClearForFocus = isFocused()
                && ViewConfiguration.get(mContext).isPreferKeepClearForFocusEnabled();
        boolean keepBoundsClear = (info != null && info.mPreferKeepClear) || keepClearForFocus;
        boolean hasCustomKeepClearRects = info != null && info.mKeepClearRects != null;
        if (!keepBoundsClear && !hasCustomKeepClearRects) {
@@ -11985,33 +11983,12 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
    }
    private void updatePreferKeepClearForFocus() {
        if (mMarkPreferKeepClearForFocus != null) {
            removeCallbacks(mMarkPreferKeepClearForFocus);
            mMarkPreferKeepClearForFocus = null;
        }
        final ViewConfiguration configuration = ViewConfiguration.get(mContext);
        final int delay = configuration.getPreferKeepClearForFocusDelay();
        if (delay >= 0) {
            mMarkPreferKeepClearForFocus = () -> {
                mPreferKeepClearForFocus = isFocused();
                mMarkPreferKeepClearForFocus = null;
        if (ViewConfiguration.get(mContext).isPreferKeepClearForFocusEnabled()) {
            updatePositionUpdateListener();
            post(this::updateKeepClearRects);
            };
            postDelayed(mMarkPreferKeepClearForFocus, delay);
        }
    }
    private void cancelMarkPreferKeepClearForFocus() {
        if (mMarkPreferKeepClearForFocus != null) {
            removeCallbacks(mMarkPreferKeepClearForFocus);
            mMarkPreferKeepClearForFocus = null;
        }
        mPreferKeepClearForFocus = false;
    }
    /**
     * Retrieve the list of unrestricted areas within this view's post-layout coordinate space
     * which the system will try to not cover with other floating elements, like the pip window.
@@ -13754,7 +13731,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
            }
            invalidate();
            sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED);
            updatePreferKeepClearForFocus();
            return true;
        }
        return false;
@@ -21154,7 +21130,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
        removePerformClickCallback();
        clearAccessibilityThrottles();
        stopNestedScroll();
        cancelMarkPreferKeepClearForFocus();
        // Anything that started animating right before detach should already
        // be in its final state when re-attached.
+8 −8
Original line number Diff line number Diff line
@@ -347,7 +347,7 @@ public class ViewConfiguration {
    private final long mScreenshotChordKeyTimeout;
    private final int mSmartSelectionInitializedTimeout;
    private final int mSmartSelectionInitializingTimeout;
    private final int mPreferKeepClearForFocusDelay;
    private final boolean mPreferKeepClearForFocusEnabled;

    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 123768915)
    private boolean sHasPermanentMenuKey;
@@ -393,7 +393,7 @@ public class ViewConfiguration {
        mMinScalingSpan = 0;
        mSmartSelectionInitializedTimeout = SMART_SELECTION_INITIALIZED_TIMEOUT_IN_MILLISECOND;
        mSmartSelectionInitializingTimeout = SMART_SELECTION_INITIALIZING_TIMEOUT_IN_MILLISECOND;
        mPreferKeepClearForFocusDelay = -1;
        mPreferKeepClearForFocusEnabled = false;
    }

    /**
@@ -508,8 +508,8 @@ public class ViewConfiguration {
                com.android.internal.R.integer.config_smartSelectionInitializedTimeoutMillis);
        mSmartSelectionInitializingTimeout = res.getInteger(
                com.android.internal.R.integer.config_smartSelectionInitializingTimeoutMillis);
        mPreferKeepClearForFocusDelay = res.getInteger(
                com.android.internal.R.integer.config_preferKeepClearForFocusDelayMillis);
        mPreferKeepClearForFocusEnabled = res.getBoolean(
                com.android.internal.R.bool.config_preferKeepClearForFocus);
    }

    /**
@@ -1100,13 +1100,13 @@ public class ViewConfiguration {
    }

    /**
     * @return The delay in milliseconds before focused Views set themselves as preferred to keep
     *         clear, or -1 if Views should not set themselves as preferred to keep clear.
     * @return {@code true} if Views should set themselves as preferred to keep clear when focused,
     * {@code false} otherwise.
     * @hide
     */
    @TestApi
    public int getPreferKeepClearForFocusDelay() {
        return mPreferKeepClearForFocusDelay;
    public boolean isPreferKeepClearForFocusEnabled() {
        return mPreferKeepClearForFocusEnabled;
    }

    /**
+2 −3
Original line number Diff line number Diff line
@@ -5184,9 +5184,8 @@
         when TextClassifier has not been initialized. -->
    <integer name="config_smartSelectionInitializingTimeoutMillis">500</integer>

    <!-- The delay in milliseconds before focused Views set themselves as preferred to keep clear.
         Set to -1 if Views should not set themselves as preferred to keep clear. -->
    <integer name="config_preferKeepClearForFocusDelayMillis">-1</integer>
    <!-- If true, Views will declare they prefer to be kept clear from overlays when focused. -->
    <bool name="config_preferKeepClearForFocus">false</bool>

    <!-- Indicates that default fitness tracker app needs to request sensor and location permissions. -->
    <bool name="config_trackerAppNeedsPermissions">false</bool>
+1 −1
Original line number Diff line number Diff line
@@ -480,7 +480,7 @@
  <java-symbol type="bool" name="config_useAssistantVolume" />
  <java-symbol type="integer" name="config_smartSelectionInitializedTimeoutMillis" />
  <java-symbol type="integer" name="config_smartSelectionInitializingTimeoutMillis" />
  <java-symbol type="integer" name="config_preferKeepClearForFocusDelayMillis" />
  <java-symbol type="bool" name="config_preferKeepClearForFocus" />
  <java-symbol type="bool" name="config_hibernationDeletesOatArtifactsEnabled"/>
  <java-symbol type="integer" name="config_defaultAnalogClockSecondsHandFps"/>