From 84ac18ff75b153e911160d66b9f1bcb30b2f05da Mon Sep 17 00:00:00 2001 From: Coco Duan Date: Wed, 15 Mar 2023 01:15:33 +0000 Subject: [PATCH] [Overlay] Adjust Media Controls button size and position - Reuse dream bottom affordance specs to resize the Media Controls button, so it has a consistent look with Home Controls button. - Refactor Home Controls complication to remove the wrapper of the ImageView. Also removed the top/bottom margin as complication layout engine will take care of spacing. Bug: b/273545893 Test: enable media controls, Home Controls button and play music. Test: atest DreamHomeControlsComplicationTest Change-Id: I28291e0b694666ded7d86b4cf619dd24188f3f90 --- .../dream_overlay_home_controls_chip.xml | 29 +++++++------------ .../layout/dream_overlay_media_entry_chip.xml | 11 ++++--- packages/SystemUI/res/values/dimens.xml | 1 - .../DreamHomeControlsComplication.java | 18 +++++------- ...reamHomeControlsComplicationComponent.java | 6 ++-- .../dagger/RegisteredComplicationsModule.java | 4 +-- .../DreamHomeControlsComplicationTest.java | 7 +---- 7 files changed, 30 insertions(+), 46 deletions(-) diff --git a/packages/SystemUI/res/layout/dream_overlay_home_controls_chip.xml b/packages/SystemUI/res/layout/dream_overlay_home_controls_chip.xml index 5b2ec483f50eb..0cd062383570b 100644 --- a/packages/SystemUI/res/layout/dream_overlay_home_controls_chip.xml +++ b/packages/SystemUI/res/layout/dream_overlay_home_controls_chip.xml @@ -14,22 +14,15 @@ ~ See the License for the specific language governing permissions and ~ limitations under the License. --> - - - - - + android:id="@+id/home_controls_chip" + android:layout_height="@dimen/dream_overlay_bottom_affordance_height" + android:layout_width="@dimen/dream_overlay_bottom_affordance_width" + android:layout_gravity="bottom|start" + android:padding="@dimen/dream_overlay_bottom_affordance_padding" + android:background="@drawable/dream_overlay_bottom_affordance_bg" + android:scaleType="fitCenter" + android:tint="?android:attr/textColorPrimary" + android:src="@drawable/controls_icon" + android:contentDescription="@string/quick_controls_title" /> diff --git a/packages/SystemUI/res/layout/dream_overlay_media_entry_chip.xml b/packages/SystemUI/res/layout/dream_overlay_media_entry_chip.xml index 50f3ffcaf9689..b75c638904d84 100644 --- a/packages/SystemUI/res/layout/dream_overlay_media_entry_chip.xml +++ b/packages/SystemUI/res/layout/dream_overlay_media_entry_chip.xml @@ -17,13 +17,12 @@ diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index 262086f43d890..8e93a540c1c03 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -1591,7 +1591,6 @@ 14dp 86dp 28dp - 28dp 24sp 36sp 28dp diff --git a/packages/SystemUI/src/com/android/systemui/dreams/complication/DreamHomeControlsComplication.java b/packages/SystemUI/src/com/android/systemui/dreams/complication/DreamHomeControlsComplication.java index 7f395d863c3fc..82a885892b751 100644 --- a/packages/SystemUI/src/com/android/systemui/dreams/complication/DreamHomeControlsComplication.java +++ b/packages/SystemUI/src/com/android/systemui/dreams/complication/DreamHomeControlsComplication.java @@ -33,7 +33,6 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.internal.logging.UiEvent; import com.android.internal.logging.UiEventLogger; import com.android.systemui.CoreStartable; -import com.android.systemui.R; import com.android.systemui.animation.ActivityLaunchAnimator; import com.android.systemui.controls.ControlsServiceInfo; import com.android.systemui.controls.dagger.ControlsComponent; @@ -157,14 +156,14 @@ public class DreamHomeControlsComplication implements Complication { * Contains values/logic associated with the dream complication view. */ public static class DreamHomeControlsChipViewHolder implements ViewHolder { - private final View mView; + private final ImageView mView; private final ComplicationLayoutParams mLayoutParams; private final DreamHomeControlsChipViewController mViewController; @Inject DreamHomeControlsChipViewHolder( DreamHomeControlsChipViewController dreamHomeControlsChipViewController, - @Named(DREAM_HOME_CONTROLS_CHIP_VIEW) View view, + @Named(DREAM_HOME_CONTROLS_CHIP_VIEW) ImageView view, @Named(DREAM_HOME_CONTROLS_CHIP_LAYOUT_PARAMS) ComplicationLayoutParams layoutParams ) { mView = view; @@ -174,7 +173,7 @@ public class DreamHomeControlsComplication implements Complication { } @Override - public View getView() { + public ImageView getView() { return mView; } @@ -187,7 +186,7 @@ public class DreamHomeControlsComplication implements Complication { /** * Controls behavior of the dream complication. */ - static class DreamHomeControlsChipViewController extends ViewController { + static class DreamHomeControlsChipViewController extends ViewController { private static final String TAG = "DreamHomeControlsCtrl"; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); @@ -216,7 +215,7 @@ public class DreamHomeControlsComplication implements Complication { @Inject DreamHomeControlsChipViewController( - @Named(DREAM_HOME_CONTROLS_CHIP_VIEW) View view, + @Named(DREAM_HOME_CONTROLS_CHIP_VIEW) ImageView view, ActivityStarter activityStarter, Context context, ControlsComponent controlsComponent, @@ -231,10 +230,9 @@ public class DreamHomeControlsComplication implements Complication { @Override protected void onViewAttached() { - final ImageView chip = mView.findViewById(R.id.home_controls_chip); - chip.setImageResource(mControlsComponent.getTileImageId()); - chip.setContentDescription(mContext.getString(mControlsComponent.getTileTitleId())); - chip.setOnClickListener(this::onClickHomeControls); + mView.setImageResource(mControlsComponent.getTileImageId()); + mView.setContentDescription(mContext.getString(mControlsComponent.getTileTitleId())); + mView.setOnClickListener(this::onClickHomeControls); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/dreams/complication/dagger/DreamHomeControlsComplicationComponent.java b/packages/SystemUI/src/com/android/systemui/dreams/complication/dagger/DreamHomeControlsComplicationComponent.java index a7aa97f74e311..cf05d2d9cda03 100644 --- a/packages/SystemUI/src/com/android/systemui/dreams/complication/dagger/DreamHomeControlsComplicationComponent.java +++ b/packages/SystemUI/src/com/android/systemui/dreams/complication/dagger/DreamHomeControlsComplicationComponent.java @@ -19,7 +19,7 @@ package com.android.systemui.dreams.complication.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; import android.view.LayoutInflater; -import android.view.View; +import android.widget.ImageView; import com.android.systemui.R; import com.android.systemui.dreams.complication.DreamHomeControlsComplication; @@ -74,8 +74,8 @@ public interface DreamHomeControlsComplicationComponent { @Provides @DreamHomeControlsComplicationScope @Named(DREAM_HOME_CONTROLS_CHIP_VIEW) - static View provideHomeControlsChipView(LayoutInflater layoutInflater) { - return layoutInflater.inflate(R.layout.dream_overlay_home_controls_chip, + static ImageView provideHomeControlsChipView(LayoutInflater layoutInflater) { + return (ImageView) layoutInflater.inflate(R.layout.dream_overlay_home_controls_chip, null, false); } } diff --git a/packages/SystemUI/src/com/android/systemui/dreams/complication/dagger/RegisteredComplicationsModule.java b/packages/SystemUI/src/com/android/systemui/dreams/complication/dagger/RegisteredComplicationsModule.java index 616bd81abe4d4..3be42cb58f118 100644 --- a/packages/SystemUI/src/com/android/systemui/dreams/complication/dagger/RegisteredComplicationsModule.java +++ b/packages/SystemUI/src/com/android/systemui/dreams/complication/dagger/RegisteredComplicationsModule.java @@ -101,8 +101,8 @@ public interface RegisteredComplicationsModule { @Named(DREAM_MEDIA_ENTRY_LAYOUT_PARAMS) static ComplicationLayoutParams provideMediaEntryLayoutParams(@Main Resources res) { return new ComplicationLayoutParams( - res.getDimensionPixelSize(R.dimen.keyguard_affordance_fixed_width), - res.getDimensionPixelSize(R.dimen.keyguard_affordance_fixed_height), + ViewGroup.LayoutParams.WRAP_CONTENT, + ViewGroup.LayoutParams.WRAP_CONTENT, ComplicationLayoutParams.POSITION_BOTTOM | ComplicationLayoutParams.POSITION_START, ComplicationLayoutParams.DIRECTION_END, diff --git a/packages/SystemUI/tests/src/com/android/systemui/dreams/complication/DreamHomeControlsComplicationTest.java b/packages/SystemUI/tests/src/com/android/systemui/dreams/complication/DreamHomeControlsComplicationTest.java index 3312c4335ab4a..aad49f9b8069f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/dreams/complication/DreamHomeControlsComplicationTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/dreams/complication/DreamHomeControlsComplicationTest.java @@ -35,7 +35,6 @@ import android.view.View; import androidx.test.filters.SmallTest; import com.android.internal.logging.UiEventLogger; -import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.animation.view.LaunchableImageView; import com.android.systemui.condition.SelfExecutingMonitor; @@ -88,9 +87,6 @@ public class DreamHomeControlsComplicationTest extends SysuiTestCase { @Captor private ArgumentCaptor mCallbackCaptor; - @Mock - private View mView; - @Mock private LaunchableImageView mHomeControlsView; @@ -115,7 +111,6 @@ public class DreamHomeControlsComplicationTest extends SysuiTestCase { when(mControlsComponent.getControlsListingController()).thenReturn( Optional.of(mControlsListingController)); when(mControlsComponent.getVisibility()).thenReturn(AVAILABLE); - when(mView.findViewById(R.id.home_controls_chip)).thenReturn(mHomeControlsView); mMonitor = SelfExecutingMonitor.createInstance(); } @@ -223,7 +218,7 @@ public class DreamHomeControlsComplicationTest extends SysuiTestCase { public void testClick_logsUiEvent() { final DreamHomeControlsComplication.DreamHomeControlsChipViewController viewController = new DreamHomeControlsComplication.DreamHomeControlsChipViewController( - mView, + mHomeControlsView, mActivityStarter, mContext, mControlsComponent,