Loading packages/SystemUI/aconfig/systemui.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -725,6 +725,16 @@ flag { } } flag { name: "fix_shade_header_wrong_icon_size" namespace: "lse_desktop_experience" description: "Fix system icon size in shade header on connected displays" bug: "412409667" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "clipboard_use_description_mimetype" namespace: "systemui" Loading packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/view/ModernStatusBarWifiView.kt +35 −25 Original line number Diff line number Diff line Loading @@ -18,11 +18,13 @@ package com.android.systemui.statusbar.pipeline.wifi.ui.view import android.annotation.SuppressLint import android.content.Context import android.content.res.Configuration import android.util.AttributeSet import android.view.LayoutInflater import android.view.ViewGroup import android.widget.ImageView import com.android.keyguard.AlphaOptimizedLinearLayout import com.android.systemui.Flags import com.android.systemui.res.R import com.android.systemui.statusbar.StatusBarIconView import com.android.systemui.statusbar.core.NewStatusBarIcons Loading Loading @@ -60,6 +62,20 @@ class ModernStatusBarWifiView(context: Context, attrs: AttributeSet?) : return (LayoutInflater.from(context).inflate(R.layout.new_status_bar_wifi_group, null) as ModernStatusBarWifiView) .apply { updateDimensions() initView(slot) { WifiViewBinder.bind(this, wifiViewModel) } } } } public override fun onConfigurationChanged(newConfig: Configuration?) { if (Flags.fixShadeHeaderWrongIconSize()) { updateDimensions() } } private fun updateDimensions() { // Flag-specific configuration if (NewStatusBarIcons.isEnabled) { // The newer asset does not embed whitespace around it, and is therefore Loading @@ -69,9 +85,7 @@ class ModernStatusBarWifiView(context: Context, attrs: AttributeSet?) : val lp = iconView.layoutParams lp.width = ViewGroup.LayoutParams.WRAP_CONTENT lp.height = resources.getDimensionPixelSize( R.dimen.status_bar_wifi_signal_height_updated ) resources.getDimensionPixelSize(R.dimen.status_bar_wifi_signal_height_updated) // New status bar icons have a single 3sp spacing defined (requireViewById<AlphaOptimizedLinearLayout>(R.id.wifi_group).layoutParams Loading @@ -85,9 +99,5 @@ class ModernStatusBarWifiView(context: Context, attrs: AttributeSet?) : marginEnd = margin } } initView(slot) { WifiViewBinder.bind(this, wifiViewModel) } } } } } packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/view/ModernStatusBarWifiViewTest.kt +55 −5 Original line number Diff line number Diff line Loading @@ -17,6 +17,9 @@ package com.android.systemui.statusbar.pipeline.wifi.ui.view import android.content.res.ColorStateList import android.content.res.Configuration import android.platform.test.annotations.DisableFlags import android.platform.test.annotations.EnableFlags import android.testing.AndroidTestingRunner import android.testing.TestableLooper import android.testing.TestableLooper.RunWithLooper Loading @@ -25,12 +28,14 @@ import android.view.View import android.view.ViewGroup import android.widget.ImageView import androidx.test.filters.SmallTest import com.android.systemui.Flags import com.android.systemui.SysuiTestCase import com.android.systemui.log.table.logcatTableLogBuffer import com.android.systemui.res.R import com.android.systemui.statusbar.StatusBarIconView.STATE_DOT import com.android.systemui.statusbar.StatusBarIconView.STATE_HIDDEN import com.android.systemui.statusbar.StatusBarIconView.STATE_ICON import com.android.systemui.statusbar.core.NewStatusBarIcons import com.android.systemui.statusbar.phone.StatusBarLocation import com.android.systemui.statusbar.pipeline.airplane.data.repository.FakeAirplaneModeRepository import com.android.systemui.statusbar.pipeline.airplane.domain.interactor.AirplaneModeInteractor Loading Loading @@ -80,6 +85,8 @@ class ModernStatusBarWifiViewTest : SysuiTestCase() { @Before fun setUp() { MockitoAnnotations.initMocks(this) // To ensure testable resources are being used. context.orCreateTestableResources testableLooper = TestableLooper.get(this) airplaneModeRepository = FakeAirplaneModeRepository() Loading Loading @@ -109,11 +116,7 @@ class ModernStatusBarWifiViewTest : SysuiTestCase() { scope, wifiConstants, ) viewModel = viewModelForLocation( viewModelCommon, StatusBarLocation.HOME, ) viewModel = viewModelForLocation(viewModelCommon, StatusBarLocation.HOME) } // Note: The following tests are more like integration tests, since they stand up a full Loading Loading @@ -254,6 +257,53 @@ class ModernStatusBarWifiViewTest : SysuiTestCase() { ViewUtils.detachView(view) } @Test @EnableFlags(NewStatusBarIcons.FLAG_NAME) @DisableFlags(Flags.FLAG_FIX_SHADE_HEADER_WRONG_ICON_SIZE) fun configChanged_dimensionsWithNewValues_flagDisabled_dimensionsNotUpdated() { val view = ModernStatusBarWifiView.constructAndBind(context, SLOT_NAME, viewModel) val iconView = view.getIconView() val group = view.getIconGroupView() val initialHeight = context.resources.getDimensionPixelSize(R.dimen.status_bar_wifi_signal_height_updated) val initialMargin = context.resources.getDimensionPixelSize( R.dimen.status_bar_wifi_signal_horizontal_margin ) overrideResource(R.dimen.status_bar_wifi_signal_height_updated, initialHeight + 10) overrideResource(R.dimen.status_bar_wifi_signal_horizontal_margin, initialMargin + 10) view.onConfigurationChanged(Configuration()) assertThat(iconView.layoutParams.height).isEqualTo(initialHeight) val newMarginLp = group.layoutParams as ViewGroup.MarginLayoutParams assertThat(newMarginLp.marginStart).isEqualTo(initialMargin) assertThat(newMarginLp.marginEnd).isEqualTo(initialMargin) } @Test @EnableFlags(NewStatusBarIcons.FLAG_NAME, Flags.FLAG_FIX_SHADE_HEADER_WRONG_ICON_SIZE) fun configChanged_dimensionsWithNewValues_flagEnabled_dimensionsUpdated() { val view = ModernStatusBarWifiView.constructAndBind(context, SLOT_NAME, viewModel) val iconView = view.getIconView() val group = view.getIconGroupView() val initialHeight = context.resources.getDimensionPixelSize(R.dimen.status_bar_wifi_signal_height_updated) val initialMargin = context.resources.getDimensionPixelSize( R.dimen.status_bar_wifi_signal_horizontal_margin ) overrideResource(R.dimen.status_bar_wifi_signal_height_updated, initialHeight + 10) overrideResource(R.dimen.status_bar_wifi_signal_horizontal_margin, initialMargin + 10) view.onConfigurationChanged(Configuration()) assertThat(iconView.layoutParams.height).isEqualTo(initialHeight + 10) val newMarginLp = group.layoutParams as ViewGroup.MarginLayoutParams assertThat(newMarginLp.marginStart).isEqualTo(initialMargin + 10) assertThat(newMarginLp.marginEnd).isEqualTo(initialMargin + 10) } private fun View.getIconGroupView(): View { return this.requireViewById(R.id.wifi_group) } Loading Loading
packages/SystemUI/aconfig/systemui.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -725,6 +725,16 @@ flag { } } flag { name: "fix_shade_header_wrong_icon_size" namespace: "lse_desktop_experience" description: "Fix system icon size in shade header on connected displays" bug: "412409667" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "clipboard_use_description_mimetype" namespace: "systemui" Loading
packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/view/ModernStatusBarWifiView.kt +35 −25 Original line number Diff line number Diff line Loading @@ -18,11 +18,13 @@ package com.android.systemui.statusbar.pipeline.wifi.ui.view import android.annotation.SuppressLint import android.content.Context import android.content.res.Configuration import android.util.AttributeSet import android.view.LayoutInflater import android.view.ViewGroup import android.widget.ImageView import com.android.keyguard.AlphaOptimizedLinearLayout import com.android.systemui.Flags import com.android.systemui.res.R import com.android.systemui.statusbar.StatusBarIconView import com.android.systemui.statusbar.core.NewStatusBarIcons Loading Loading @@ -60,6 +62,20 @@ class ModernStatusBarWifiView(context: Context, attrs: AttributeSet?) : return (LayoutInflater.from(context).inflate(R.layout.new_status_bar_wifi_group, null) as ModernStatusBarWifiView) .apply { updateDimensions() initView(slot) { WifiViewBinder.bind(this, wifiViewModel) } } } } public override fun onConfigurationChanged(newConfig: Configuration?) { if (Flags.fixShadeHeaderWrongIconSize()) { updateDimensions() } } private fun updateDimensions() { // Flag-specific configuration if (NewStatusBarIcons.isEnabled) { // The newer asset does not embed whitespace around it, and is therefore Loading @@ -69,9 +85,7 @@ class ModernStatusBarWifiView(context: Context, attrs: AttributeSet?) : val lp = iconView.layoutParams lp.width = ViewGroup.LayoutParams.WRAP_CONTENT lp.height = resources.getDimensionPixelSize( R.dimen.status_bar_wifi_signal_height_updated ) resources.getDimensionPixelSize(R.dimen.status_bar_wifi_signal_height_updated) // New status bar icons have a single 3sp spacing defined (requireViewById<AlphaOptimizedLinearLayout>(R.id.wifi_group).layoutParams Loading @@ -85,9 +99,5 @@ class ModernStatusBarWifiView(context: Context, attrs: AttributeSet?) : marginEnd = margin } } initView(slot) { WifiViewBinder.bind(this, wifiViewModel) } } } } }
packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/view/ModernStatusBarWifiViewTest.kt +55 −5 Original line number Diff line number Diff line Loading @@ -17,6 +17,9 @@ package com.android.systemui.statusbar.pipeline.wifi.ui.view import android.content.res.ColorStateList import android.content.res.Configuration import android.platform.test.annotations.DisableFlags import android.platform.test.annotations.EnableFlags import android.testing.AndroidTestingRunner import android.testing.TestableLooper import android.testing.TestableLooper.RunWithLooper Loading @@ -25,12 +28,14 @@ import android.view.View import android.view.ViewGroup import android.widget.ImageView import androidx.test.filters.SmallTest import com.android.systemui.Flags import com.android.systemui.SysuiTestCase import com.android.systemui.log.table.logcatTableLogBuffer import com.android.systemui.res.R import com.android.systemui.statusbar.StatusBarIconView.STATE_DOT import com.android.systemui.statusbar.StatusBarIconView.STATE_HIDDEN import com.android.systemui.statusbar.StatusBarIconView.STATE_ICON import com.android.systemui.statusbar.core.NewStatusBarIcons import com.android.systemui.statusbar.phone.StatusBarLocation import com.android.systemui.statusbar.pipeline.airplane.data.repository.FakeAirplaneModeRepository import com.android.systemui.statusbar.pipeline.airplane.domain.interactor.AirplaneModeInteractor Loading Loading @@ -80,6 +85,8 @@ class ModernStatusBarWifiViewTest : SysuiTestCase() { @Before fun setUp() { MockitoAnnotations.initMocks(this) // To ensure testable resources are being used. context.orCreateTestableResources testableLooper = TestableLooper.get(this) airplaneModeRepository = FakeAirplaneModeRepository() Loading Loading @@ -109,11 +116,7 @@ class ModernStatusBarWifiViewTest : SysuiTestCase() { scope, wifiConstants, ) viewModel = viewModelForLocation( viewModelCommon, StatusBarLocation.HOME, ) viewModel = viewModelForLocation(viewModelCommon, StatusBarLocation.HOME) } // Note: The following tests are more like integration tests, since they stand up a full Loading Loading @@ -254,6 +257,53 @@ class ModernStatusBarWifiViewTest : SysuiTestCase() { ViewUtils.detachView(view) } @Test @EnableFlags(NewStatusBarIcons.FLAG_NAME) @DisableFlags(Flags.FLAG_FIX_SHADE_HEADER_WRONG_ICON_SIZE) fun configChanged_dimensionsWithNewValues_flagDisabled_dimensionsNotUpdated() { val view = ModernStatusBarWifiView.constructAndBind(context, SLOT_NAME, viewModel) val iconView = view.getIconView() val group = view.getIconGroupView() val initialHeight = context.resources.getDimensionPixelSize(R.dimen.status_bar_wifi_signal_height_updated) val initialMargin = context.resources.getDimensionPixelSize( R.dimen.status_bar_wifi_signal_horizontal_margin ) overrideResource(R.dimen.status_bar_wifi_signal_height_updated, initialHeight + 10) overrideResource(R.dimen.status_bar_wifi_signal_horizontal_margin, initialMargin + 10) view.onConfigurationChanged(Configuration()) assertThat(iconView.layoutParams.height).isEqualTo(initialHeight) val newMarginLp = group.layoutParams as ViewGroup.MarginLayoutParams assertThat(newMarginLp.marginStart).isEqualTo(initialMargin) assertThat(newMarginLp.marginEnd).isEqualTo(initialMargin) } @Test @EnableFlags(NewStatusBarIcons.FLAG_NAME, Flags.FLAG_FIX_SHADE_HEADER_WRONG_ICON_SIZE) fun configChanged_dimensionsWithNewValues_flagEnabled_dimensionsUpdated() { val view = ModernStatusBarWifiView.constructAndBind(context, SLOT_NAME, viewModel) val iconView = view.getIconView() val group = view.getIconGroupView() val initialHeight = context.resources.getDimensionPixelSize(R.dimen.status_bar_wifi_signal_height_updated) val initialMargin = context.resources.getDimensionPixelSize( R.dimen.status_bar_wifi_signal_horizontal_margin ) overrideResource(R.dimen.status_bar_wifi_signal_height_updated, initialHeight + 10) overrideResource(R.dimen.status_bar_wifi_signal_horizontal_margin, initialMargin + 10) view.onConfigurationChanged(Configuration()) assertThat(iconView.layoutParams.height).isEqualTo(initialHeight + 10) val newMarginLp = group.layoutParams as ViewGroup.MarginLayoutParams assertThat(newMarginLp.marginStart).isEqualTo(initialMargin + 10) assertThat(newMarginLp.marginEnd).isEqualTo(initialMargin + 10) } private fun View.getIconGroupView(): View { return this.requireViewById(R.id.wifi_group) } Loading