[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
This commit is contained in:
@@ -76,7 +76,7 @@
|
||||
android:layout_height="match_parent"
|
||||
android:paddingEnd="@dimen/signal_cluster_battery_padding" />
|
||||
|
||||
<com.android.systemui.BatteryMeterView
|
||||
<com.android.systemui.battery.BatteryMeterView
|
||||
android:id="@+id/batteryRemainingIcon"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_width="0dp"
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
android:layout_height="match_parent"
|
||||
android:paddingEnd="@dimen/signal_cluster_battery_padding" />
|
||||
|
||||
<com.android.systemui.BatteryMeterView
|
||||
<com.android.systemui.battery.BatteryMeterView
|
||||
android:id="@+id/batteryRemainingIcon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"/>
|
||||
|
||||
<com.android.systemui.BatteryMeterView android:id="@+id/battery"
|
||||
<com.android.systemui.battery.BatteryMeterView android:id="@+id/battery"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_width="wrap_content"
|
||||
android:clipToPadding="false"
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.android.keyguard.dagger;
|
||||
|
||||
import com.android.keyguard.CarrierText;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.battery.BatteryMeterView;
|
||||
import com.android.systemui.statusbar.phone.KeyguardStatusBarView;
|
||||
|
||||
import dagger.Module;
|
||||
@@ -31,4 +32,11 @@ public abstract class KeyguardStatusBarViewModule {
|
||||
static CarrierText getCarrierText(KeyguardStatusBarView view) {
|
||||
return view.findViewById(R.id.keyguard_carrier_text);
|
||||
}
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
@KeyguardStatusBarViewScope
|
||||
static BatteryMeterView getBatteryMeterView(KeyguardStatusBarView view) {
|
||||
return view.findViewById(R.id.battery);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2013 The Android Open Source Project
|
||||
* Copyright (C) 2021 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.android.systemui;
|
||||
package com.android.systemui.battery;
|
||||
|
||||
import static android.provider.Settings.System.SHOW_BATTERY_PERCENT;
|
||||
|
||||
@@ -50,6 +50,9 @@ import android.widget.TextView;
|
||||
import androidx.annotation.StyleRes;
|
||||
|
||||
import com.android.settingslib.graph.ThemedBatteryDrawable;
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.DualToneHandler;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.animation.Interpolators;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.plugins.DarkIconDispatcher;
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (C) 2021 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.android.systemui.battery;
|
||||
|
||||
import com.android.systemui.util.ViewController;
|
||||
|
||||
import javax.inject.Inject;
|
||||
/** Controller for {@link BatteryMeterView}. **/
|
||||
public class BatteryMeterViewController extends ViewController<BatteryMeterView> {
|
||||
|
||||
@Inject
|
||||
public BatteryMeterViewController(BatteryMeterView view) {
|
||||
super(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onViewAttached() {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onViewDetached() {
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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<QuickStatusBarHeader
|
||||
private final PrivacyLogger mPrivacyLogger;
|
||||
private final PrivacyDialogController mPrivacyDialogController;
|
||||
private final QSExpansionPathInterpolator mQSExpansionPathInterpolator;
|
||||
private final BatteryMeterViewController mBatteryMeterViewController;
|
||||
private final FeatureFlags mFeatureFlags;
|
||||
|
||||
private boolean mListening;
|
||||
@@ -134,6 +136,7 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
|
||||
SysuiColorExtractor colorExtractor,
|
||||
PrivacyDialogController privacyDialogController,
|
||||
QSExpansionPathInterpolator qsExpansionPathInterpolator,
|
||||
BatteryMeterViewController batteryMeterViewController,
|
||||
FeatureFlags featureFlags) {
|
||||
super(view);
|
||||
mPrivacyItemController = privacyItemController;
|
||||
@@ -145,6 +148,7 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
|
||||
mPrivacyLogger = privacyLogger;
|
||||
mPrivacyDialogController = privacyDialogController;
|
||||
mQSExpansionPathInterpolator = qsExpansionPathInterpolator;
|
||||
mBatteryMeterViewController = batteryMeterViewController;
|
||||
mFeatureFlags = featureFlags;
|
||||
|
||||
mQSCarrierGroupController = qsCarrierGroupControllerBuilder
|
||||
@@ -169,6 +173,11 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
|
||||
mLocationSlot = getResources().getString(com.android.internal.R.string.status_bar_location);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onInit() {
|
||||
mBatteryMeterViewController.init();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onViewAttached() {
|
||||
mPrivacyChip.setOnClickListener(mOnClickListener);
|
||||
|
||||
@@ -23,6 +23,7 @@ import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.battery.BatteryMeterView;
|
||||
import com.android.systemui.dagger.qualifiers.RootView;
|
||||
import com.android.systemui.plugins.qs.QS;
|
||||
import com.android.systemui.qs.QSContainerImpl;
|
||||
@@ -107,6 +108,12 @@ public interface QSFragmentModule {
|
||||
return quickStatusBarHeader.findViewById(R.id.quick_qs_panel);
|
||||
}
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
static BatteryMeterView providesBatteryMeterView(QuickStatusBarHeader quickStatusBarHeader) {
|
||||
return quickStatusBarHeader.findViewById(R.id.batteryRemainingIcon);
|
||||
}
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
static QSFooterView providesQSFooterView(@RootView View view) {
|
||||
|
||||
@@ -42,9 +42,9 @@ import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.settingslib.Utils;
|
||||
import com.android.systemui.BatteryMeterView;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.animation.Interpolators;
|
||||
import com.android.systemui.battery.BatteryMeterView;
|
||||
import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
|
||||
@@ -26,6 +26,7 @@ import androidx.annotation.NonNull;
|
||||
|
||||
import com.android.keyguard.CarrierTextController;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.battery.BatteryMeterViewController;
|
||||
import com.android.systemui.statusbar.events.SystemStatusAnimationCallback;
|
||||
import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler;
|
||||
import com.android.systemui.statusbar.policy.BatteryController;
|
||||
@@ -50,6 +51,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
|
||||
private final UserInfoController mUserInfoController;
|
||||
private final StatusBarIconController mStatusBarIconController;
|
||||
private final StatusBarIconController.TintedIconManager.Factory mTintedIconManagerFactory;
|
||||
private final BatteryMeterViewController mBatteryMeterViewController;
|
||||
|
||||
private final ConfigurationController.ConfigurationListener mConfigurationListener =
|
||||
new ConfigurationController.ConfigurationListener() {
|
||||
@@ -115,7 +117,8 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
|
||||
BatteryController batteryController,
|
||||
UserInfoController userInfoController,
|
||||
StatusBarIconController statusBarIconController,
|
||||
StatusBarIconController.TintedIconManager.Factory tintedIconManagerFactory) {
|
||||
StatusBarIconController.TintedIconManager.Factory tintedIconManagerFactory,
|
||||
BatteryMeterViewController batteryMeterViewController) {
|
||||
super(view);
|
||||
mCarrierTextController = carrierTextController;
|
||||
mConfigurationController = configurationController;
|
||||
@@ -124,6 +127,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
|
||||
mUserInfoController = userInfoController;
|
||||
mStatusBarIconController = statusBarIconController;
|
||||
mTintedIconManagerFactory = tintedIconManagerFactory;
|
||||
mBatteryMeterViewController = batteryMeterViewController;
|
||||
|
||||
Resources r = getResources();
|
||||
mBlockedIcons = Collections.unmodifiableList(Arrays.asList(
|
||||
@@ -136,6 +140,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
|
||||
protected void onInit() {
|
||||
super.onInit();
|
||||
mCarrierTextController.init();
|
||||
mBatteryMeterViewController.init();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -17,8 +17,9 @@
|
||||
package com.android.systemui.statusbar.phone
|
||||
|
||||
import android.view.View
|
||||
import com.android.systemui.BatteryMeterView
|
||||
import com.android.systemui.R
|
||||
import com.android.systemui.battery.BatteryMeterView
|
||||
import com.android.systemui.battery.BatteryMeterViewController
|
||||
import com.android.systemui.qs.carrier.QSCarrierGroupController
|
||||
import com.android.systemui.flags.FeatureFlags
|
||||
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent.StatusBarScope
|
||||
@@ -31,7 +32,8 @@ class SplitShadeHeaderController @Inject constructor(
|
||||
@Named(SPLIT_SHADE_HEADER) private val statusBar: View,
|
||||
private val statusBarIconController: StatusBarIconController,
|
||||
qsCarrierGroupControllerBuilder: QSCarrierGroupController.Builder,
|
||||
featureFlags: FeatureFlags
|
||||
featureFlags: FeatureFlags,
|
||||
batteryMeterViewController: BatteryMeterViewController
|
||||
) {
|
||||
|
||||
// TODO(b/194178072) Handle RSSI hiding when multi carrier
|
||||
@@ -56,6 +58,7 @@ class SplitShadeHeaderController @Inject constructor(
|
||||
// battery settings same as in QS icons
|
||||
batteryIcon.setIgnoreTunerUpdates(true)
|
||||
batteryIcon.setPercentShowMode(BatteryMeterView.MODE_ESTIMATE)
|
||||
batteryMeterViewController.init()
|
||||
|
||||
val iconContainer: StatusIconContainer = statusBar.findViewById(R.id.statusIcons)
|
||||
iconManager = StatusBarIconController.IconManager(iconContainer, featureFlags)
|
||||
|
||||
@@ -136,6 +136,7 @@ import com.android.systemui.SystemUI;
|
||||
import com.android.systemui.animation.ActivityLaunchAnimator;
|
||||
import com.android.systemui.animation.DelegateLaunchAnimatorController;
|
||||
import com.android.systemui.assist.AssistManager;
|
||||
import com.android.systemui.battery.BatteryMeterViewController;
|
||||
import com.android.systemui.biometrics.AuthRippleController;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.camera.CameraIntents;
|
||||
@@ -773,6 +774,7 @@ public class StatusBar extends SystemUI implements
|
||||
|
||||
private final ActivityIntentHelper mActivityIntentHelper;
|
||||
private NotificationStackScrollLayoutController mStackScrollerController;
|
||||
private BatteryMeterViewController mBatteryMeterViewController;
|
||||
|
||||
private final ColorExtractor.OnColorsChangedListener mOnColorsChangedListener =
|
||||
(extractor, which) -> 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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user