Loading core/res/res/layout/accessibility_autoclick_type_panel.xml +49 −97 Original line number Diff line number Diff line Loading @@ -43,83 +43,47 @@ android:background="@drawable/accessibility_autoclick_button_group_rounded_background" android:orientation="horizontal"> <LinearLayout android:id="@+id/accessibility_autoclick_long_press_layout" style="@style/AccessibilityAutoclickPanelButtonLayoutStyle" android:tooltipText="@string/accessibility_autoclick_long_press" > <ImageButton android:id="@+id/accessibility_autoclick_long_press_button" android:src="@drawable/accessibility_autoclick_long_press" style="@style/AccessibilityAutoclickPanelImageButtonStyle" android:contentDescription="@string/accessibility_autoclick_long_press" android:src="@drawable/accessibility_autoclick_long_press" android:clickable="false" /> </LinearLayout> <LinearLayout android:id="@+id/accessibility_autoclick_drag_layout" style="@style/AccessibilityAutoclickPanelButtonLayoutStyle" android:tooltipText="@string/accessibility_autoclick_drag" > android:tooltipText="@string/accessibility_autoclick_long_press" /> <ImageButton android:id="@+id/accessibility_autoclick_drag_button" android:src="@drawable/accessibility_autoclick_drag" style="@style/AccessibilityAutoclickPanelImageButtonStyle" android:contentDescription="@string/accessibility_autoclick_drag" android:src="@drawable/accessibility_autoclick_drag" android:clickable="false"/> </LinearLayout> <LinearLayout android:id="@+id/accessibility_autoclick_double_click_layout" style="@style/AccessibilityAutoclickPanelButtonLayoutStyle" android:tooltipText="@string/accessibility_autoclick_double_click" > android:tooltipText="@string/accessibility_autoclick_drag" /> <ImageButton android:id="@+id/accessibility_autoclick_double_click_button" android:src="@drawable/accessibility_autoclick_double_click" style="@style/AccessibilityAutoclickPanelImageButtonStyle" android:contentDescription="@string/accessibility_autoclick_double_click" android:src="@drawable/accessibility_autoclick_double_click" android:clickable="false"/> </LinearLayout> <LinearLayout android:id="@+id/accessibility_autoclick_right_click_layout" style="@style/AccessibilityAutoclickPanelButtonLayoutStyle" android:tooltipText="@string/accessibility_autoclick_right_click" > android:tooltipText="@string/accessibility_autoclick_double_click" /> <ImageButton android:id="@+id/accessibility_autoclick_right_click_button" android:src="@drawable/accessibility_autoclick_right_click" style="@style/AccessibilityAutoclickPanelImageButtonStyle" android:contentDescription="@string/accessibility_autoclick_right_click" android:src="@drawable/accessibility_autoclick_right_click" android:clickable="false"/> </LinearLayout> <LinearLayout android:id="@+id/accessibility_autoclick_scroll_layout" style="@style/AccessibilityAutoclickPanelButtonLayoutStyle" android:tooltipText="@string/accessibility_autoclick_scroll" > android:tooltipText="@string/accessibility_autoclick_right_click" /> <ImageButton android:id="@+id/accessibility_autoclick_scroll_button" android:src="@drawable/accessibility_autoclick_scroll" style="@style/AccessibilityAutoclickPanelImageButtonStyle" android:contentDescription="@string/accessibility_autoclick_scroll" android:src="@drawable/accessibility_autoclick_scroll" android:clickable="false"/> </LinearLayout> <LinearLayout android:id="@+id/accessibility_autoclick_left_click_layout" style="@style/AccessibilityAutoclickPanelButtonLayoutStyle" android:tooltipText="@string/accessibility_autoclick_left_click" > android:tooltipText="@string/accessibility_autoclick_scroll" /> <ImageButton android:id="@+id/accessibility_autoclick_left_click_button" android:src="@drawable/accessibility_autoclick_left_click" style="@style/AccessibilityAutoclickPanelImageButtonStyle" android:contentDescription="@string/accessibility_autoclick_left_click" android:src="@drawable/accessibility_autoclick_left_click" android:clickable="false"/> </LinearLayout> android:tooltipText="@string/accessibility_autoclick_left_click" /> </LinearLayout> Loading @@ -130,32 +94,20 @@ android:layout_marginEnd="@dimen/accessibility_autoclick_type_panel_button_spacing" android:background="@color/materialColorSurfaceContainer" /> <LinearLayout android:id="@+id/accessibility_autoclick_pause_layout" style="@style/AccessibilityAutoclickPanelButtonLayoutStyle" android:layout_marginEnd="@dimen/accessibility_autoclick_type_panel_button_spacing" android:tooltipText="@string/accessibility_autoclick_pause" > <ImageButton android:id="@+id/accessibility_autoclick_pause_button" android:src="@drawable/accessibility_autoclick_pause" style="@style/AccessibilityAutoclickPanelImageButtonStyle" android:layout_marginEnd="@dimen/accessibility_autoclick_type_panel_button_spacing" android:contentDescription="@string/accessibility_autoclick_pause" android:src="@drawable/accessibility_autoclick_pause" android:clickable="false"/> </LinearLayout> <LinearLayout android:id="@+id/accessibility_autoclick_position_layout" style="@style/AccessibilityAutoclickPanelButtonLayoutStyle" android:tooltipText="@string/accessibility_autoclick_position" > android:tooltipText="@string/accessibility_autoclick_pause" /> <ImageButton android:id="@+id/accessibility_autoclick_position_button" android:src="@drawable/accessibility_autoclick_position" style="@style/AccessibilityAutoclickPanelImageButtonStyle" android:contentDescription="@string/accessibility_autoclick_position" android:src="@drawable/accessibility_autoclick_position" android:clickable="false"/> </LinearLayout> android:tooltipText="@string/accessibility_autoclick_position" /> </LinearLayout> Loading core/res/res/values/styles.xml +7 −10 Original line number Diff line number Diff line Loading @@ -1752,19 +1752,16 @@ please see styles_device_defaults.xml. <item name="android:windowOptOutEdgeToEdgeEnforcement">true</item> </style> <style name="AccessibilityAutoclickPanelButtonLayoutStyle"> <item name="android:gravity">center</item> <item name="android:background">@drawable/accessibility_autoclick_button_rounded_background</item> <item name="android:layout_width">@dimen/accessibility_autoclick_type_panel_button_size</item> <item name="android:layout_height">@dimen/accessibility_autoclick_type_panel_button_size</item> </style> <style name="AccessibilityAutoclickPanelImageButtonStyle"> <item name="android:gravity">center</item> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> <item name="android:background"> @drawable/accessibility_autoclick_button_rounded_background </item> <item name="android:layout_width">@dimen/accessibility_autoclick_type_panel_button_size </item> <item name="android:layout_height">@dimen/accessibility_autoclick_type_panel_button_size </item> <item name="android:scaleType">center</item> <item name="android:background">@android:color/transparent</item> <item name="android:tint">@color/accessibility_autoclick_type_button_color</item> </style> Loading core/res/res/values/symbols.xml +0 −8 Original line number Diff line number Diff line Loading @@ -5906,21 +5906,13 @@ <java-symbol type="id" name="accessibility_autoclick_type_panel" /> <java-symbol type="id" name="accessibility_autoclick_button_group_container" /> <java-symbol type="id" name="accessibility_autoclick_click_type_button_group_container" /> <java-symbol type="id" name="accessibility_autoclick_left_click_layout" /> <java-symbol type="id" name="accessibility_autoclick_left_click_button" /> <java-symbol type="id" name="accessibility_autoclick_right_click_layout" /> <java-symbol type="id" name="accessibility_autoclick_right_click_button" /> <java-symbol type="id" name="accessibility_autoclick_double_click_layout" /> <java-symbol type="id" name="accessibility_autoclick_double_click_button" /> <java-symbol type="id" name="accessibility_autoclick_drag_layout" /> <java-symbol type="id" name="accessibility_autoclick_drag_button" /> <java-symbol type="id" name="accessibility_autoclick_scroll_layout" /> <java-symbol type="id" name="accessibility_autoclick_scroll_button" /> <java-symbol type="id" name="accessibility_autoclick_long_press_layout" /> <java-symbol type="id" name="accessibility_autoclick_long_press_button" /> <java-symbol type="id" name="accessibility_autoclick_pause_layout" /> <java-symbol type="id" name="accessibility_autoclick_pause_button" /> <java-symbol type="id" name="accessibility_autoclick_position_layout" /> <java-symbol type="id" name="accessibility_autoclick_position_button" /> <java-symbol type="drawable" name="accessibility_autoclick_pause" /> <java-symbol type="drawable" name="accessibility_autoclick_resume" /> Loading services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickTypePanel.java +32 −34 Original line number Diff line number Diff line Loading @@ -160,16 +160,16 @@ public class AutoclickTypePanel { // The current corner position of the panel, default to bottom right. private @Corner int mCurrentCorner = CORNER_BOTTOM_RIGHT; private LinearLayout mLeftClickButton; private LinearLayout mRightClickButton; private LinearLayout mDoubleClickButton; private LinearLayout mDragButton; private LinearLayout mScrollButton; private LinearLayout mPauseButton; private LinearLayout mPositionButton; private LinearLayout mLongPressButton; private LinearLayout mSelectedButton; private ImageButton mLeftClickButton; private ImageButton mRightClickButton; private ImageButton mDoubleClickButton; private ImageButton mDragButton; private ImageButton mScrollButton; private ImageButton mPauseButton; private ImageButton mPositionButton; private ImageButton mLongPressButton; private ImageButton mSelectedButton; private int mSelectedClickType = AUTOCLICK_TYPE_LEFT_CLICK; private Drawable mPauseButtonDrawable; Loading Loading @@ -214,17 +214,17 @@ public class AutoclickTypePanel { .inflate(R.layout.accessibility_autoclick_type_panel, null); mContentView.setOnHoverChangedListener(mClickPanelController::onHoverChange); mLeftClickButton = mContentView.findViewById(R.id.accessibility_autoclick_left_click_layout); mContentView.findViewById(R.id.accessibility_autoclick_left_click_button); mRightClickButton = mContentView.findViewById(R.id.accessibility_autoclick_right_click_layout); mContentView.findViewById(R.id.accessibility_autoclick_right_click_button); mDoubleClickButton = mContentView.findViewById(R.id.accessibility_autoclick_double_click_layout); mScrollButton = mContentView.findViewById(R.id.accessibility_autoclick_scroll_layout); mDragButton = mContentView.findViewById(R.id.accessibility_autoclick_drag_layout); mPauseButton = mContentView.findViewById(R.id.accessibility_autoclick_pause_layout); mPositionButton = mContentView.findViewById(R.id.accessibility_autoclick_position_layout); mContentView.findViewById(R.id.accessibility_autoclick_double_click_button); mScrollButton = mContentView.findViewById(R.id.accessibility_autoclick_scroll_button); mDragButton = mContentView.findViewById(R.id.accessibility_autoclick_drag_button); mPauseButton = mContentView.findViewById(R.id.accessibility_autoclick_pause_button); mPositionButton = mContentView.findViewById(R.id.accessibility_autoclick_position_button); mLongPressButton = mContentView.findViewById(R.id.accessibility_autoclick_long_press_layout); mContentView.findViewById(R.id.accessibility_autoclick_long_press_button); // Get status bar height. mStatusBarHeight = SystemBarUtils.getStatusBarHeight(mContext); Loading Loading @@ -360,7 +360,7 @@ public class AutoclickTypePanel { /** Reset panel as collapsed state and only displays selected button. */ public void collapsePanelWithClickType(@AutoclickType int clickType) { hideAllClickTypeButtons(); final LinearLayout selectedButton = getButtonFromClickType(clickType); final ImageButton selectedButton = getButtonFromClickType(clickType); selectedButton.setVisibility(View.VISIBLE); // Sets the newly selected button. Loading @@ -374,7 +374,7 @@ public class AutoclickTypePanel { /** Sets the selected button and updates the newly and previously selected button styling. */ private void setSelectedClickType(@AutoclickType int clickType) { final LinearLayout selectedButton = getButtonFromClickType(clickType); final ImageButton selectedButton = getButtonFromClickType(clickType); // Updates the previously selected button styling. if (mSelectedButton != null) { Loading @@ -389,7 +389,7 @@ public class AutoclickTypePanel { toggleSelectedButtonStyle(selectedButton, /* isSelected= */ true); } private void toggleSelectedButtonStyle(@NonNull LinearLayout button, boolean isSelected) { private void toggleSelectedButtonStyle(@NonNull ImageButton button, boolean isSelected) { button.setSelected(isSelected); } Loading Loading @@ -500,17 +500,16 @@ public class AutoclickTypePanel { * without changing the state itself. */ private void updatePauseButtonAppearance() { ImageButton imageButton = (ImageButton) mPauseButton.getChildAt(0); if (mPaused) { String resumeText = mContext.getString(R.string.accessibility_autoclick_resume); mPauseButton.setTooltipText(resumeText); imageButton.setContentDescription(resumeText); imageButton.setImageDrawable(mResumeButtonDrawable); mPauseButton.setContentDescription(resumeText); mPauseButton.setImageDrawable(mResumeButtonDrawable); } else { String pauseText = mContext.getString(R.string.accessibility_autoclick_pause); mPauseButton.setTooltipText(pauseText); imageButton.setContentDescription(pauseText); imageButton.setImageDrawable(mPauseButtonDrawable); mPauseButton.setContentDescription(pauseText); mPauseButton.setImageDrawable(mPauseButtonDrawable); } } Loading @@ -535,11 +534,11 @@ public class AutoclickTypePanel { } /** * Retrieves the LinearLayout corresponding to the given autoclick type. * Retrieves the ImageButton corresponding to the given autoclick type. * @param clickType The autoclick type. * @return The LinearLayout for the specified click type. * @return The ImageButton for the specified click type. */ private LinearLayout getButtonFromClickType(@AutoclickType int clickType) { private ImageButton getButtonFromClickType(@AutoclickType int clickType) { return switch (clickType) { case AUTOCLICK_TYPE_LEFT_CLICK -> mLeftClickButton; case AUTOCLICK_TYPE_RIGHT_CLICK -> mRightClickButton; Loading Loading @@ -699,20 +698,19 @@ public class AutoclickTypePanel { * @param corner The corner to set the icon for. */ private void updatePositionButtonIcon(@Corner int corner) { ImageButton imageButton = (ImageButton) mPositionButton.getChildAt(/* index= */ 0); switch (corner) { case CORNER_TOP_LEFT: imageButton.setImageDrawable(mPositionTopLeftDrawable); mPositionButton.setImageDrawable(mPositionTopLeftDrawable); break; case CORNER_TOP_RIGHT: imageButton.setImageDrawable(mPositionTopRightDrawable); mPositionButton.setImageDrawable(mPositionTopRightDrawable); break; case CORNER_BOTTOM_LEFT: imageButton.setImageDrawable(mPositionBottomLeftDrawable); mPositionButton.setImageDrawable(mPositionBottomLeftDrawable); break; case CORNER_BOTTOM_RIGHT: default: imageButton.setImageDrawable(mPositionBottomRightDrawable); mPositionButton.setImageDrawable(mPositionBottomRightDrawable); break; } } Loading services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickTypePanelTest.java +19 −21 Original line number Diff line number Diff line Loading @@ -45,7 +45,6 @@ import android.view.PointerIcon; import android.view.View; import android.view.WindowManager; import android.widget.ImageButton; import android.widget.LinearLayout; import androidx.annotation.NonNull; Loading @@ -72,14 +71,14 @@ public class AutoclickTypePanelTest { private AutoclickTypePanel mAutoclickTypePanel; @Mock private WindowManager mMockWindowManager; private LinearLayout mLeftClickButton; private LinearLayout mRightClickButton; private LinearLayout mDoubleClickButton; private LinearLayout mDragButton; private LinearLayout mScrollButton; private LinearLayout mPauseButton; private LinearLayout mPositionButton; private LinearLayout mLongPressButton; private ImageButton mLeftClickButton; private ImageButton mRightClickButton; private ImageButton mDoubleClickButton; private ImageButton mDragButton; private ImageButton mScrollButton; private ImageButton mPauseButton; private ImageButton mPositionButton; private ImageButton mLongPressButton; private @AutoclickType int mActiveClickType = AUTOCLICK_TYPE_LEFT_CLICK; private boolean mPaused; Loading Loading @@ -111,16 +110,16 @@ public class AutoclickTypePanelTest { new AutoclickTypePanel(mTestableContext, mMockWindowManager, mTestableContext.getUserId(), clickPanelController); View contentView = mAutoclickTypePanel.getContentViewForTesting(); mLeftClickButton = contentView.findViewById(R.id.accessibility_autoclick_left_click_layout); mLeftClickButton = contentView.findViewById(R.id.accessibility_autoclick_left_click_button); mRightClickButton = contentView.findViewById(R.id.accessibility_autoclick_right_click_layout); contentView.findViewById(R.id.accessibility_autoclick_right_click_button); mDoubleClickButton = contentView.findViewById(R.id.accessibility_autoclick_double_click_layout); mScrollButton = contentView.findViewById(R.id.accessibility_autoclick_scroll_layout); mDragButton = contentView.findViewById(R.id.accessibility_autoclick_drag_layout); mPauseButton = contentView.findViewById(R.id.accessibility_autoclick_pause_layout); mPositionButton = contentView.findViewById(R.id.accessibility_autoclick_position_layout); mLongPressButton = contentView.findViewById(R.id.accessibility_autoclick_long_press_layout); contentView.findViewById(R.id.accessibility_autoclick_double_click_button); mScrollButton = contentView.findViewById(R.id.accessibility_autoclick_scroll_button); mDragButton = contentView.findViewById(R.id.accessibility_autoclick_drag_button); mPauseButton = contentView.findViewById(R.id.accessibility_autoclick_pause_button); mPositionButton = contentView.findViewById(R.id.accessibility_autoclick_position_button); mLongPressButton = contentView.findViewById(R.id.accessibility_autoclick_long_press_button); // Set panel to default bottom-right corner. mAutoclickTypePanel.show(); Loading Loading @@ -311,18 +310,17 @@ public class AutoclickTypePanelTest { .accessibility_autoclick_resume); String pauseText = mTestableContext.getString(R.string .accessibility_autoclick_pause); ImageButton imageButton = (ImageButton) mPauseButton.getChildAt(/* index= */ 0); mPauseButton.callOnClick(); assertThat(mPaused).isTrue(); assertThat(mAutoclickTypePanel.isPaused()).isTrue(); assertThat(imageButton.getContentDescription().toString()).isEqualTo(resumeText); assertThat(mPauseButton.getContentDescription().toString()).isEqualTo(resumeText); assertThat(mPauseButton.getTooltipText().toString()).isEqualTo(resumeText); mPauseButton.callOnClick(); assertThat(mPaused).isFalse(); assertThat(mAutoclickTypePanel.isPaused()).isFalse(); assertThat(imageButton.getContentDescription().toString()).isEqualTo(pauseText); assertThat(mPauseButton.getContentDescription().toString()).isEqualTo(pauseText); assertThat(mPauseButton.getTooltipText().toString()).isEqualTo(pauseText); } Loading Loading @@ -595,7 +593,7 @@ public class AutoclickTypePanelTest { assertThat(afterDragCursor.getType()).isEqualTo(PointerIcon.TYPE_GRAB); } private void verifyButtonHasSelectedStyle(@NonNull LinearLayout button) { private void verifyButtonHasSelectedStyle(@NonNull ImageButton button) { GradientDrawable gradientDrawable = (GradientDrawable) button.getBackground(); // Get the ColorStateList from the background. ColorStateList colorStateList = gradientDrawable.getColor(); Loading Loading
core/res/res/layout/accessibility_autoclick_type_panel.xml +49 −97 Original line number Diff line number Diff line Loading @@ -43,83 +43,47 @@ android:background="@drawable/accessibility_autoclick_button_group_rounded_background" android:orientation="horizontal"> <LinearLayout android:id="@+id/accessibility_autoclick_long_press_layout" style="@style/AccessibilityAutoclickPanelButtonLayoutStyle" android:tooltipText="@string/accessibility_autoclick_long_press" > <ImageButton android:id="@+id/accessibility_autoclick_long_press_button" android:src="@drawable/accessibility_autoclick_long_press" style="@style/AccessibilityAutoclickPanelImageButtonStyle" android:contentDescription="@string/accessibility_autoclick_long_press" android:src="@drawable/accessibility_autoclick_long_press" android:clickable="false" /> </LinearLayout> <LinearLayout android:id="@+id/accessibility_autoclick_drag_layout" style="@style/AccessibilityAutoclickPanelButtonLayoutStyle" android:tooltipText="@string/accessibility_autoclick_drag" > android:tooltipText="@string/accessibility_autoclick_long_press" /> <ImageButton android:id="@+id/accessibility_autoclick_drag_button" android:src="@drawable/accessibility_autoclick_drag" style="@style/AccessibilityAutoclickPanelImageButtonStyle" android:contentDescription="@string/accessibility_autoclick_drag" android:src="@drawable/accessibility_autoclick_drag" android:clickable="false"/> </LinearLayout> <LinearLayout android:id="@+id/accessibility_autoclick_double_click_layout" style="@style/AccessibilityAutoclickPanelButtonLayoutStyle" android:tooltipText="@string/accessibility_autoclick_double_click" > android:tooltipText="@string/accessibility_autoclick_drag" /> <ImageButton android:id="@+id/accessibility_autoclick_double_click_button" android:src="@drawable/accessibility_autoclick_double_click" style="@style/AccessibilityAutoclickPanelImageButtonStyle" android:contentDescription="@string/accessibility_autoclick_double_click" android:src="@drawable/accessibility_autoclick_double_click" android:clickable="false"/> </LinearLayout> <LinearLayout android:id="@+id/accessibility_autoclick_right_click_layout" style="@style/AccessibilityAutoclickPanelButtonLayoutStyle" android:tooltipText="@string/accessibility_autoclick_right_click" > android:tooltipText="@string/accessibility_autoclick_double_click" /> <ImageButton android:id="@+id/accessibility_autoclick_right_click_button" android:src="@drawable/accessibility_autoclick_right_click" style="@style/AccessibilityAutoclickPanelImageButtonStyle" android:contentDescription="@string/accessibility_autoclick_right_click" android:src="@drawable/accessibility_autoclick_right_click" android:clickable="false"/> </LinearLayout> <LinearLayout android:id="@+id/accessibility_autoclick_scroll_layout" style="@style/AccessibilityAutoclickPanelButtonLayoutStyle" android:tooltipText="@string/accessibility_autoclick_scroll" > android:tooltipText="@string/accessibility_autoclick_right_click" /> <ImageButton android:id="@+id/accessibility_autoclick_scroll_button" android:src="@drawable/accessibility_autoclick_scroll" style="@style/AccessibilityAutoclickPanelImageButtonStyle" android:contentDescription="@string/accessibility_autoclick_scroll" android:src="@drawable/accessibility_autoclick_scroll" android:clickable="false"/> </LinearLayout> <LinearLayout android:id="@+id/accessibility_autoclick_left_click_layout" style="@style/AccessibilityAutoclickPanelButtonLayoutStyle" android:tooltipText="@string/accessibility_autoclick_left_click" > android:tooltipText="@string/accessibility_autoclick_scroll" /> <ImageButton android:id="@+id/accessibility_autoclick_left_click_button" android:src="@drawable/accessibility_autoclick_left_click" style="@style/AccessibilityAutoclickPanelImageButtonStyle" android:contentDescription="@string/accessibility_autoclick_left_click" android:src="@drawable/accessibility_autoclick_left_click" android:clickable="false"/> </LinearLayout> android:tooltipText="@string/accessibility_autoclick_left_click" /> </LinearLayout> Loading @@ -130,32 +94,20 @@ android:layout_marginEnd="@dimen/accessibility_autoclick_type_panel_button_spacing" android:background="@color/materialColorSurfaceContainer" /> <LinearLayout android:id="@+id/accessibility_autoclick_pause_layout" style="@style/AccessibilityAutoclickPanelButtonLayoutStyle" android:layout_marginEnd="@dimen/accessibility_autoclick_type_panel_button_spacing" android:tooltipText="@string/accessibility_autoclick_pause" > <ImageButton android:id="@+id/accessibility_autoclick_pause_button" android:src="@drawable/accessibility_autoclick_pause" style="@style/AccessibilityAutoclickPanelImageButtonStyle" android:layout_marginEnd="@dimen/accessibility_autoclick_type_panel_button_spacing" android:contentDescription="@string/accessibility_autoclick_pause" android:src="@drawable/accessibility_autoclick_pause" android:clickable="false"/> </LinearLayout> <LinearLayout android:id="@+id/accessibility_autoclick_position_layout" style="@style/AccessibilityAutoclickPanelButtonLayoutStyle" android:tooltipText="@string/accessibility_autoclick_position" > android:tooltipText="@string/accessibility_autoclick_pause" /> <ImageButton android:id="@+id/accessibility_autoclick_position_button" android:src="@drawable/accessibility_autoclick_position" style="@style/AccessibilityAutoclickPanelImageButtonStyle" android:contentDescription="@string/accessibility_autoclick_position" android:src="@drawable/accessibility_autoclick_position" android:clickable="false"/> </LinearLayout> android:tooltipText="@string/accessibility_autoclick_position" /> </LinearLayout> Loading
core/res/res/values/styles.xml +7 −10 Original line number Diff line number Diff line Loading @@ -1752,19 +1752,16 @@ please see styles_device_defaults.xml. <item name="android:windowOptOutEdgeToEdgeEnforcement">true</item> </style> <style name="AccessibilityAutoclickPanelButtonLayoutStyle"> <item name="android:gravity">center</item> <item name="android:background">@drawable/accessibility_autoclick_button_rounded_background</item> <item name="android:layout_width">@dimen/accessibility_autoclick_type_panel_button_size</item> <item name="android:layout_height">@dimen/accessibility_autoclick_type_panel_button_size</item> </style> <style name="AccessibilityAutoclickPanelImageButtonStyle"> <item name="android:gravity">center</item> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> <item name="android:background"> @drawable/accessibility_autoclick_button_rounded_background </item> <item name="android:layout_width">@dimen/accessibility_autoclick_type_panel_button_size </item> <item name="android:layout_height">@dimen/accessibility_autoclick_type_panel_button_size </item> <item name="android:scaleType">center</item> <item name="android:background">@android:color/transparent</item> <item name="android:tint">@color/accessibility_autoclick_type_button_color</item> </style> Loading
core/res/res/values/symbols.xml +0 −8 Original line number Diff line number Diff line Loading @@ -5906,21 +5906,13 @@ <java-symbol type="id" name="accessibility_autoclick_type_panel" /> <java-symbol type="id" name="accessibility_autoclick_button_group_container" /> <java-symbol type="id" name="accessibility_autoclick_click_type_button_group_container" /> <java-symbol type="id" name="accessibility_autoclick_left_click_layout" /> <java-symbol type="id" name="accessibility_autoclick_left_click_button" /> <java-symbol type="id" name="accessibility_autoclick_right_click_layout" /> <java-symbol type="id" name="accessibility_autoclick_right_click_button" /> <java-symbol type="id" name="accessibility_autoclick_double_click_layout" /> <java-symbol type="id" name="accessibility_autoclick_double_click_button" /> <java-symbol type="id" name="accessibility_autoclick_drag_layout" /> <java-symbol type="id" name="accessibility_autoclick_drag_button" /> <java-symbol type="id" name="accessibility_autoclick_scroll_layout" /> <java-symbol type="id" name="accessibility_autoclick_scroll_button" /> <java-symbol type="id" name="accessibility_autoclick_long_press_layout" /> <java-symbol type="id" name="accessibility_autoclick_long_press_button" /> <java-symbol type="id" name="accessibility_autoclick_pause_layout" /> <java-symbol type="id" name="accessibility_autoclick_pause_button" /> <java-symbol type="id" name="accessibility_autoclick_position_layout" /> <java-symbol type="id" name="accessibility_autoclick_position_button" /> <java-symbol type="drawable" name="accessibility_autoclick_pause" /> <java-symbol type="drawable" name="accessibility_autoclick_resume" /> Loading
services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickTypePanel.java +32 −34 Original line number Diff line number Diff line Loading @@ -160,16 +160,16 @@ public class AutoclickTypePanel { // The current corner position of the panel, default to bottom right. private @Corner int mCurrentCorner = CORNER_BOTTOM_RIGHT; private LinearLayout mLeftClickButton; private LinearLayout mRightClickButton; private LinearLayout mDoubleClickButton; private LinearLayout mDragButton; private LinearLayout mScrollButton; private LinearLayout mPauseButton; private LinearLayout mPositionButton; private LinearLayout mLongPressButton; private LinearLayout mSelectedButton; private ImageButton mLeftClickButton; private ImageButton mRightClickButton; private ImageButton mDoubleClickButton; private ImageButton mDragButton; private ImageButton mScrollButton; private ImageButton mPauseButton; private ImageButton mPositionButton; private ImageButton mLongPressButton; private ImageButton mSelectedButton; private int mSelectedClickType = AUTOCLICK_TYPE_LEFT_CLICK; private Drawable mPauseButtonDrawable; Loading Loading @@ -214,17 +214,17 @@ public class AutoclickTypePanel { .inflate(R.layout.accessibility_autoclick_type_panel, null); mContentView.setOnHoverChangedListener(mClickPanelController::onHoverChange); mLeftClickButton = mContentView.findViewById(R.id.accessibility_autoclick_left_click_layout); mContentView.findViewById(R.id.accessibility_autoclick_left_click_button); mRightClickButton = mContentView.findViewById(R.id.accessibility_autoclick_right_click_layout); mContentView.findViewById(R.id.accessibility_autoclick_right_click_button); mDoubleClickButton = mContentView.findViewById(R.id.accessibility_autoclick_double_click_layout); mScrollButton = mContentView.findViewById(R.id.accessibility_autoclick_scroll_layout); mDragButton = mContentView.findViewById(R.id.accessibility_autoclick_drag_layout); mPauseButton = mContentView.findViewById(R.id.accessibility_autoclick_pause_layout); mPositionButton = mContentView.findViewById(R.id.accessibility_autoclick_position_layout); mContentView.findViewById(R.id.accessibility_autoclick_double_click_button); mScrollButton = mContentView.findViewById(R.id.accessibility_autoclick_scroll_button); mDragButton = mContentView.findViewById(R.id.accessibility_autoclick_drag_button); mPauseButton = mContentView.findViewById(R.id.accessibility_autoclick_pause_button); mPositionButton = mContentView.findViewById(R.id.accessibility_autoclick_position_button); mLongPressButton = mContentView.findViewById(R.id.accessibility_autoclick_long_press_layout); mContentView.findViewById(R.id.accessibility_autoclick_long_press_button); // Get status bar height. mStatusBarHeight = SystemBarUtils.getStatusBarHeight(mContext); Loading Loading @@ -360,7 +360,7 @@ public class AutoclickTypePanel { /** Reset panel as collapsed state and only displays selected button. */ public void collapsePanelWithClickType(@AutoclickType int clickType) { hideAllClickTypeButtons(); final LinearLayout selectedButton = getButtonFromClickType(clickType); final ImageButton selectedButton = getButtonFromClickType(clickType); selectedButton.setVisibility(View.VISIBLE); // Sets the newly selected button. Loading @@ -374,7 +374,7 @@ public class AutoclickTypePanel { /** Sets the selected button and updates the newly and previously selected button styling. */ private void setSelectedClickType(@AutoclickType int clickType) { final LinearLayout selectedButton = getButtonFromClickType(clickType); final ImageButton selectedButton = getButtonFromClickType(clickType); // Updates the previously selected button styling. if (mSelectedButton != null) { Loading @@ -389,7 +389,7 @@ public class AutoclickTypePanel { toggleSelectedButtonStyle(selectedButton, /* isSelected= */ true); } private void toggleSelectedButtonStyle(@NonNull LinearLayout button, boolean isSelected) { private void toggleSelectedButtonStyle(@NonNull ImageButton button, boolean isSelected) { button.setSelected(isSelected); } Loading Loading @@ -500,17 +500,16 @@ public class AutoclickTypePanel { * without changing the state itself. */ private void updatePauseButtonAppearance() { ImageButton imageButton = (ImageButton) mPauseButton.getChildAt(0); if (mPaused) { String resumeText = mContext.getString(R.string.accessibility_autoclick_resume); mPauseButton.setTooltipText(resumeText); imageButton.setContentDescription(resumeText); imageButton.setImageDrawable(mResumeButtonDrawable); mPauseButton.setContentDescription(resumeText); mPauseButton.setImageDrawable(mResumeButtonDrawable); } else { String pauseText = mContext.getString(R.string.accessibility_autoclick_pause); mPauseButton.setTooltipText(pauseText); imageButton.setContentDescription(pauseText); imageButton.setImageDrawable(mPauseButtonDrawable); mPauseButton.setContentDescription(pauseText); mPauseButton.setImageDrawable(mPauseButtonDrawable); } } Loading @@ -535,11 +534,11 @@ public class AutoclickTypePanel { } /** * Retrieves the LinearLayout corresponding to the given autoclick type. * Retrieves the ImageButton corresponding to the given autoclick type. * @param clickType The autoclick type. * @return The LinearLayout for the specified click type. * @return The ImageButton for the specified click type. */ private LinearLayout getButtonFromClickType(@AutoclickType int clickType) { private ImageButton getButtonFromClickType(@AutoclickType int clickType) { return switch (clickType) { case AUTOCLICK_TYPE_LEFT_CLICK -> mLeftClickButton; case AUTOCLICK_TYPE_RIGHT_CLICK -> mRightClickButton; Loading Loading @@ -699,20 +698,19 @@ public class AutoclickTypePanel { * @param corner The corner to set the icon for. */ private void updatePositionButtonIcon(@Corner int corner) { ImageButton imageButton = (ImageButton) mPositionButton.getChildAt(/* index= */ 0); switch (corner) { case CORNER_TOP_LEFT: imageButton.setImageDrawable(mPositionTopLeftDrawable); mPositionButton.setImageDrawable(mPositionTopLeftDrawable); break; case CORNER_TOP_RIGHT: imageButton.setImageDrawable(mPositionTopRightDrawable); mPositionButton.setImageDrawable(mPositionTopRightDrawable); break; case CORNER_BOTTOM_LEFT: imageButton.setImageDrawable(mPositionBottomLeftDrawable); mPositionButton.setImageDrawable(mPositionBottomLeftDrawable); break; case CORNER_BOTTOM_RIGHT: default: imageButton.setImageDrawable(mPositionBottomRightDrawable); mPositionButton.setImageDrawable(mPositionBottomRightDrawable); break; } } Loading
services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickTypePanelTest.java +19 −21 Original line number Diff line number Diff line Loading @@ -45,7 +45,6 @@ import android.view.PointerIcon; import android.view.View; import android.view.WindowManager; import android.widget.ImageButton; import android.widget.LinearLayout; import androidx.annotation.NonNull; Loading @@ -72,14 +71,14 @@ public class AutoclickTypePanelTest { private AutoclickTypePanel mAutoclickTypePanel; @Mock private WindowManager mMockWindowManager; private LinearLayout mLeftClickButton; private LinearLayout mRightClickButton; private LinearLayout mDoubleClickButton; private LinearLayout mDragButton; private LinearLayout mScrollButton; private LinearLayout mPauseButton; private LinearLayout mPositionButton; private LinearLayout mLongPressButton; private ImageButton mLeftClickButton; private ImageButton mRightClickButton; private ImageButton mDoubleClickButton; private ImageButton mDragButton; private ImageButton mScrollButton; private ImageButton mPauseButton; private ImageButton mPositionButton; private ImageButton mLongPressButton; private @AutoclickType int mActiveClickType = AUTOCLICK_TYPE_LEFT_CLICK; private boolean mPaused; Loading Loading @@ -111,16 +110,16 @@ public class AutoclickTypePanelTest { new AutoclickTypePanel(mTestableContext, mMockWindowManager, mTestableContext.getUserId(), clickPanelController); View contentView = mAutoclickTypePanel.getContentViewForTesting(); mLeftClickButton = contentView.findViewById(R.id.accessibility_autoclick_left_click_layout); mLeftClickButton = contentView.findViewById(R.id.accessibility_autoclick_left_click_button); mRightClickButton = contentView.findViewById(R.id.accessibility_autoclick_right_click_layout); contentView.findViewById(R.id.accessibility_autoclick_right_click_button); mDoubleClickButton = contentView.findViewById(R.id.accessibility_autoclick_double_click_layout); mScrollButton = contentView.findViewById(R.id.accessibility_autoclick_scroll_layout); mDragButton = contentView.findViewById(R.id.accessibility_autoclick_drag_layout); mPauseButton = contentView.findViewById(R.id.accessibility_autoclick_pause_layout); mPositionButton = contentView.findViewById(R.id.accessibility_autoclick_position_layout); mLongPressButton = contentView.findViewById(R.id.accessibility_autoclick_long_press_layout); contentView.findViewById(R.id.accessibility_autoclick_double_click_button); mScrollButton = contentView.findViewById(R.id.accessibility_autoclick_scroll_button); mDragButton = contentView.findViewById(R.id.accessibility_autoclick_drag_button); mPauseButton = contentView.findViewById(R.id.accessibility_autoclick_pause_button); mPositionButton = contentView.findViewById(R.id.accessibility_autoclick_position_button); mLongPressButton = contentView.findViewById(R.id.accessibility_autoclick_long_press_button); // Set panel to default bottom-right corner. mAutoclickTypePanel.show(); Loading Loading @@ -311,18 +310,17 @@ public class AutoclickTypePanelTest { .accessibility_autoclick_resume); String pauseText = mTestableContext.getString(R.string .accessibility_autoclick_pause); ImageButton imageButton = (ImageButton) mPauseButton.getChildAt(/* index= */ 0); mPauseButton.callOnClick(); assertThat(mPaused).isTrue(); assertThat(mAutoclickTypePanel.isPaused()).isTrue(); assertThat(imageButton.getContentDescription().toString()).isEqualTo(resumeText); assertThat(mPauseButton.getContentDescription().toString()).isEqualTo(resumeText); assertThat(mPauseButton.getTooltipText().toString()).isEqualTo(resumeText); mPauseButton.callOnClick(); assertThat(mPaused).isFalse(); assertThat(mAutoclickTypePanel.isPaused()).isFalse(); assertThat(imageButton.getContentDescription().toString()).isEqualTo(pauseText); assertThat(mPauseButton.getContentDescription().toString()).isEqualTo(pauseText); assertThat(mPauseButton.getTooltipText().toString()).isEqualTo(pauseText); } Loading Loading @@ -595,7 +593,7 @@ public class AutoclickTypePanelTest { assertThat(afterDragCursor.getType()).isEqualTo(PointerIcon.TYPE_GRAB); } private void verifyButtonHasSelectedStyle(@NonNull LinearLayout button) { private void verifyButtonHasSelectedStyle(@NonNull ImageButton button) { GradientDrawable gradientDrawable = (GradientDrawable) button.getBackground(); // Get the ColorStateList from the background. ColorStateList colorStateList = gradientDrawable.getColor(); Loading