diff --git a/packages/SystemUI/shared/res/layout/rotate_suggestion.xml b/packages/SystemUI/res/layout/rotate_suggestion.xml
similarity index 100%
rename from packages/SystemUI/shared/res/layout/rotate_suggestion.xml
rename to packages/SystemUI/res/layout/rotate_suggestion.xml
diff --git a/packages/SystemUI/res/values-sw600dp/dimens.xml b/packages/SystemUI/res/values-sw600dp/dimens.xml
index c1c15d12dee19..d17ec73795111 100644
--- a/packages/SystemUI/res/values-sw600dp/dimens.xml
+++ b/packages/SystemUI/res/values-sw600dp/dimens.xml
@@ -82,6 +82,8 @@
128dp
+ 25dp
+
488dp
diff --git a/packages/SystemUI/res/values-sw900dp/dimens.xml b/packages/SystemUI/res/values-sw900dp/dimens.xml
index ebae8c4bfa4c4..2758fb439edd7 100644
--- a/packages/SystemUI/res/values-sw900dp/dimens.xml
+++ b/packages/SystemUI/res/values-sw900dp/dimens.xml
@@ -17,6 +17,12 @@
-->
+
+ 76dp
+
+
+ 0dp
+
80dp
@dimen/button_size
@dimen/button_size
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index 46869a0087a49..e5ea3688ec0d0 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -522,6 +522,19 @@
24dp
+
+ 95dp
+
+ 0dp
+
+ 0dp
+
+
+ 40dp
+ 20dp
+ 20dp
+ 10dp
+
0x31
diff --git a/packages/SystemUI/shared/Android.bp b/packages/SystemUI/shared/Android.bp
index 62e9d8bb23952..23307de519c86 100644
--- a/packages/SystemUI/shared/Android.bp
+++ b/packages/SystemUI/shared/Android.bp
@@ -45,9 +45,6 @@ android_library {
":wm_shell-aidls",
":wm_shell_util-sources",
],
- resource_dirs: [
- "res",
- ],
static_libs: [
"PluginCoreLib",
"androidx.dynamicanimation_dynamicanimation",
diff --git a/packages/SystemUI/shared/res/values-sw600dp/dimens.xml b/packages/SystemUI/shared/res/values-sw600dp/dimens.xml
deleted file mode 100644
index 5d9e0596b5c13..0000000000000
--- a/packages/SystemUI/shared/res/values-sw600dp/dimens.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
- 25dp
-
diff --git a/packages/SystemUI/shared/res/values-sw900dp/dimens.xml b/packages/SystemUI/shared/res/values-sw900dp/dimens.xml
deleted file mode 100644
index 3efa5e3ecf702..0000000000000
--- a/packages/SystemUI/shared/res/values-sw900dp/dimens.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
- 76dp
-
-
- 0dp
-
\ No newline at end of file
diff --git a/packages/SystemUI/shared/res/values/dimens.xml b/packages/SystemUI/shared/res/values/dimens.xml
deleted file mode 100644
index b7f3328468585..0000000000000
--- a/packages/SystemUI/shared/res/values/dimens.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
- 95dp
-
- 0dp
-
- 0dp
-
-
- 40dp
- 20dp
- 20dp
- 10dp
-
diff --git a/packages/SystemUI/shared/src/com/android/systemui/navigationbar/buttons/KeyButtonRipple.java b/packages/SystemUI/shared/src/com/android/systemui/navigationbar/buttons/KeyButtonRipple.java
index 53df0f3ab5333..07ad0c8a5120f 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/navigationbar/buttons/KeyButtonRipple.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/navigationbar/buttons/KeyButtonRipple.java
@@ -35,10 +35,9 @@ import android.view.ViewConfiguration;
import android.view.animation.Interpolator;
import android.view.animation.PathInterpolator;
+import androidx.annotation.DimenRes;
import androidx.annotation.Keep;
-import com.android.systemui.shared.R;
-
import java.util.ArrayList;
import java.util.HashSet;
@@ -90,8 +89,8 @@ public class KeyButtonRipple extends Drawable {
private Type mType = Type.ROUNDED_RECT;
- public KeyButtonRipple(Context ctx, View targetView) {
- mMaxWidth = ctx.getResources().getDimensionPixelSize(R.dimen.key_button_ripple_max_width);
+ public KeyButtonRipple(Context ctx, View targetView, @DimenRes int maxWidthResource) {
+ mMaxWidth = ctx.getResources().getDimensionPixelSize(maxWidthResource);
mTargetView = targetView;
}
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/rotation/FloatingRotationButton.java b/packages/SystemUI/shared/src/com/android/systemui/shared/rotation/FloatingRotationButton.java
index be3d7800bb748..cbf7397323617 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/rotation/FloatingRotationButton.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/rotation/FloatingRotationButton.java
@@ -16,6 +16,9 @@
package com.android.systemui.shared.rotation;
+import android.annotation.DimenRes;
+import android.annotation.IdRes;
+import android.annotation.LayoutRes;
import android.annotation.StringRes;
import android.content.Context;
import android.content.res.Resources;
@@ -61,29 +64,33 @@ public class FloatingRotationButton implements RotationButton {
private RotationButtonUpdatesCallback mUpdatesCallback;
private Position mPosition;
- public FloatingRotationButton(Context context, @StringRes int contentDescription) {
+ public FloatingRotationButton(Context context, @StringRes int contentDescription,
+ @LayoutRes int layout, @IdRes int keyButtonId, @DimenRes int minMargin,
+ @DimenRes int roundedContentPadding, @DimenRes int taskbarLeftMargin,
+ @DimenRes int taskbarBottomMargin, @DimenRes int buttonDiameter,
+ @DimenRes int rippleMaxWidth) {
mWindowManager = context.getSystemService(WindowManager.class);
- mKeyButtonContainer = (ViewGroup) LayoutInflater.from(context).inflate(
- R.layout.rotate_suggestion, null);
- mKeyButtonView = mKeyButtonContainer.findViewById(R.id.rotate_suggestion);
+ mKeyButtonContainer = (ViewGroup) LayoutInflater.from(context).inflate(layout, null);
+ mKeyButtonView = mKeyButtonContainer.findViewById(keyButtonId);
mKeyButtonView.setVisibility(View.VISIBLE);
mKeyButtonView.setContentDescription(context.getString(contentDescription));
+ mKeyButtonView.setRipple(rippleMaxWidth);
Resources res = context.getResources();
int defaultMargin = Math.max(
- res.getDimensionPixelSize(R.dimen.floating_rotation_button_min_margin),
- res.getDimensionPixelSize(R.dimen.rounded_corner_content_padding));
+ res.getDimensionPixelSize(minMargin),
+ res.getDimensionPixelSize(roundedContentPadding));
int taskbarMarginLeft =
- res.getDimensionPixelSize(R.dimen.floating_rotation_button_taskbar_left_margin);
+ res.getDimensionPixelSize(taskbarLeftMargin);
int taskbarMarginBottom =
- res.getDimensionPixelSize(R.dimen.floating_rotation_button_taskbar_bottom_margin);
+ res.getDimensionPixelSize(taskbarBottomMargin);
mPositionCalculator = new FloatingRotationButtonPositionCalculator(defaultMargin,
taskbarMarginLeft, taskbarMarginBottom);
- final int diameter = res.getDimensionPixelSize(R.dimen.floating_rotation_button_diameter);
+ final int diameter = res.getDimensionPixelSize(buttonDiameter);
mContainerSize = diameter + Math.max(defaultMargin, Math.max(taskbarMarginLeft,
taskbarMarginBottom));
}
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/rotation/FloatingRotationButtonView.java b/packages/SystemUI/shared/src/com/android/systemui/shared/rotation/FloatingRotationButtonView.java
index e0187f41c68a8..c5f8fc15b3b7a 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/rotation/FloatingRotationButtonView.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/rotation/FloatingRotationButtonView.java
@@ -26,13 +26,15 @@ import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
+import androidx.annotation.DimenRes;
+
import com.android.systemui.navigationbar.buttons.KeyButtonRipple;
public class FloatingRotationButtonView extends ImageView {
private static final float BACKGROUND_ALPHA = 0.92f;
- private final KeyButtonRipple mRipple;
+ private KeyButtonRipple mRipple;
private final Paint mOvalBgPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG);
public FloatingRotationButtonView(Context context, AttributeSet attrs) {
@@ -44,12 +46,15 @@ public class FloatingRotationButtonView extends ImageView {
setClickable(true);
- mRipple = new KeyButtonRipple(context, this);
- setBackground(mRipple);
setWillNotDraw(false);
forceHasOverlappingRendering(false);
}
+ public void setRipple(@DimenRes int rippleMaxWidthResource) {
+ mRipple = new KeyButtonRipple(getContext(), this, rippleMaxWidthResource);
+ setBackground(mRipple);
+ }
+
@Override
protected void onWindowVisibilityChanged(int visibility) {
super.onWindowVisibilityChanged(visibility);
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java
index cba76e004558a..680cc5cb5cba1 100644
--- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java
@@ -323,8 +323,16 @@ public class NavigationBarView extends FrameLayout implements
mContextualButtonGroup.addButton(accessibilityButton);
mRotationContextButton = new RotationContextButton(R.id.rotate_suggestion,
mLightContext, R.drawable.ic_sysbar_rotate_button_ccw_start_0);
- mFloatingRotationButton = new FloatingRotationButton(context,
- R.string.accessibility_rotate_button);
+ mFloatingRotationButton = new FloatingRotationButton(mContext,
+ R.string.accessibility_rotate_button,
+ R.layout.rotate_suggestion,
+ R.id.rotate_suggestion,
+ R.dimen.floating_rotation_button_min_margin,
+ R.dimen.rounded_corner_content_padding,
+ R.dimen.floating_rotation_button_taskbar_left_margin,
+ R.dimen.floating_rotation_button_taskbar_bottom_margin,
+ R.dimen.floating_rotation_button_diameter,
+ R.dimen.key_button_ripple_max_width);
mRotationButtonController = new RotationButtonController(mLightContext, mLightIconColor,
mDarkIconColor, R.drawable.ic_sysbar_rotate_button_ccw_start_0,
R.drawable.ic_sysbar_rotate_button_ccw_start_90,
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/KeyButtonView.java b/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/KeyButtonView.java
index 9ea9383256593..debd2ebb51be3 100644
--- a/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/KeyButtonView.java
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/KeyButtonView.java
@@ -168,7 +168,7 @@ public class KeyButtonView extends ImageView implements ButtonInterface {
setClickable(true);
mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
- mRipple = new KeyButtonRipple(context, this);
+ mRipple = new KeyButtonRipple(context, this, R.dimen.key_button_ripple_max_width);
mOverviewProxyService = Dependency.get(OverviewProxyService.class);
mInputManager = manager;
setBackground(mRipple);