Loading packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +9 −17 Original line number Diff line number Diff line Loading @@ -144,6 +144,7 @@ import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dump.DumpManager; import com.android.systemui.log.SessionTracker; 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.TaskStackChangeListeners; import com.android.systemui.statusbar.StatusBarState; Loading Loading @@ -263,6 +264,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab "com.android.settings", "com.android.settings.FallbackHome"); private final Context mContext; private final UserTracker mUserTracker; private final KeyguardUpdateMonitorLogger mLogger; private final boolean mIsPrimaryUser; private final AuthController mAuthController; Loading Loading @@ -848,13 +850,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab mHandler.removeCallbacks(mFpCancelNotReceived); } try { final int userId; try { userId = ActivityManager.getService().getCurrentUser().id; } catch (RemoteException e) { mLogger.logException(e, "Failed to get current user id"); return; } final int userId = mUserTracker.getUserId(); if (userId != authUserId) { mLogger.logFingerprintAuthForWrongUser(authUserId); return; Loading Loading @@ -1072,13 +1068,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab mLogger.d("Aborted successful auth because device is going to sleep."); return; } final int userId; try { userId = ActivityManager.getService().getCurrentUser().id; } catch (RemoteException e) { mLogger.logException(e, "Failed to get current user id"); return; } final int userId = mUserTracker.getUserId(); if (userId != authUserId) { mLogger.logFaceAuthForWrongUser(authUserId); return; Loading Loading @@ -1928,6 +1918,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab @Inject protected KeyguardUpdateMonitor( Context context, UserTracker userTracker, @Main Looper mainLooper, BroadcastDispatcher broadcastDispatcher, SecureSettings secureSettings, Loading Loading @@ -1960,6 +1951,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab FaceWakeUpTriggersConfig faceWakeUpTriggersConfig) { mContext = context; mSubscriptionManager = subscriptionManager; mUserTracker = userTracker; mTelephonyListenerManager = telephonyListenerManager; mDeviceProvisioned = isDeviceProvisionedInSettingsDb(); mStrongAuthTracker = new StrongAuthTracker(context, this::notifyStrongAuthStateChanged, Loading Loading @@ -2192,7 +2184,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab TaskStackChangeListeners.getInstance().registerTaskStackListener(mTaskStackListener); mIsPrimaryUser = mUserManager.isPrimaryUser(); int user = ActivityManager.getCurrentUser(); int user = mUserTracker.getUserId(); mUserIsUnlocked.put(user, mUserManager.isUserUnlocked(user)); mLogoutEnabled = mDevicePolicyManager.isLogoutEnabled(); updateSecondaryLockscreenRequirement(user); Loading Loading @@ -3818,7 +3810,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab pw.println(" " + subId + "=" + mServiceStates.get(subId)); } if (mFpm != null && mFpm.isHardwareDetected()) { final int userId = ActivityManager.getCurrentUser(); final int userId = mUserTracker.getUserId(); final int strongAuthFlags = mStrongAuthTracker.getStrongAuthForUser(userId); BiometricAuthenticated fingerprint = mUserFingerprintAuthenticated.get(userId); pw.println(" Fingerprint state (user=" + userId + ")"); Loading Loading @@ -3858,7 +3850,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab } } if (mFaceManager != null && mFaceManager.isHardwareDetected()) { final int userId = ActivityManager.getCurrentUser(); final int userId = mUserTracker.getUserId(); final int strongAuthFlags = mStrongAuthTracker.getStrongAuthForUser(userId); BiometricAuthenticated face = mUserFaceAuthenticated.get(userId); pw.println(" Face authentication state (user=" + userId + ")"); Loading packages/SystemUI/src/com/android/keyguard/clock/ClockManager.java +24 −14 Original line number Diff line number Diff line Loading @@ -29,17 +29,17 @@ import android.util.ArrayMap; import android.util.DisplayMetrics; import android.view.LayoutInflater; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.lifecycle.Observer; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.colorextraction.SysuiColorExtractor; 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.DockEventListener; import com.android.systemui.plugins.ClockPlugin; 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 java.util.ArrayList; Loading @@ -47,6 +47,7 @@ import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.concurrent.Executor; import java.util.function.Supplier; import javax.inject.Inject; Loading @@ -69,7 +70,8 @@ public final class ClockManager { private final ContentResolver mContentResolver; private final SettingsWrapper mSettingsWrapper; 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. Loading @@ -80,7 +82,7 @@ public final class ClockManager { public void onChange(boolean selfChange, Collection<Uri> uris, int flags, int userId) { if (Objects.equals(userId, mCurrentUserObservable.getCurrentUser().getValue())) { mUserTracker.getUserId())) { reload(); } } Loading @@ -89,7 +91,13 @@ public final class ClockManager { /** * 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; @Nullable private final DockManager mDockManager; Loading Loading @@ -129,22 +137,24 @@ public final class ClockManager { @Inject public ClockManager(Context context, LayoutInflater layoutInflater, PluginManager pluginManager, SysuiColorExtractor colorExtractor, @Nullable DockManager dockManager, BroadcastDispatcher broadcastDispatcher) { @Nullable DockManager dockManager, UserTracker userTracker, @Main Executor mainExecutor) { this(context, layoutInflater, pluginManager, colorExtractor, context.getContentResolver(), new CurrentUserObservable(broadcastDispatcher), context.getContentResolver(), userTracker, mainExecutor, new SettingsWrapper(context.getContentResolver()), dockManager); } @VisibleForTesting ClockManager(Context context, LayoutInflater layoutInflater, PluginManager pluginManager, SysuiColorExtractor colorExtractor, ContentResolver contentResolver, CurrentUserObservable currentUserObservable, ContentResolver contentResolver, UserTracker userTracker, Executor mainExecutor, SettingsWrapper settingsWrapper, DockManager dockManager) { mContext = context; mPluginManager = pluginManager; mContentResolver = contentResolver; mSettingsWrapper = settingsWrapper; mCurrentUserObservable = currentUserObservable; mUserTracker = userTracker; mMainExecutor = mainExecutor; mDockManager = dockManager; mPreviewClocks = new AvailableClocks(); Loading Loading @@ -226,7 +236,7 @@ public final class ClockManager { mContentResolver.registerContentObserver( Settings.Secure.getUriFor(Settings.Secure.DOCKED_CLOCK_FACE), false, mContentObserver, UserHandle.USER_ALL); mCurrentUserObservable.getCurrentUser().observeForever(mCurrentUserObserver); mUserTracker.addCallback(mUserChangedCallback, mMainExecutor); if (mDockManager != null) { mDockManager.addListener(mDockEventListener); } Loading @@ -235,7 +245,7 @@ public final class ClockManager { private void unregister() { mPluginManager.removePluginListener(mPreviewClocks); mContentResolver.unregisterContentObserver(mContentObserver); mCurrentUserObservable.getCurrentUser().removeObserver(mCurrentUserObserver); mUserTracker.removeCallback(mUserChangedCallback); if (mDockManager != null) { mDockManager.removeListener(mDockEventListener); } Loading Loading @@ -363,7 +373,7 @@ public final class ClockManager { ClockPlugin plugin = null; if (ClockManager.this.isDocked()) { final String name = mSettingsWrapper.getDockedClockFace( mCurrentUserObservable.getCurrentUser().getValue()); mUserTracker.getUserId()); if (name != null) { plugin = mClocks.get(name); if (plugin != null) { Loading @@ -372,7 +382,7 @@ public final class ClockManager { } } final String name = mSettingsWrapper.getLockScreenCustomClockFace( mCurrentUserObservable.getCurrentUser().getValue()); mUserTracker.getUserId()); if (name != null) { plugin = mClocks.get(name); } Loading packages/SystemUI/src/com/android/systemui/Dependency.java +3 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,7 @@ import com.android.systemui.qs.ReduceBrightColorsController; import com.android.systemui.qs.tiles.dialog.InternetDialogFactory; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.screenrecord.RecordingController; import com.android.systemui.settings.UserTracker; import com.android.systemui.shade.ShadeController; import com.android.systemui.shared.plugins.PluginManager; import com.android.systemui.shared.system.ActivityManagerWrapper; Loading Loading @@ -357,6 +358,7 @@ public class Dependency { @Inject Lazy<GroupExpansionManager> mGroupExpansionManagerLazy; @Inject Lazy<SystemUIDialogManager> mSystemUIDialogManagerLazy; @Inject Lazy<DialogLaunchAnimator> mDialogLaunchAnimatorLazy; @Inject Lazy<UserTracker> mUserTrackerLazy; @Inject public Dependency() { Loading Loading @@ -564,6 +566,7 @@ public class Dependency { mProviders.put(GroupExpansionManager.class, mGroupExpansionManagerLazy::get); mProviders.put(SystemUIDialogManager.class, mSystemUIDialogManagerLazy::get); mProviders.put(DialogLaunchAnimator.class, mDialogLaunchAnimatorLazy::get); mProviders.put(UserTracker.class, mUserTrackerLazy::get); Dependency.setInstance(this); } Loading packages/SystemUI/src/com/android/systemui/ScreenDecorations.java +1 −2 Original line number Diff line number Diff line Loading @@ -26,7 +26,6 @@ import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_M import android.annotation.IdRes; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.ActivityManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; Loading Loading @@ -901,7 +900,7 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { private final BroadcastReceiver mUserSwitchIntentReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { int newUserId = ActivityManager.getCurrentUser(); int newUserId = mUserTracker.getUserId(); if (DEBUG) { Log.d(TAG, "UserSwitched newUserId=" + newUserId); } Loading packages/SystemUI/src/com/android/systemui/battery/BatteryMeterViewController.java +24 −17 Original line number Diff line number Diff line Loading @@ -17,21 +17,23 @@ package com.android.systemui.battery; import static android.provider.Settings.System.SHOW_BATTERY_PERCENT; import android.app.ActivityManager; import android.content.ContentResolver; import android.content.Context; import android.database.ContentObserver; import android.net.Uri; import android.os.Handler; import android.os.HandlerExecutor; import android.provider.Settings; import android.text.TextUtils; import android.util.ArraySet; 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.flags.FeatureFlags; 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.policy.BatteryController; import com.android.systemui.statusbar.policy.ConfigurationController; Loading @@ -44,12 +46,13 @@ import javax.inject.Inject; public class BatteryMeterViewController extends ViewController<BatteryMeterView> { private final ConfigurationController mConfigurationController; private final TunerService mTunerService; private final Handler mMainHandler; private final ContentResolver mContentResolver; private final BatteryController mBatteryController; private final String mSlotBattery; private final SettingObserver mSettingObserver; private final CurrentUserTracker mCurrentUserTracker; private final UserTracker mUserTracker; private final ConfigurationController.ConfigurationListener mConfigurationListener = new ConfigurationController.ConfigurationListener() { Loading Loading @@ -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 private boolean mIgnoreTunerUpdates; private boolean mIsSubscribedForTunerUpdates; Loading @@ -100,16 +113,18 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView> @Inject public BatteryMeterViewController( BatteryMeterView view, UserTracker userTracker, ConfigurationController configurationController, TunerService tunerService, BroadcastDispatcher broadcastDispatcher, @Main Handler mainHandler, ContentResolver contentResolver, FeatureFlags featureFlags, BatteryController batteryController) { super(view); mUserTracker = userTracker; mConfigurationController = configurationController; mTunerService = tunerService; mMainHandler = mainHandler; mContentResolver = contentResolver; mBatteryController = batteryController; Loading @@ -117,15 +132,7 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView> mView.setDisplayShieldEnabled(featureFlags.isEnabled(Flags.BATTERY_SHIELD_ICON)); mSlotBattery = getResources().getString(com.android.internal.R.string.status_bar_battery); mSettingObserver = new SettingObserver(mainHandler); mCurrentUserTracker = new CurrentUserTracker(broadcastDispatcher) { @Override public void onUserSwitched(int newUserId) { contentResolver.unregisterContentObserver(mSettingObserver); registerShowBatteryPercentObserver(newUserId); mView.updateShowPercent(); } }; mSettingObserver = new SettingObserver(mMainHandler); } @Override Loading @@ -134,9 +141,9 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView> subscribeForTunerUpdates(); mBatteryController.addCallback(mBatteryStateChangeCallback); registerShowBatteryPercentObserver(ActivityManager.getCurrentUser()); registerShowBatteryPercentObserver(mUserTracker.getUserId()); registerGlobalBatteryUpdateObserver(); mCurrentUserTracker.startTracking(); mUserTracker.addCallback(mUserChangedCallback, new HandlerExecutor(mMainHandler)); mView.updateShowPercent(); } Loading @@ -147,7 +154,7 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView> unsubscribeFromTunerUpdates(); mBatteryController.removeCallback(mBatteryStateChangeCallback); mCurrentUserTracker.stopTracking(); mUserTracker.removeCallback(mUserChangedCallback); mContentResolver.unregisterContentObserver(mSettingObserver); } Loading Loading
packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +9 −17 Original line number Diff line number Diff line Loading @@ -144,6 +144,7 @@ import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dump.DumpManager; import com.android.systemui.log.SessionTracker; 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.TaskStackChangeListeners; import com.android.systemui.statusbar.StatusBarState; Loading Loading @@ -263,6 +264,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab "com.android.settings", "com.android.settings.FallbackHome"); private final Context mContext; private final UserTracker mUserTracker; private final KeyguardUpdateMonitorLogger mLogger; private final boolean mIsPrimaryUser; private final AuthController mAuthController; Loading Loading @@ -848,13 +850,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab mHandler.removeCallbacks(mFpCancelNotReceived); } try { final int userId; try { userId = ActivityManager.getService().getCurrentUser().id; } catch (RemoteException e) { mLogger.logException(e, "Failed to get current user id"); return; } final int userId = mUserTracker.getUserId(); if (userId != authUserId) { mLogger.logFingerprintAuthForWrongUser(authUserId); return; Loading Loading @@ -1072,13 +1068,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab mLogger.d("Aborted successful auth because device is going to sleep."); return; } final int userId; try { userId = ActivityManager.getService().getCurrentUser().id; } catch (RemoteException e) { mLogger.logException(e, "Failed to get current user id"); return; } final int userId = mUserTracker.getUserId(); if (userId != authUserId) { mLogger.logFaceAuthForWrongUser(authUserId); return; Loading Loading @@ -1928,6 +1918,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab @Inject protected KeyguardUpdateMonitor( Context context, UserTracker userTracker, @Main Looper mainLooper, BroadcastDispatcher broadcastDispatcher, SecureSettings secureSettings, Loading Loading @@ -1960,6 +1951,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab FaceWakeUpTriggersConfig faceWakeUpTriggersConfig) { mContext = context; mSubscriptionManager = subscriptionManager; mUserTracker = userTracker; mTelephonyListenerManager = telephonyListenerManager; mDeviceProvisioned = isDeviceProvisionedInSettingsDb(); mStrongAuthTracker = new StrongAuthTracker(context, this::notifyStrongAuthStateChanged, Loading Loading @@ -2192,7 +2184,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab TaskStackChangeListeners.getInstance().registerTaskStackListener(mTaskStackListener); mIsPrimaryUser = mUserManager.isPrimaryUser(); int user = ActivityManager.getCurrentUser(); int user = mUserTracker.getUserId(); mUserIsUnlocked.put(user, mUserManager.isUserUnlocked(user)); mLogoutEnabled = mDevicePolicyManager.isLogoutEnabled(); updateSecondaryLockscreenRequirement(user); Loading Loading @@ -3818,7 +3810,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab pw.println(" " + subId + "=" + mServiceStates.get(subId)); } if (mFpm != null && mFpm.isHardwareDetected()) { final int userId = ActivityManager.getCurrentUser(); final int userId = mUserTracker.getUserId(); final int strongAuthFlags = mStrongAuthTracker.getStrongAuthForUser(userId); BiometricAuthenticated fingerprint = mUserFingerprintAuthenticated.get(userId); pw.println(" Fingerprint state (user=" + userId + ")"); Loading Loading @@ -3858,7 +3850,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab } } if (mFaceManager != null && mFaceManager.isHardwareDetected()) { final int userId = ActivityManager.getCurrentUser(); final int userId = mUserTracker.getUserId(); final int strongAuthFlags = mStrongAuthTracker.getStrongAuthForUser(userId); BiometricAuthenticated face = mUserFaceAuthenticated.get(userId); pw.println(" Face authentication state (user=" + userId + ")"); Loading
packages/SystemUI/src/com/android/keyguard/clock/ClockManager.java +24 −14 Original line number Diff line number Diff line Loading @@ -29,17 +29,17 @@ import android.util.ArrayMap; import android.util.DisplayMetrics; import android.view.LayoutInflater; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.lifecycle.Observer; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.colorextraction.SysuiColorExtractor; 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.DockEventListener; import com.android.systemui.plugins.ClockPlugin; 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 java.util.ArrayList; Loading @@ -47,6 +47,7 @@ import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.concurrent.Executor; import java.util.function.Supplier; import javax.inject.Inject; Loading @@ -69,7 +70,8 @@ public final class ClockManager { private final ContentResolver mContentResolver; private final SettingsWrapper mSettingsWrapper; 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. Loading @@ -80,7 +82,7 @@ public final class ClockManager { public void onChange(boolean selfChange, Collection<Uri> uris, int flags, int userId) { if (Objects.equals(userId, mCurrentUserObservable.getCurrentUser().getValue())) { mUserTracker.getUserId())) { reload(); } } Loading @@ -89,7 +91,13 @@ public final class ClockManager { /** * 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; @Nullable private final DockManager mDockManager; Loading Loading @@ -129,22 +137,24 @@ public final class ClockManager { @Inject public ClockManager(Context context, LayoutInflater layoutInflater, PluginManager pluginManager, SysuiColorExtractor colorExtractor, @Nullable DockManager dockManager, BroadcastDispatcher broadcastDispatcher) { @Nullable DockManager dockManager, UserTracker userTracker, @Main Executor mainExecutor) { this(context, layoutInflater, pluginManager, colorExtractor, context.getContentResolver(), new CurrentUserObservable(broadcastDispatcher), context.getContentResolver(), userTracker, mainExecutor, new SettingsWrapper(context.getContentResolver()), dockManager); } @VisibleForTesting ClockManager(Context context, LayoutInflater layoutInflater, PluginManager pluginManager, SysuiColorExtractor colorExtractor, ContentResolver contentResolver, CurrentUserObservable currentUserObservable, ContentResolver contentResolver, UserTracker userTracker, Executor mainExecutor, SettingsWrapper settingsWrapper, DockManager dockManager) { mContext = context; mPluginManager = pluginManager; mContentResolver = contentResolver; mSettingsWrapper = settingsWrapper; mCurrentUserObservable = currentUserObservable; mUserTracker = userTracker; mMainExecutor = mainExecutor; mDockManager = dockManager; mPreviewClocks = new AvailableClocks(); Loading Loading @@ -226,7 +236,7 @@ public final class ClockManager { mContentResolver.registerContentObserver( Settings.Secure.getUriFor(Settings.Secure.DOCKED_CLOCK_FACE), false, mContentObserver, UserHandle.USER_ALL); mCurrentUserObservable.getCurrentUser().observeForever(mCurrentUserObserver); mUserTracker.addCallback(mUserChangedCallback, mMainExecutor); if (mDockManager != null) { mDockManager.addListener(mDockEventListener); } Loading @@ -235,7 +245,7 @@ public final class ClockManager { private void unregister() { mPluginManager.removePluginListener(mPreviewClocks); mContentResolver.unregisterContentObserver(mContentObserver); mCurrentUserObservable.getCurrentUser().removeObserver(mCurrentUserObserver); mUserTracker.removeCallback(mUserChangedCallback); if (mDockManager != null) { mDockManager.removeListener(mDockEventListener); } Loading Loading @@ -363,7 +373,7 @@ public final class ClockManager { ClockPlugin plugin = null; if (ClockManager.this.isDocked()) { final String name = mSettingsWrapper.getDockedClockFace( mCurrentUserObservable.getCurrentUser().getValue()); mUserTracker.getUserId()); if (name != null) { plugin = mClocks.get(name); if (plugin != null) { Loading @@ -372,7 +382,7 @@ public final class ClockManager { } } final String name = mSettingsWrapper.getLockScreenCustomClockFace( mCurrentUserObservable.getCurrentUser().getValue()); mUserTracker.getUserId()); if (name != null) { plugin = mClocks.get(name); } Loading
packages/SystemUI/src/com/android/systemui/Dependency.java +3 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,7 @@ import com.android.systemui.qs.ReduceBrightColorsController; import com.android.systemui.qs.tiles.dialog.InternetDialogFactory; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.screenrecord.RecordingController; import com.android.systemui.settings.UserTracker; import com.android.systemui.shade.ShadeController; import com.android.systemui.shared.plugins.PluginManager; import com.android.systemui.shared.system.ActivityManagerWrapper; Loading Loading @@ -357,6 +358,7 @@ public class Dependency { @Inject Lazy<GroupExpansionManager> mGroupExpansionManagerLazy; @Inject Lazy<SystemUIDialogManager> mSystemUIDialogManagerLazy; @Inject Lazy<DialogLaunchAnimator> mDialogLaunchAnimatorLazy; @Inject Lazy<UserTracker> mUserTrackerLazy; @Inject public Dependency() { Loading Loading @@ -564,6 +566,7 @@ public class Dependency { mProviders.put(GroupExpansionManager.class, mGroupExpansionManagerLazy::get); mProviders.put(SystemUIDialogManager.class, mSystemUIDialogManagerLazy::get); mProviders.put(DialogLaunchAnimator.class, mDialogLaunchAnimatorLazy::get); mProviders.put(UserTracker.class, mUserTrackerLazy::get); Dependency.setInstance(this); } Loading
packages/SystemUI/src/com/android/systemui/ScreenDecorations.java +1 −2 Original line number Diff line number Diff line Loading @@ -26,7 +26,6 @@ import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_M import android.annotation.IdRes; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.ActivityManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; Loading Loading @@ -901,7 +900,7 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { private final BroadcastReceiver mUserSwitchIntentReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { int newUserId = ActivityManager.getCurrentUser(); int newUserId = mUserTracker.getUserId(); if (DEBUG) { Log.d(TAG, "UserSwitched newUserId=" + newUserId); } Loading
packages/SystemUI/src/com/android/systemui/battery/BatteryMeterViewController.java +24 −17 Original line number Diff line number Diff line Loading @@ -17,21 +17,23 @@ package com.android.systemui.battery; import static android.provider.Settings.System.SHOW_BATTERY_PERCENT; import android.app.ActivityManager; import android.content.ContentResolver; import android.content.Context; import android.database.ContentObserver; import android.net.Uri; import android.os.Handler; import android.os.HandlerExecutor; import android.provider.Settings; import android.text.TextUtils; import android.util.ArraySet; 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.flags.FeatureFlags; 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.policy.BatteryController; import com.android.systemui.statusbar.policy.ConfigurationController; Loading @@ -44,12 +46,13 @@ import javax.inject.Inject; public class BatteryMeterViewController extends ViewController<BatteryMeterView> { private final ConfigurationController mConfigurationController; private final TunerService mTunerService; private final Handler mMainHandler; private final ContentResolver mContentResolver; private final BatteryController mBatteryController; private final String mSlotBattery; private final SettingObserver mSettingObserver; private final CurrentUserTracker mCurrentUserTracker; private final UserTracker mUserTracker; private final ConfigurationController.ConfigurationListener mConfigurationListener = new ConfigurationController.ConfigurationListener() { Loading Loading @@ -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 private boolean mIgnoreTunerUpdates; private boolean mIsSubscribedForTunerUpdates; Loading @@ -100,16 +113,18 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView> @Inject public BatteryMeterViewController( BatteryMeterView view, UserTracker userTracker, ConfigurationController configurationController, TunerService tunerService, BroadcastDispatcher broadcastDispatcher, @Main Handler mainHandler, ContentResolver contentResolver, FeatureFlags featureFlags, BatteryController batteryController) { super(view); mUserTracker = userTracker; mConfigurationController = configurationController; mTunerService = tunerService; mMainHandler = mainHandler; mContentResolver = contentResolver; mBatteryController = batteryController; Loading @@ -117,15 +132,7 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView> mView.setDisplayShieldEnabled(featureFlags.isEnabled(Flags.BATTERY_SHIELD_ICON)); mSlotBattery = getResources().getString(com.android.internal.R.string.status_bar_battery); mSettingObserver = new SettingObserver(mainHandler); mCurrentUserTracker = new CurrentUserTracker(broadcastDispatcher) { @Override public void onUserSwitched(int newUserId) { contentResolver.unregisterContentObserver(mSettingObserver); registerShowBatteryPercentObserver(newUserId); mView.updateShowPercent(); } }; mSettingObserver = new SettingObserver(mMainHandler); } @Override Loading @@ -134,9 +141,9 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView> subscribeForTunerUpdates(); mBatteryController.addCallback(mBatteryStateChangeCallback); registerShowBatteryPercentObserver(ActivityManager.getCurrentUser()); registerShowBatteryPercentObserver(mUserTracker.getUserId()); registerGlobalBatteryUpdateObserver(); mCurrentUserTracker.startTracking(); mUserTracker.addCallback(mUserChangedCallback, new HandlerExecutor(mMainHandler)); mView.updateShowPercent(); } Loading @@ -147,7 +154,7 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView> unsubscribeFromTunerUpdates(); mBatteryController.removeCallback(mBatteryStateChangeCallback); mCurrentUserTracker.stopTracking(); mUserTracker.removeCallback(mUserChangedCallback); mContentResolver.unregisterContentObserver(mSettingObserver); } Loading