diff --git a/packages/SystemUI/res/layout/quick_qs_status_icons.xml b/packages/SystemUI/res/layout/quick_qs_status_icons.xml index 74c39a335f4d3..5cac39f723e11 100644 --- a/packages/SystemUI/res/layout/quick_qs_status_icons.xml +++ b/packages/SystemUI/res/layout/quick_qs_status_icons.xml @@ -76,7 +76,7 @@ android:layout_height="match_parent" android:paddingEnd="@dimen/signal_cluster_battery_padding" /> - - - { + + @Inject + public BatteryMeterViewController(BatteryMeterView view) { + super(view); + } + + @Override + protected void onViewAttached() { + } + + @Override + protected void onViewDetached() { + } +} diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java index 34fc2c0515a5d..6bf9eb4085186 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java @@ -35,8 +35,8 @@ import android.widget.Space; import androidx.annotation.NonNull; import com.android.settingslib.Utils; -import com.android.systemui.BatteryMeterView; import com.android.systemui.R; +import com.android.systemui.battery.BatteryMeterView; import com.android.systemui.qs.QSDetail.Callback; import com.android.systemui.statusbar.phone.StatusBarIconController.TintedIconManager; import com.android.systemui.statusbar.phone.StatusBarWindowView; diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeaderController.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeaderController.java index 54876da919810..73d1489d08e0f 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeaderController.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeaderController.java @@ -25,6 +25,7 @@ import androidx.annotation.NonNull; import com.android.internal.colorextraction.ColorExtractor; import com.android.internal.logging.UiEventLogger; import com.android.systemui.R; +import com.android.systemui.battery.BatteryMeterViewController; import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.demomode.DemoMode; import com.android.systemui.demomode.DemoModeController; @@ -69,6 +70,7 @@ class QuickStatusBarHeaderController extends ViewController updateTheme(); @@ -1205,6 +1207,11 @@ public class StatusBar extends SystemUI implements mStatusBarView.setScrimController(mScrimController); mStatusBarView.setExpansionChangedListeners(mExpansionChangedListeners); + mBatteryMeterViewController = new BatteryMeterViewController( + mStatusBarView.findViewById(R.id.battery) + ); + mBatteryMeterViewController.init(); + // CollapsedStatusBarFragment re-inflated PhoneStatusBarView and both of // mStatusBarView.mExpanded and mStatusBarView.mBouncerShowing are false. // PhoneStatusBarView's new instance will set to be gone in diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java index d691dca1c898c..0e83eda2734a2 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java @@ -21,6 +21,7 @@ import android.view.View; import com.android.keyguard.LockIconView; import com.android.systemui.R; +import com.android.systemui.battery.BatteryMeterView; import com.android.systemui.biometrics.AuthRippleView; import com.android.systemui.statusbar.phone.NotificationPanelView; import com.android.systemui.statusbar.phone.NotificationShadeWindowView; @@ -70,6 +71,13 @@ public abstract class StatusBarViewModule { return notificationShadeWindowView.findViewById(R.id.split_shade_status_bar); } + /** */ + @Provides + @StatusBarComponent.StatusBarScope + static BatteryMeterView getBatteryMeterView(@Named(SPLIT_SHADE_HEADER) View view) { + return view.findViewById(R.id.batteryRemainingIcon); + } + /** */ @Provides @StatusBarComponent.StatusBarScope diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QuickStatusBarHeaderControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/QuickStatusBarHeaderControllerTest.kt index 7d5dba88a9b67..b3e00f826db95 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/QuickStatusBarHeaderControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QuickStatusBarHeaderControllerTest.kt @@ -23,6 +23,7 @@ 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.battery.BatteryMeterViewController import com.android.systemui.colorextraction.SysuiColorExtractor import com.android.systemui.demomode.DemoModeController import com.android.systemui.flags.FeatureFlags @@ -87,6 +88,8 @@ class QuickStatusBarHeaderControllerTest : SysuiTestCase() { @Mock private lateinit var privacyDialogController: PrivacyDialogController @Mock + private lateinit var batteryMeterViewController: BatteryMeterViewController + @Mock private lateinit var clock: Clock @Mock private lateinit var mockView: View @@ -133,6 +136,7 @@ class QuickStatusBarHeaderControllerTest : SysuiTestCase() { colorExtractor, privacyDialogController, qsExpansionPathInterpolator, + batteryMeterViewController, featureFlags ) } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java index 0696369b8bbd1..9cc762c8302e6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java @@ -28,6 +28,7 @@ import androidx.test.filters.SmallTest; import com.android.keyguard.CarrierTextController; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; +import com.android.systemui.battery.BatteryMeterViewController; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler; import com.android.systemui.statusbar.policy.BatteryController; @@ -59,6 +60,8 @@ public class KeyguardStatusBarViewControllerTest extends SysuiTestCase { private StatusBarIconController mStatusBarIconController; @Mock private FeatureFlags mFeatureFlags; + @Mock + private BatteryMeterViewController mBatteryMeterViewController; private KeyguardStatusBarViewController mController; @@ -78,7 +81,8 @@ public class KeyguardStatusBarViewControllerTest extends SysuiTestCase { mBatteryController, mUserInfoController, mStatusBarIconController, - new StatusBarIconController.TintedIconManager.Factory(mFeatureFlags) + new StatusBarIconController.TintedIconManager.Factory(mFeatureFlags), + mBatteryMeterViewController ); }