From 50f3e9ccd8cd18a4b3258325b8c6e21d269aedb9 Mon Sep 17 00:00:00 2001 From: Caitlin Cassidy Date: Tue, 20 Jul 2021 17:17:52 +0000 Subject: [PATCH] [Dagger] Add BatteryMeterViewController. Future CLs will move Dependency.get calls from BatteryMeterView to this controller. BatteryMeterView is used in QuickStatusBarHeader, KeyguardStatusBarView, PhoneStatusBarView, and SplitShadeHeaderController, so BatteryMeterViewController is added to the controllers for those views. Bug: 138786270 Test: atest and manual Change-Id: I4d23a32d4ecda4f4327552b3703e9893ad544bdb Merged-In: I4d23a32d4ecda4f4327552b3703e9893ad544bdb --- .../res/layout/quick_qs_status_icons.xml | 2 +- .../res/layout/split_shade_header.xml | 2 +- packages/SystemUI/res/layout/system_icons.xml | 2 +- .../dagger/KeyguardStatusBarViewModule.java | 8 +++++ .../{ => battery}/BatteryMeterView.java | 7 ++-- .../battery/BatteryMeterViewController.java | 36 +++++++++++++++++++ .../systemui/qs/QuickStatusBarHeader.java | 2 +- .../qs/QuickStatusBarHeaderController.java | 9 +++++ .../systemui/qs/dagger/QSFragmentModule.java | 7 ++++ .../phone/KeyguardStatusBarView.java | 2 +- .../KeyguardStatusBarViewController.java | 7 +++- .../phone/SplitShadeHeaderController.kt | 7 ++-- .../systemui/statusbar/phone/StatusBar.java | 7 ++++ .../phone/dagger/StatusBarViewModule.java | 8 +++++ .../qs/QuickStatusBarHeaderControllerTest.kt | 4 +++ .../KeyguardStatusBarViewControllerTest.java | 6 +++- 16 files changed, 105 insertions(+), 11 deletions(-) rename packages/SystemUI/src/com/android/systemui/{ => battery}/BatteryMeterView.java (98%) create mode 100644 packages/SystemUI/src/com/android/systemui/battery/BatteryMeterViewController.java 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 ); }