Loading quickstep/src/com/android/quickstep/QuickstepTestInformationHandler.java +0 −7 Original line number Diff line number Diff line Loading @@ -79,13 +79,6 @@ public class QuickstepTestInformationHandler extends TestInformationHandler { return response; } case TestProtocol.REQUEST_GET_OVERVIEW_TASK_BORDER_WIDTH: { Resources res = mContext.getResources(); response.putInt(TestProtocol.TEST_INFO_RESPONSE_FIELD, res.getDimensionPixelSize(R.dimen.keyboard_quick_switch_border_width)); return response; } case TestProtocol.REQUEST_HAS_TIS: { response.putBoolean(TestProtocol.TEST_INFO_RESPONSE_FIELD, true); return response; Loading quickstep/src/com/android/quickstep/util/BorderAnimator.java +0 −7 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.view.animation.Interpolator; import androidx.annotation.NonNull; import androidx.annotation.Px; import androidx.annotation.VisibleForTesting; import com.android.app.animation.Interpolators; import com.android.launcher3.anim.AnimatedFloat; Loading Loading @@ -176,12 +175,6 @@ public final class BorderAnimator { } } @NonNull @VisibleForTesting public AnimatedFloat getBorderAnimationProgress() { return mBorderAnimationProgress; } /** * Callback to update the border bounds when building this animation. */ Loading quickstep/src/com/android/quickstep/views/TaskView.java +20 −96 Original line number Diff line number Diff line Loading @@ -71,7 +71,6 @@ import android.widget.Toast; import androidx.annotation.IntDef; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import com.android.app.animation.Interpolators; import com.android.launcher3.DeviceProfile; Loading Loading @@ -414,11 +413,7 @@ public class TaskView extends FrameLayout implements Reusable { private boolean mIsClickableAsLiveTile = true; @Nullable private BorderAnimator mBorderAnimator; private final boolean mCursorHoverStatesEnabled; private final boolean mKeyboardFocusHighlightEnabled; @Nullable private final BorderAnimator mBorderAnimator; public TaskView(Context context) { this(context, null); Loading @@ -441,19 +436,17 @@ public class TaskView extends FrameLayout implements Reusable { mCurrentFullscreenParams = new FullscreenDrawParams(context); mDigitalWellBeingToast = new DigitalWellBeingToast(mActivity, this); mKeyboardFocusHighlightEnabled = FeatureFlags.ENABLE_KEYBOARD_QUICK_SWITCH.get() boolean keyboardFocusHighlightEnabled = FeatureFlags.ENABLE_KEYBOARD_QUICK_SWITCH.get() || DesktopTaskView.DESKTOP_MODE_SUPPORTED; mCursorHoverStatesEnabled = FeatureFlags.ENABLE_CURSOR_HOVER_STATES.get(); if (mCursorHoverStatesEnabled) { setOnHoverListener(this::onHover); } setWillNotDraw(!mKeyboardFocusHighlightEnabled && !mCursorHoverStatesEnabled); setWillNotDraw(!keyboardFocusHighlightEnabled); if (mKeyboardFocusHighlightEnabled || mCursorHoverStatesEnabled) { TypedArray ta = context.obtainStyledAttributes( attrs, R.styleable.TaskView, defStyleAttr, defStyleRes); mBorderAnimator = new BorderAnimator( mBorderAnimator = !keyboardFocusHighlightEnabled ? null : new BorderAnimator( /* borderRadiusPx= */ (int) mCurrentFullscreenParams.mCornerRadius, /* borderColor= */ ta.getColor( R.styleable.TaskView_borderColor, DEFAULT_BORDER_COLOR), Loading @@ -464,7 +457,6 @@ public class TaskView extends FrameLayout implements Reusable { /* targetView= */ this)); ta.recycle(); } } protected void updateBorderBounds(Rect bounds) { bounds.set(mSnapshotView.getLeft() + Math.round(mSnapshotView.getTranslationX()), Loading Loading @@ -506,12 +498,6 @@ public class TaskView extends FrameLayout implements Reusable { return stubInfo; } @Nullable @VisibleForTesting public BorderAnimator getBorderAnimator() { return mBorderAnimator; } @Override protected void onFinishInflate() { super.onFinishInflate(); Loading @@ -523,22 +509,11 @@ public class TaskView extends FrameLayout implements Reusable { @Override protected void onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect) { super.onFocusChanged(gainFocus, direction, previouslyFocusedRect); if (mKeyboardFocusHighlightEnabled) { if (mBorderAnimator != null) { mBorderAnimator.buildAnimator(gainFocus).start(); } } @Override public boolean onInterceptHoverEvent(MotionEvent event) { if (mCursorHoverStatesEnabled) { // avoid triggering hover event on child elements which would cause HOVER_EXIT for this // task view return true; } else { return super.onInterceptHoverEvent(event); } } @Override public void draw(Canvas canvas) { super.draw(canvas); Loading Loading @@ -777,57 +752,6 @@ public class TaskView extends FrameLayout implements Reusable { .log(LAUNCHER_TASK_LAUNCH_TAP); } private boolean onHover(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_HOVER_MOVE: if (mKeyboardFocusHighlightEnabled && !isFocused()) { // existing focus is on another task selected by keyboard, // cursor then moves inside this task thumbnail and steals the focus requestFocusAndExitTouchMode(v); } return true; case MotionEvent.ACTION_HOVER_ENTER: if (mKeyboardFocusHighlightEnabled) { if (isFocused()) { // the task is already focused with border, no action is needed return true; } else { requestFocusAndExitTouchMode(v); } } else { // mKeyboardFocusHighlightEnabled is turned off so it only shows hover // state animation but not steals the focus mBorderAnimator.buildAnimator(true).start(); } return true; case MotionEvent.ACTION_HOVER_EXIT: if (mKeyboardFocusHighlightEnabled) { // clearFocus() does not work here because parent element is not focusable // so it changes to touch mode to clear focus v.getViewRootImpl().touchModeChanged(true); } else { // just show the disappearing animation but not change the focus when // mKeyboardFocusHighlightEnabled is off mBorderAnimator.buildAnimator(false).start(); } return true; default: return false; } } private void requestFocusAndExitTouchMode(View v) { if (isInTouchMode()) { // Tasks are not focusable in touch mode by default. As hover state would steal focus // when both mKeyboardFocusHighlightEnabled and mCursorHoverStatesEnabled are on, // touch mode needs to be set to false when hovering so it can steal focus to current // task and show border animation as hover state v.getViewRootImpl().touchModeChanged(false); } requestFocus(); } /** * @return {@code true} if user is already in split select mode and this tap was to choose the * second app. {@code false} otherwise Loading tests/shared/com/android/launcher3/testing/shared/TestProtocol.java +0 −4 Original line number Diff line number Diff line Loading @@ -140,10 +140,6 @@ public final class TestProtocol { public static final String REQUEST_GET_GRID_TASK_SIZE_RECT_FOR_TABLET = "get-grid-task-size-rect-for-tablet"; public static final String REQUEST_GET_OVERVIEW_PAGE_SPACING = "get-overview-page-spacing"; public static final String REQUEST_GET_OVERVIEW_TASK_BORDER_WIDTH = "get-overview-task-border-width"; public static final String REQUEST_ENABLE_ROTATION = "enable_rotation"; public static final String REQUEST_ENABLE_SUGGESTION = "enable-suggestion"; public static final String REQUEST_MODEL_QUEUE_CLEARED = "model-queue-cleared"; Loading tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java +0 −5 Original line number Diff line number Diff line Loading @@ -375,11 +375,6 @@ public final class LauncherInstrumentation { .getBoolean(TestProtocol.TEST_INFO_RESPONSE_FIELD); } public int getOverviewTaskBorderWidth() { return getTestInfo(TestProtocol.REQUEST_GET_OVERVIEW_TASK_BORDER_WIDTH) .getInt(TestProtocol.TEST_INFO_RESPONSE_FIELD); } int getFocusedTaskHeightForTablet() { return getTestInfo(TestProtocol.REQUEST_GET_FOCUSED_TASK_HEIGHT_FOR_TABLET).getInt( TestProtocol.TEST_INFO_RESPONSE_FIELD); Loading Loading
quickstep/src/com/android/quickstep/QuickstepTestInformationHandler.java +0 −7 Original line number Diff line number Diff line Loading @@ -79,13 +79,6 @@ public class QuickstepTestInformationHandler extends TestInformationHandler { return response; } case TestProtocol.REQUEST_GET_OVERVIEW_TASK_BORDER_WIDTH: { Resources res = mContext.getResources(); response.putInt(TestProtocol.TEST_INFO_RESPONSE_FIELD, res.getDimensionPixelSize(R.dimen.keyboard_quick_switch_border_width)); return response; } case TestProtocol.REQUEST_HAS_TIS: { response.putBoolean(TestProtocol.TEST_INFO_RESPONSE_FIELD, true); return response; Loading
quickstep/src/com/android/quickstep/util/BorderAnimator.java +0 −7 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.view.animation.Interpolator; import androidx.annotation.NonNull; import androidx.annotation.Px; import androidx.annotation.VisibleForTesting; import com.android.app.animation.Interpolators; import com.android.launcher3.anim.AnimatedFloat; Loading Loading @@ -176,12 +175,6 @@ public final class BorderAnimator { } } @NonNull @VisibleForTesting public AnimatedFloat getBorderAnimationProgress() { return mBorderAnimationProgress; } /** * Callback to update the border bounds when building this animation. */ Loading
quickstep/src/com/android/quickstep/views/TaskView.java +20 −96 Original line number Diff line number Diff line Loading @@ -71,7 +71,6 @@ import android.widget.Toast; import androidx.annotation.IntDef; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import com.android.app.animation.Interpolators; import com.android.launcher3.DeviceProfile; Loading Loading @@ -414,11 +413,7 @@ public class TaskView extends FrameLayout implements Reusable { private boolean mIsClickableAsLiveTile = true; @Nullable private BorderAnimator mBorderAnimator; private final boolean mCursorHoverStatesEnabled; private final boolean mKeyboardFocusHighlightEnabled; @Nullable private final BorderAnimator mBorderAnimator; public TaskView(Context context) { this(context, null); Loading @@ -441,19 +436,17 @@ public class TaskView extends FrameLayout implements Reusable { mCurrentFullscreenParams = new FullscreenDrawParams(context); mDigitalWellBeingToast = new DigitalWellBeingToast(mActivity, this); mKeyboardFocusHighlightEnabled = FeatureFlags.ENABLE_KEYBOARD_QUICK_SWITCH.get() boolean keyboardFocusHighlightEnabled = FeatureFlags.ENABLE_KEYBOARD_QUICK_SWITCH.get() || DesktopTaskView.DESKTOP_MODE_SUPPORTED; mCursorHoverStatesEnabled = FeatureFlags.ENABLE_CURSOR_HOVER_STATES.get(); if (mCursorHoverStatesEnabled) { setOnHoverListener(this::onHover); } setWillNotDraw(!mKeyboardFocusHighlightEnabled && !mCursorHoverStatesEnabled); setWillNotDraw(!keyboardFocusHighlightEnabled); if (mKeyboardFocusHighlightEnabled || mCursorHoverStatesEnabled) { TypedArray ta = context.obtainStyledAttributes( attrs, R.styleable.TaskView, defStyleAttr, defStyleRes); mBorderAnimator = new BorderAnimator( mBorderAnimator = !keyboardFocusHighlightEnabled ? null : new BorderAnimator( /* borderRadiusPx= */ (int) mCurrentFullscreenParams.mCornerRadius, /* borderColor= */ ta.getColor( R.styleable.TaskView_borderColor, DEFAULT_BORDER_COLOR), Loading @@ -464,7 +457,6 @@ public class TaskView extends FrameLayout implements Reusable { /* targetView= */ this)); ta.recycle(); } } protected void updateBorderBounds(Rect bounds) { bounds.set(mSnapshotView.getLeft() + Math.round(mSnapshotView.getTranslationX()), Loading Loading @@ -506,12 +498,6 @@ public class TaskView extends FrameLayout implements Reusable { return stubInfo; } @Nullable @VisibleForTesting public BorderAnimator getBorderAnimator() { return mBorderAnimator; } @Override protected void onFinishInflate() { super.onFinishInflate(); Loading @@ -523,22 +509,11 @@ public class TaskView extends FrameLayout implements Reusable { @Override protected void onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect) { super.onFocusChanged(gainFocus, direction, previouslyFocusedRect); if (mKeyboardFocusHighlightEnabled) { if (mBorderAnimator != null) { mBorderAnimator.buildAnimator(gainFocus).start(); } } @Override public boolean onInterceptHoverEvent(MotionEvent event) { if (mCursorHoverStatesEnabled) { // avoid triggering hover event on child elements which would cause HOVER_EXIT for this // task view return true; } else { return super.onInterceptHoverEvent(event); } } @Override public void draw(Canvas canvas) { super.draw(canvas); Loading Loading @@ -777,57 +752,6 @@ public class TaskView extends FrameLayout implements Reusable { .log(LAUNCHER_TASK_LAUNCH_TAP); } private boolean onHover(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_HOVER_MOVE: if (mKeyboardFocusHighlightEnabled && !isFocused()) { // existing focus is on another task selected by keyboard, // cursor then moves inside this task thumbnail and steals the focus requestFocusAndExitTouchMode(v); } return true; case MotionEvent.ACTION_HOVER_ENTER: if (mKeyboardFocusHighlightEnabled) { if (isFocused()) { // the task is already focused with border, no action is needed return true; } else { requestFocusAndExitTouchMode(v); } } else { // mKeyboardFocusHighlightEnabled is turned off so it only shows hover // state animation but not steals the focus mBorderAnimator.buildAnimator(true).start(); } return true; case MotionEvent.ACTION_HOVER_EXIT: if (mKeyboardFocusHighlightEnabled) { // clearFocus() does not work here because parent element is not focusable // so it changes to touch mode to clear focus v.getViewRootImpl().touchModeChanged(true); } else { // just show the disappearing animation but not change the focus when // mKeyboardFocusHighlightEnabled is off mBorderAnimator.buildAnimator(false).start(); } return true; default: return false; } } private void requestFocusAndExitTouchMode(View v) { if (isInTouchMode()) { // Tasks are not focusable in touch mode by default. As hover state would steal focus // when both mKeyboardFocusHighlightEnabled and mCursorHoverStatesEnabled are on, // touch mode needs to be set to false when hovering so it can steal focus to current // task and show border animation as hover state v.getViewRootImpl().touchModeChanged(false); } requestFocus(); } /** * @return {@code true} if user is already in split select mode and this tap was to choose the * second app. {@code false} otherwise Loading
tests/shared/com/android/launcher3/testing/shared/TestProtocol.java +0 −4 Original line number Diff line number Diff line Loading @@ -140,10 +140,6 @@ public final class TestProtocol { public static final String REQUEST_GET_GRID_TASK_SIZE_RECT_FOR_TABLET = "get-grid-task-size-rect-for-tablet"; public static final String REQUEST_GET_OVERVIEW_PAGE_SPACING = "get-overview-page-spacing"; public static final String REQUEST_GET_OVERVIEW_TASK_BORDER_WIDTH = "get-overview-task-border-width"; public static final String REQUEST_ENABLE_ROTATION = "enable_rotation"; public static final String REQUEST_ENABLE_SUGGESTION = "enable-suggestion"; public static final String REQUEST_MODEL_QUEUE_CLEARED = "model-queue-cleared"; Loading
tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java +0 −5 Original line number Diff line number Diff line Loading @@ -375,11 +375,6 @@ public final class LauncherInstrumentation { .getBoolean(TestProtocol.TEST_INFO_RESPONSE_FIELD); } public int getOverviewTaskBorderWidth() { return getTestInfo(TestProtocol.REQUEST_GET_OVERVIEW_TASK_BORDER_WIDTH) .getInt(TestProtocol.TEST_INFO_RESPONSE_FIELD); } int getFocusedTaskHeightForTablet() { return getTestInfo(TestProtocol.REQUEST_GET_FOCUSED_TASK_HEIGHT_FOR_TABLET).getInt( TestProtocol.TEST_INFO_RESPONSE_FIELD); Loading