From d1d534031d8b810168de9893a43fc8e7f928f20e Mon Sep 17 00:00:00 2001 From: Nick Chameyev Date: Mon, 1 Nov 2021 15:28:13 +0000 Subject: [PATCH] Do not use shared lib resources Temporary removes usages of SysUI shared resources as it leads to crashes in Launcher tests. Bug: 204727471 Test: install launcher, try autorotate suggestion Change-Id: I82dae0b2f5a9d2cb83f8a60e3c08353dc1bb60b6 --- .../res/layout/rotate_suggestion.xml | 0 .../SystemUI/res/values-sw600dp/dimens.xml | 2 ++ .../SystemUI/res/values-sw900dp/dimens.xml | 6 ++++ packages/SystemUI/res/values/dimens.xml | 13 ++++++++ packages/SystemUI/shared/Android.bp | 3 -- .../shared/res/values-sw600dp/dimens.xml | 19 ------------ .../shared/res/values-sw900dp/dimens.xml | 23 -------------- .../SystemUI/shared/res/values/dimens.xml | 30 ------------------- .../buttons/KeyButtonRipple.java | 7 ++--- .../rotation/FloatingRotationButton.java | 25 ++++++++++------ .../rotation/FloatingRotationButtonView.java | 11 +++++-- .../navigationbar/NavigationBarView.java | 12 ++++++-- .../navigationbar/buttons/KeyButtonView.java | 2 +- 13 files changed, 59 insertions(+), 94 deletions(-) rename packages/SystemUI/{shared => }/res/layout/rotate_suggestion.xml (100%) delete mode 100644 packages/SystemUI/shared/res/values-sw600dp/dimens.xml delete mode 100644 packages/SystemUI/shared/res/values-sw900dp/dimens.xml delete mode 100644 packages/SystemUI/shared/res/values/dimens.xml 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);