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

Commit f1aaea75 authored by Alex Stetson's avatar Alex Stetson Committed by Android (Google) Code Review
Browse files

Merge "Replace getCurrentUser() calls with UserTracker" into tm-qpr-dev

parents ad81dbda b8d6c0a9
Loading
Loading
Loading
Loading
+9 −17
Original line number Original line Diff line number Diff line
@@ -145,6 +145,7 @@ import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.log.SessionTracker;
import com.android.systemui.log.SessionTracker;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.shared.system.TaskStackChangeListener;
import com.android.systemui.shared.system.TaskStackChangeListener;
import com.android.systemui.shared.system.TaskStackChangeListeners;
import com.android.systemui.shared.system.TaskStackChangeListeners;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.StatusBarState;
@@ -279,6 +280,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
    }
    }


    private final Context mContext;
    private final Context mContext;
    private final UserTracker mUserTracker;
    private final KeyguardUpdateMonitorLogger mLogger;
    private final KeyguardUpdateMonitorLogger mLogger;
    private final boolean mIsPrimaryUser;
    private final boolean mIsPrimaryUser;
    private final AuthController mAuthController;
    private final AuthController mAuthController;
@@ -884,13 +886,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
            mHandler.removeCallbacks(mFpCancelNotReceived);
            mHandler.removeCallbacks(mFpCancelNotReceived);
        }
        }
        try {
        try {
            final int userId;
            final int userId = mUserTracker.getUserId();
            try {
                userId = ActivityManager.getService().getCurrentUser().id;
            } catch (RemoteException e) {
                mLogger.logException(e, "Failed to get current user id");
                return;
            }
            if (userId != authUserId) {
            if (userId != authUserId) {
                mLogger.logFingerprintAuthForWrongUser(authUserId);
                mLogger.logFingerprintAuthForWrongUser(authUserId);
                return;
                return;
@@ -1108,13 +1104,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
                mLogger.d("Aborted successful auth because device is going to sleep.");
                mLogger.d("Aborted successful auth because device is going to sleep.");
                return;
                return;
            }
            }
            final int userId;
            final int userId = mUserTracker.getUserId();
            try {
                userId = ActivityManager.getService().getCurrentUser().id;
            } catch (RemoteException e) {
                mLogger.logException(e, "Failed to get current user id");
                return;
            }
            if (userId != authUserId) {
            if (userId != authUserId) {
                mLogger.logFaceAuthForWrongUser(authUserId);
                mLogger.logFaceAuthForWrongUser(authUserId);
                return;
                return;
@@ -1964,6 +1954,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
    @Inject
    @Inject
    protected KeyguardUpdateMonitor(
    protected KeyguardUpdateMonitor(
            Context context,
            Context context,
            UserTracker userTracker,
            @Main Looper mainLooper,
            @Main Looper mainLooper,
            BroadcastDispatcher broadcastDispatcher,
            BroadcastDispatcher broadcastDispatcher,
            SecureSettings secureSettings,
            SecureSettings secureSettings,
@@ -1996,6 +1987,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
            FaceWakeUpTriggersConfig faceWakeUpTriggersConfig) {
            FaceWakeUpTriggersConfig faceWakeUpTriggersConfig) {
        mContext = context;
        mContext = context;
        mSubscriptionManager = subscriptionManager;
        mSubscriptionManager = subscriptionManager;
        mUserTracker = userTracker;
        mTelephonyListenerManager = telephonyListenerManager;
        mTelephonyListenerManager = telephonyListenerManager;
        mDeviceProvisioned = isDeviceProvisionedInSettingsDb();
        mDeviceProvisioned = isDeviceProvisionedInSettingsDb();
        mStrongAuthTracker = new StrongAuthTracker(context, this::notifyStrongAuthStateChanged,
        mStrongAuthTracker = new StrongAuthTracker(context, this::notifyStrongAuthStateChanged,
@@ -2227,7 +2219,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab


        TaskStackChangeListeners.getInstance().registerTaskStackListener(mTaskStackListener);
        TaskStackChangeListeners.getInstance().registerTaskStackListener(mTaskStackListener);
        mIsPrimaryUser = mUserManager.isPrimaryUser();
        mIsPrimaryUser = mUserManager.isPrimaryUser();
        int user = ActivityManager.getCurrentUser();
        int user = mUserTracker.getUserId();
        mUserIsUnlocked.put(user, mUserManager.isUserUnlocked(user));
        mUserIsUnlocked.put(user, mUserManager.isUserUnlocked(user));
        mLogoutEnabled = mDevicePolicyManager.isLogoutEnabled();
        mLogoutEnabled = mDevicePolicyManager.isLogoutEnabled();
        updateSecondaryLockscreenRequirement(user);
        updateSecondaryLockscreenRequirement(user);
@@ -3853,7 +3845,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
            pw.println("    " + subId + "=" + mServiceStates.get(subId));
            pw.println("    " + subId + "=" + mServiceStates.get(subId));
        }
        }
        if (mFpm != null && mFpm.isHardwareDetected()) {
        if (mFpm != null && mFpm.isHardwareDetected()) {
            final int userId = ActivityManager.getCurrentUser();
            final int userId = mUserTracker.getUserId();
            final int strongAuthFlags = mStrongAuthTracker.getStrongAuthForUser(userId);
            final int strongAuthFlags = mStrongAuthTracker.getStrongAuthForUser(userId);
            BiometricAuthenticated fingerprint = mUserFingerprintAuthenticated.get(userId);
            BiometricAuthenticated fingerprint = mUserFingerprintAuthenticated.get(userId);
            pw.println("  Fingerprint state (user=" + userId + ")");
            pw.println("  Fingerprint state (user=" + userId + ")");
@@ -3891,7 +3883,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
            }
            }
        }
        }
        if (mFaceManager != null && mFaceManager.isHardwareDetected()) {
        if (mFaceManager != null && mFaceManager.isHardwareDetected()) {
            final int userId = ActivityManager.getCurrentUser();
            final int userId = mUserTracker.getUserId();
            final int strongAuthFlags = mStrongAuthTracker.getStrongAuthForUser(userId);
            final int strongAuthFlags = mStrongAuthTracker.getStrongAuthForUser(userId);
            BiometricAuthenticated face = mUserFaceAuthenticated.get(userId);
            BiometricAuthenticated face = mUserFaceAuthenticated.get(userId);
            pw.println("  Face authentication state (user=" + userId + ")");
            pw.println("  Face authentication state (user=" + userId + ")");
+24 −14
Original line number Original line Diff line number Diff line
@@ -29,17 +29,17 @@ import android.util.ArrayMap;
import android.util.DisplayMetrics;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.LayoutInflater;


import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import androidx.annotation.VisibleForTesting;
import androidx.lifecycle.Observer;


import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dock.DockManager;
import com.android.systemui.dock.DockManager;
import com.android.systemui.dock.DockManager.DockEventListener;
import com.android.systemui.dock.DockManager.DockEventListener;
import com.android.systemui.plugins.ClockPlugin;
import com.android.systemui.plugins.ClockPlugin;
import com.android.systemui.plugins.PluginListener;
import com.android.systemui.plugins.PluginListener;
import com.android.systemui.settings.CurrentUserObservable;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.shared.plugins.PluginManager;
import com.android.systemui.shared.plugins.PluginManager;


import java.util.ArrayList;
import java.util.ArrayList;
@@ -47,6 +47,7 @@ import java.util.Collection;
import java.util.List;
import java.util.List;
import java.util.Map;
import java.util.Map;
import java.util.Objects;
import java.util.Objects;
import java.util.concurrent.Executor;
import java.util.function.Supplier;
import java.util.function.Supplier;


import javax.inject.Inject;
import javax.inject.Inject;
@@ -69,7 +70,8 @@ public final class ClockManager {
    private final ContentResolver mContentResolver;
    private final ContentResolver mContentResolver;
    private final SettingsWrapper mSettingsWrapper;
    private final SettingsWrapper mSettingsWrapper;
    private final Handler mMainHandler = new Handler(Looper.getMainLooper());
    private final Handler mMainHandler = new Handler(Looper.getMainLooper());
    private final CurrentUserObservable mCurrentUserObservable;
    private final UserTracker mUserTracker;
    private final Executor mMainExecutor;


    /**
    /**
     * Observe settings changes to know when to switch the clock face.
     * Observe settings changes to know when to switch the clock face.
@@ -80,7 +82,7 @@ public final class ClockManager {
                public void onChange(boolean selfChange, Collection<Uri> uris,
                public void onChange(boolean selfChange, Collection<Uri> uris,
                        int flags, int userId) {
                        int flags, int userId) {
                    if (Objects.equals(userId,
                    if (Objects.equals(userId,
                            mCurrentUserObservable.getCurrentUser().getValue())) {
                            mUserTracker.getUserId())) {
                        reload();
                        reload();
                    }
                    }
                }
                }
@@ -89,7 +91,13 @@ public final class ClockManager {
    /**
    /**
     * Observe user changes and react by potentially loading the custom clock for the new user.
     * Observe user changes and react by potentially loading the custom clock for the new user.
     */
     */
    private final Observer<Integer> mCurrentUserObserver = (newUserId) -> reload();
    private final UserTracker.Callback mUserChangedCallback =
            new UserTracker.Callback() {
                @Override
                public void onUserChanged(int newUser, @NonNull Context userContext) {
                    reload();
                }
            };


    private final PluginManager mPluginManager;
    private final PluginManager mPluginManager;
    @Nullable private final DockManager mDockManager;
    @Nullable private final DockManager mDockManager;
@@ -129,22 +137,24 @@ public final class ClockManager {
    @Inject
    @Inject
    public ClockManager(Context context, LayoutInflater layoutInflater,
    public ClockManager(Context context, LayoutInflater layoutInflater,
            PluginManager pluginManager, SysuiColorExtractor colorExtractor,
            PluginManager pluginManager, SysuiColorExtractor colorExtractor,
            @Nullable DockManager dockManager, BroadcastDispatcher broadcastDispatcher) {
            @Nullable DockManager dockManager, UserTracker userTracker,
            @Main Executor mainExecutor) {
        this(context, layoutInflater, pluginManager, colorExtractor,
        this(context, layoutInflater, pluginManager, colorExtractor,
                context.getContentResolver(), new CurrentUserObservable(broadcastDispatcher),
                context.getContentResolver(), userTracker, mainExecutor,
                new SettingsWrapper(context.getContentResolver()), dockManager);
                new SettingsWrapper(context.getContentResolver()), dockManager);
    }
    }


    @VisibleForTesting
    @VisibleForTesting
    ClockManager(Context context, LayoutInflater layoutInflater,
    ClockManager(Context context, LayoutInflater layoutInflater,
            PluginManager pluginManager, SysuiColorExtractor colorExtractor,
            PluginManager pluginManager, SysuiColorExtractor colorExtractor,
            ContentResolver contentResolver, CurrentUserObservable currentUserObservable,
            ContentResolver contentResolver, UserTracker userTracker, Executor mainExecutor,
            SettingsWrapper settingsWrapper, DockManager dockManager) {
            SettingsWrapper settingsWrapper, DockManager dockManager) {
        mContext = context;
        mContext = context;
        mPluginManager = pluginManager;
        mPluginManager = pluginManager;
        mContentResolver = contentResolver;
        mContentResolver = contentResolver;
        mSettingsWrapper = settingsWrapper;
        mSettingsWrapper = settingsWrapper;
        mCurrentUserObservable = currentUserObservable;
        mUserTracker = userTracker;
        mMainExecutor = mainExecutor;
        mDockManager = dockManager;
        mDockManager = dockManager;
        mPreviewClocks = new AvailableClocks();
        mPreviewClocks = new AvailableClocks();


@@ -226,7 +236,7 @@ public final class ClockManager {
        mContentResolver.registerContentObserver(
        mContentResolver.registerContentObserver(
                Settings.Secure.getUriFor(Settings.Secure.DOCKED_CLOCK_FACE),
                Settings.Secure.getUriFor(Settings.Secure.DOCKED_CLOCK_FACE),
                false, mContentObserver, UserHandle.USER_ALL);
                false, mContentObserver, UserHandle.USER_ALL);
        mCurrentUserObservable.getCurrentUser().observeForever(mCurrentUserObserver);
        mUserTracker.addCallback(mUserChangedCallback, mMainExecutor);
        if (mDockManager != null) {
        if (mDockManager != null) {
            mDockManager.addListener(mDockEventListener);
            mDockManager.addListener(mDockEventListener);
        }
        }
@@ -235,7 +245,7 @@ public final class ClockManager {
    private void unregister() {
    private void unregister() {
        mPluginManager.removePluginListener(mPreviewClocks);
        mPluginManager.removePluginListener(mPreviewClocks);
        mContentResolver.unregisterContentObserver(mContentObserver);
        mContentResolver.unregisterContentObserver(mContentObserver);
        mCurrentUserObservable.getCurrentUser().removeObserver(mCurrentUserObserver);
        mUserTracker.removeCallback(mUserChangedCallback);
        if (mDockManager != null) {
        if (mDockManager != null) {
            mDockManager.removeListener(mDockEventListener);
            mDockManager.removeListener(mDockEventListener);
        }
        }
@@ -363,7 +373,7 @@ public final class ClockManager {
            ClockPlugin plugin = null;
            ClockPlugin plugin = null;
            if (ClockManager.this.isDocked()) {
            if (ClockManager.this.isDocked()) {
                final String name = mSettingsWrapper.getDockedClockFace(
                final String name = mSettingsWrapper.getDockedClockFace(
                        mCurrentUserObservable.getCurrentUser().getValue());
                        mUserTracker.getUserId());
                if (name != null) {
                if (name != null) {
                    plugin = mClocks.get(name);
                    plugin = mClocks.get(name);
                    if (plugin != null) {
                    if (plugin != null) {
@@ -372,7 +382,7 @@ public final class ClockManager {
                }
                }
            }
            }
            final String name = mSettingsWrapper.getLockScreenCustomClockFace(
            final String name = mSettingsWrapper.getLockScreenCustomClockFace(
                    mCurrentUserObservable.getCurrentUser().getValue());
                    mUserTracker.getUserId());
            if (name != null) {
            if (name != null) {
                plugin = mClocks.get(name);
                plugin = mClocks.get(name);
            }
            }
+3 −0
Original line number Original line Diff line number Diff line
@@ -70,6 +70,7 @@ import com.android.systemui.qs.ReduceBrightColorsController;
import com.android.systemui.qs.tiles.dialog.InternetDialogFactory;
import com.android.systemui.qs.tiles.dialog.InternetDialogFactory;
import com.android.systemui.recents.OverviewProxyService;
import com.android.systemui.recents.OverviewProxyService;
import com.android.systemui.screenrecord.RecordingController;
import com.android.systemui.screenrecord.RecordingController;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.shade.ShadeController;
import com.android.systemui.shade.ShadeController;
import com.android.systemui.shared.plugins.PluginManager;
import com.android.systemui.shared.plugins.PluginManager;
import com.android.systemui.shared.system.ActivityManagerWrapper;
import com.android.systemui.shared.system.ActivityManagerWrapper;
@@ -357,6 +358,7 @@ public class Dependency {
    @Inject Lazy<GroupExpansionManager> mGroupExpansionManagerLazy;
    @Inject Lazy<GroupExpansionManager> mGroupExpansionManagerLazy;
    @Inject Lazy<SystemUIDialogManager> mSystemUIDialogManagerLazy;
    @Inject Lazy<SystemUIDialogManager> mSystemUIDialogManagerLazy;
    @Inject Lazy<DialogLaunchAnimator> mDialogLaunchAnimatorLazy;
    @Inject Lazy<DialogLaunchAnimator> mDialogLaunchAnimatorLazy;
    @Inject Lazy<UserTracker> mUserTrackerLazy;


    @Inject
    @Inject
    public Dependency() {
    public Dependency() {
@@ -564,6 +566,7 @@ public class Dependency {
        mProviders.put(GroupExpansionManager.class, mGroupExpansionManagerLazy::get);
        mProviders.put(GroupExpansionManager.class, mGroupExpansionManagerLazy::get);
        mProviders.put(SystemUIDialogManager.class, mSystemUIDialogManagerLazy::get);
        mProviders.put(SystemUIDialogManager.class, mSystemUIDialogManagerLazy::get);
        mProviders.put(DialogLaunchAnimator.class, mDialogLaunchAnimatorLazy::get);
        mProviders.put(DialogLaunchAnimator.class, mDialogLaunchAnimatorLazy::get);
        mProviders.put(UserTracker.class, mUserTrackerLazy::get);


        Dependency.setInstance(this);
        Dependency.setInstance(this);
    }
    }
+1 −2
Original line number Original line Diff line number Diff line
@@ -26,7 +26,6 @@ import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_M
import android.annotation.IdRes;
import android.annotation.IdRes;
import android.annotation.NonNull;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.Nullable;
import android.app.ActivityManager;
import android.content.BroadcastReceiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Context;
import android.content.Intent;
import android.content.Intent;
@@ -901,7 +900,7 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable {
    private final BroadcastReceiver mUserSwitchIntentReceiver = new BroadcastReceiver() {
    private final BroadcastReceiver mUserSwitchIntentReceiver = new BroadcastReceiver() {
        @Override
        @Override
        public void onReceive(Context context, Intent intent) {
        public void onReceive(Context context, Intent intent) {
            int newUserId = ActivityManager.getCurrentUser();
            int newUserId = mUserTracker.getUserId();
            if (DEBUG) {
            if (DEBUG) {
                Log.d(TAG, "UserSwitched newUserId=" + newUserId);
                Log.d(TAG, "UserSwitched newUserId=" + newUserId);
            }
            }
+24 −17
Original line number Original line Diff line number Diff line
@@ -17,21 +17,23 @@ package com.android.systemui.battery;


import static android.provider.Settings.System.SHOW_BATTERY_PERCENT;
import static android.provider.Settings.System.SHOW_BATTERY_PERCENT;


import android.app.ActivityManager;
import android.content.ContentResolver;
import android.content.ContentResolver;
import android.content.Context;
import android.database.ContentObserver;
import android.database.ContentObserver;
import android.net.Uri;
import android.net.Uri;
import android.os.Handler;
import android.os.Handler;
import android.os.HandlerExecutor;
import android.provider.Settings;
import android.provider.Settings;
import android.text.TextUtils;
import android.text.TextUtils;
import android.util.ArraySet;
import android.util.ArraySet;
import android.view.View;
import android.view.View;


import com.android.systemui.broadcast.BroadcastDispatcher;
import androidx.annotation.NonNull;

import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.flags.Flags;
import com.android.systemui.flags.Flags;
import com.android.systemui.settings.CurrentUserTracker;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.ConfigurationController;
@@ -44,12 +46,13 @@ import javax.inject.Inject;
public class BatteryMeterViewController extends ViewController<BatteryMeterView> {
public class BatteryMeterViewController extends ViewController<BatteryMeterView> {
    private final ConfigurationController mConfigurationController;
    private final ConfigurationController mConfigurationController;
    private final TunerService mTunerService;
    private final TunerService mTunerService;
    private final Handler mMainHandler;
    private final ContentResolver mContentResolver;
    private final ContentResolver mContentResolver;
    private final BatteryController mBatteryController;
    private final BatteryController mBatteryController;


    private final String mSlotBattery;
    private final String mSlotBattery;
    private final SettingObserver mSettingObserver;
    private final SettingObserver mSettingObserver;
    private final CurrentUserTracker mCurrentUserTracker;
    private final UserTracker mUserTracker;


    private final ConfigurationController.ConfigurationListener mConfigurationListener =
    private final ConfigurationController.ConfigurationListener mConfigurationListener =
            new ConfigurationController.ConfigurationListener() {
            new ConfigurationController.ConfigurationListener() {
@@ -93,6 +96,16 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
                }
                }
            };
            };


    private final UserTracker.Callback mUserChangedCallback =
            new UserTracker.Callback() {
                @Override
                public void onUserChanged(int newUser, @NonNull Context userContext) {
                    mContentResolver.unregisterContentObserver(mSettingObserver);
                    registerShowBatteryPercentObserver(newUser);
                    mView.updateShowPercent();
                }
            };

    // Some places may need to show the battery conditionally, and not obey the tuner
    // Some places may need to show the battery conditionally, and not obey the tuner
    private boolean mIgnoreTunerUpdates;
    private boolean mIgnoreTunerUpdates;
    private boolean mIsSubscribedForTunerUpdates;
    private boolean mIsSubscribedForTunerUpdates;
@@ -100,16 +113,18 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
    @Inject
    @Inject
    public BatteryMeterViewController(
    public BatteryMeterViewController(
            BatteryMeterView view,
            BatteryMeterView view,
            UserTracker userTracker,
            ConfigurationController configurationController,
            ConfigurationController configurationController,
            TunerService tunerService,
            TunerService tunerService,
            BroadcastDispatcher broadcastDispatcher,
            @Main Handler mainHandler,
            @Main Handler mainHandler,
            ContentResolver contentResolver,
            ContentResolver contentResolver,
            FeatureFlags featureFlags,
            FeatureFlags featureFlags,
            BatteryController batteryController) {
            BatteryController batteryController) {
        super(view);
        super(view);
        mUserTracker = userTracker;
        mConfigurationController = configurationController;
        mConfigurationController = configurationController;
        mTunerService = tunerService;
        mTunerService = tunerService;
        mMainHandler = mainHandler;
        mContentResolver = contentResolver;
        mContentResolver = contentResolver;
        mBatteryController = batteryController;
        mBatteryController = batteryController;


@@ -117,15 +132,7 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
        mView.setDisplayShieldEnabled(featureFlags.isEnabled(Flags.BATTERY_SHIELD_ICON));
        mView.setDisplayShieldEnabled(featureFlags.isEnabled(Flags.BATTERY_SHIELD_ICON));


        mSlotBattery = getResources().getString(com.android.internal.R.string.status_bar_battery);
        mSlotBattery = getResources().getString(com.android.internal.R.string.status_bar_battery);
        mSettingObserver = new SettingObserver(mainHandler);
        mSettingObserver = new SettingObserver(mMainHandler);
        mCurrentUserTracker = new CurrentUserTracker(broadcastDispatcher) {
            @Override
            public void onUserSwitched(int newUserId) {
                contentResolver.unregisterContentObserver(mSettingObserver);
                registerShowBatteryPercentObserver(newUserId);
                mView.updateShowPercent();
            }
        };
    }
    }


    @Override
    @Override
@@ -134,9 +141,9 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
        subscribeForTunerUpdates();
        subscribeForTunerUpdates();
        mBatteryController.addCallback(mBatteryStateChangeCallback);
        mBatteryController.addCallback(mBatteryStateChangeCallback);


        registerShowBatteryPercentObserver(ActivityManager.getCurrentUser());
        registerShowBatteryPercentObserver(mUserTracker.getUserId());
        registerGlobalBatteryUpdateObserver();
        registerGlobalBatteryUpdateObserver();
        mCurrentUserTracker.startTracking();
        mUserTracker.addCallback(mUserChangedCallback, new HandlerExecutor(mMainHandler));


        mView.updateShowPercent();
        mView.updateShowPercent();
    }
    }
@@ -147,7 +154,7 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
        unsubscribeFromTunerUpdates();
        unsubscribeFromTunerUpdates();
        mBatteryController.removeCallback(mBatteryStateChangeCallback);
        mBatteryController.removeCallback(mBatteryStateChangeCallback);


        mCurrentUserTracker.stopTracking();
        mUserTracker.removeCallback(mUserChangedCallback);
        mContentResolver.unregisterContentObserver(mSettingObserver);
        mContentResolver.unregisterContentObserver(mSettingObserver);
    }
    }


Loading