Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1a04915c authored by Caitlin Shkuratov's avatar Caitlin Shkuratov
Browse files

[Central Surfaces] Make shade BatteryMeterView(&Controller) a singleton.

Bug: 277762009
Test: manual: verify battery icon in shade responds to battery changes
like plug & unplug

Change-Id: Ieed660792f474c2fb01fe3ddb60b0a26847f442b
parent 26d95db9
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
@@ -16,18 +16,28 @@

package com.android.systemui.shade

import android.content.ContentResolver
import android.os.Handler
import android.view.LayoutInflater
import android.view.ViewStub
import androidx.constraintlayout.motion.widget.MotionLayout
import com.android.keyguard.LockIconView
import com.android.systemui.CoreStartable
import com.android.systemui.R
import com.android.systemui.battery.BatteryMeterView
import com.android.systemui.battery.BatteryMeterViewController
import com.android.systemui.biometrics.AuthRippleController
import com.android.systemui.biometrics.AuthRippleView
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.settings.UserTracker
import com.android.systemui.statusbar.LightRevealScrim
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout
import com.android.systemui.statusbar.phone.TapAgainView
import com.android.systemui.statusbar.policy.BatteryController
import com.android.systemui.statusbar.policy.ConfigurationController
import com.android.systemui.tuner.TunerService
import dagger.Binds
import dagger.Module
import dagger.Provides
@@ -133,5 +143,38 @@ abstract class ShadeModule {
        fun providesCombinedShadeHeadersConstraintManager(): CombinedShadeHeadersConstraintManager {
            return CombinedShadeHeadersConstraintManagerImpl
        }

        // TODO(b/277762009): Only allow this view's controller to inject the view. See above.
        @Provides
        @SysUISingleton
        @Named(SHADE_HEADER)
        fun providesBatteryMeterView(@Named(SHADE_HEADER) view: MotionLayout): BatteryMeterView {
            return view.findViewById(R.id.batteryRemainingIcon)
        }

        @Provides
        @SysUISingleton
        @Named(SHADE_HEADER)
        fun providesBatteryMeterViewController(
            @Named(SHADE_HEADER) batteryMeterView: BatteryMeterView,
            userTracker: UserTracker,
            configurationController: ConfigurationController,
            tunerService: TunerService,
            @Main mainHandler: Handler,
            contentResolver: ContentResolver,
            featureFlags: FeatureFlags,
            batteryController: BatteryController,
        ): BatteryMeterViewController {
            return BatteryMeterViewController(
                batteryMeterView,
                userTracker,
                configurationController,
                tunerService,
                mainHandler,
                contentResolver,
                featureFlags,
                batteryController,
            )
        }
    }
}
+0 −41
Original line number Diff line number Diff line
@@ -18,23 +18,18 @@ package com.android.systemui.statusbar.phone.dagger;

import static com.android.systemui.shade.ShadeModule.SHADE_HEADER;

import android.content.ContentResolver;
import android.os.Handler;
import android.view.LayoutInflater;

import androidx.constraintlayout.motion.widget.MotionLayout;

import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.systemui.R;
import com.android.systemui.battery.BatteryMeterView;
import com.android.systemui.battery.BatteryMeterViewController;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.flags.Flags;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.privacy.OngoingPrivacyChip;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.shade.NotificationPanelView;
import com.android.systemui.shade.NotificationPanelViewController;
import com.android.systemui.shade.NotificationShadeWindowView;
@@ -64,11 +59,8 @@ import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment;
import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragmentLogger;
import com.android.systemui.statusbar.phone.fragment.dagger.StatusBarFragmentComponent;
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.window.StatusBarWindowStateController;
import com.android.systemui.tuner.TunerService;
import com.android.systemui.util.CarrierConfigTracker;
import com.android.systemui.util.settings.SecureSettings;

@@ -150,39 +142,6 @@ public abstract class StatusBarViewModule {
        return header.findViewById(R.id.statusIcons);
    }

    /** */
    @Provides
    @CentralSurfacesComponent.CentralSurfacesScope
    @Named(SHADE_HEADER)
    static BatteryMeterView getBatteryMeterView(@Named(SHADE_HEADER) MotionLayout view) {
        return view.findViewById(R.id.batteryRemainingIcon);
    }

    @Provides
    @CentralSurfacesComponent.CentralSurfacesScope
    @Named(SHADE_HEADER)
    static BatteryMeterViewController getBatteryMeterViewController(
            @Named(SHADE_HEADER) BatteryMeterView batteryMeterView,
            UserTracker userTracker,
            ConfigurationController configurationController,
            TunerService tunerService,
            @Main Handler mainHandler,
            ContentResolver contentResolver,
            FeatureFlags featureFlags,
            BatteryController batteryController
    ) {
        return new BatteryMeterViewController(
                batteryMeterView,
                userTracker,
                configurationController,
                tunerService,
                mainHandler,
                contentResolver,
                featureFlags,
                batteryController);

    }

    /** */
    @Provides
    @CentralSurfacesComponent.CentralSurfacesScope