Loading packages/SystemUI/src/com/android/systemui/ScreenDecorations.java +7 −2 Original line number Diff line number Diff line Loading @@ -86,6 +86,7 @@ import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.qs.SecureSetting; import com.android.systemui.settings.UserTracker; import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerService.Tunable; Loading Loading @@ -121,6 +122,7 @@ public class ScreenDecorations extends SystemUI implements Tunable { private final TunerService mTunerService; private DisplayManager.DisplayListener mDisplayListener; private CameraAvailabilityListener mCameraListener; private final UserTracker mUserTracker; //TODO: These are piecemeal being updated to Points for now to support non-square rounded // corners. for now it is only supposed when reading the intrinsic size from the drawables with Loading Loading @@ -198,11 +200,13 @@ public class ScreenDecorations extends SystemUI implements Tunable { public ScreenDecorations(Context context, @Main Handler handler, BroadcastDispatcher broadcastDispatcher, TunerService tunerService) { TunerService tunerService, UserTracker userTracker) { super(context); mMainHandler = handler; mBroadcastDispatcher = broadcastDispatcher; mTunerService = tunerService; mUserTracker = userTracker; } @Override Loading Loading @@ -306,7 +310,8 @@ public class ScreenDecorations extends SystemUI implements Tunable { // Watch color inversion and invert the overlay as needed. if (mColorInversionSetting == null) { mColorInversionSetting = new SecureSetting(mContext, mHandler, Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED) { Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED, mUserTracker.getUserId()) { @Override protected void handleValueChanged(int value, boolean observedChange) { updateColorInversion(value); Loading packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingControllerImpl.kt +4 −3 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package com.android.systemui.controls.controller import android.app.ActivityManager import android.content.ComponentName import android.content.Context import android.os.IBinder Loading @@ -30,6 +29,7 @@ import android.util.Log import com.android.internal.annotations.VisibleForTesting import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.settings.UserTracker import com.android.systemui.util.concurrency.DelayableExecutor import dagger.Lazy import java.util.concurrent.atomic.AtomicBoolean Loading @@ -40,7 +40,8 @@ import javax.inject.Inject open class ControlsBindingControllerImpl @Inject constructor( private val context: Context, @Background private val backgroundExecutor: DelayableExecutor, private val lazyController: Lazy<ControlsController> private val lazyController: Lazy<ControlsController>, userTracker: UserTracker ) : ControlsBindingController { companion object { Loading @@ -56,7 +57,7 @@ open class ControlsBindingControllerImpl @Inject constructor( } } private var currentUser = UserHandle.of(ActivityManager.getCurrentUser()) private var currentUser = userTracker.userHandle override val currentUserId: Int get() = currentUser.identifier Loading packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt +11 −10 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package com.android.systemui.controls.controller import android.app.ActivityManager import android.app.PendingIntent import android.app.backup.BackupManager import android.content.BroadcastReceiver Loading Loading @@ -46,6 +45,7 @@ import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dump.DumpManager import com.android.systemui.globalactions.GlobalActionsDialog import com.android.systemui.settings.UserTracker import com.android.systemui.util.concurrency.DelayableExecutor import java.io.FileDescriptor import java.io.PrintWriter Loading @@ -63,7 +63,8 @@ class ControlsControllerImpl @Inject constructor ( private val listingController: ControlsListingController, private val broadcastDispatcher: BroadcastDispatcher, optionalWrapper: Optional<ControlsFavoritePersistenceWrapper>, dumpManager: DumpManager dumpManager: DumpManager, userTracker: UserTracker ) : Dumpable, ControlsController { companion object { Loading @@ -85,7 +86,7 @@ class ControlsControllerImpl @Inject constructor ( private var seedingInProgress = false private val seedingCallbacks = mutableListOf<Consumer<Boolean>>() private var currentUser = UserHandle.of(ActivityManager.getCurrentUser()) private var currentUser = userTracker.userHandle override val currentUserId get() = currentUser.identifier Loading packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingControllerImpl.kt +7 −5 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package com.android.systemui.controls.management import android.app.ActivityManager import android.content.ComponentName import android.content.Context import android.content.pm.ServiceInfo Loading @@ -29,6 +28,7 @@ import com.android.settingslib.widget.CandidateInfo import com.android.systemui.controls.ControlsServiceInfo import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.settings.UserTracker import java.util.concurrent.Executor import java.util.concurrent.atomic.AtomicInteger import javax.inject.Inject Loading Loading @@ -56,14 +56,16 @@ private fun createServiceListing(context: Context): ServiceListing { class ControlsListingControllerImpl @VisibleForTesting constructor( private val context: Context, @Background private val backgroundExecutor: Executor, private val serviceListingBuilder: (Context) -> ServiceListing private val serviceListingBuilder: (Context) -> ServiceListing, userTracker: UserTracker ) : ControlsListingController { @Inject constructor(context: Context, executor: Executor): this( constructor(context: Context, executor: Executor, userTracker: UserTracker): this( context, executor, ::createServiceListing ::createServiceListing, userTracker ) private var serviceListing = serviceListingBuilder(context) Loading @@ -78,7 +80,7 @@ class ControlsListingControllerImpl @VisibleForTesting constructor( private var availableServices = emptyList<ServiceInfo>() private var userChangeInProgress = AtomicInteger(0) override var currentUserId = ActivityManager.getCurrentUser() override var currentUserId = userTracker.userId private set private val serviceListingCallback = ServiceListing.Callback { Loading packages/SystemUI/src/com/android/systemui/privacy/PrivacyItemController.kt +16 −26 Original line number Diff line number Diff line Loading @@ -16,25 +16,23 @@ package com.android.systemui.privacy import android.app.ActivityManager import android.app.AppOpsManager import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.IntentFilter import android.content.pm.UserInfo import android.os.UserHandle import android.os.UserManager import android.provider.DeviceConfig import com.android.internal.annotations.VisibleForTesting import com.android.internal.config.sysui.SystemUiDeviceConfigFlags import com.android.systemui.Dumpable import com.android.systemui.appops.AppOpItem import com.android.systemui.appops.AppOpsController import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.dump.DumpManager import com.android.systemui.settings.UserTracker import com.android.systemui.util.DeviceConfigProxy import com.android.systemui.util.concurrency.DelayableExecutor import java.io.FileDescriptor Loading @@ -48,9 +46,8 @@ class PrivacyItemController @Inject constructor( private val appOpsController: AppOpsController, @Main uiExecutor: DelayableExecutor, @Background private val bgExecutor: Executor, private val broadcastDispatcher: BroadcastDispatcher, private val deviceConfigProxy: DeviceConfigProxy, private val userManager: UserManager, private val userTracker: UserTracker, dumpManager: DumpManager ) : Dumpable { Loading Loading @@ -153,11 +150,14 @@ class PrivacyItemController @Inject constructor( } @VisibleForTesting internal var userSwitcherReceiver = Receiver() set(value) { unregisterReceiver() field = value if (listening) registerReceiver() internal var userTrackerCallback = object : UserTracker.Callback { override fun onUserChanged(newUser: Int, userContext: Context) { update(true) } override fun onProfilesChanged(profiles: List<UserInfo>) { update(true) } } init { Loading @@ -168,20 +168,18 @@ class PrivacyItemController @Inject constructor( dumpManager.registerDumpable(TAG, this) } private fun unregisterReceiver() { broadcastDispatcher.unregisterReceiver(userSwitcherReceiver) private fun unregisterListener() { userTracker.removeCallback(userTrackerCallback) } private fun registerReceiver() { broadcastDispatcher.registerReceiver(userSwitcherReceiver, intentFilter, null /* handler */, UserHandle.ALL) userTracker.addCallback(userTrackerCallback, bgExecutor) } private fun update(updateUsers: Boolean) { bgExecutor.execute { if (updateUsers) { val currentUser = ActivityManager.getCurrentUser() currentUserIds = userManager.getProfiles(currentUser).map { it.id } currentUserIds = userTracker.userProfiles.map { it.id } } updateListAndNotifyChanges.run() } Loading @@ -206,7 +204,7 @@ class PrivacyItemController @Inject constructor( update(true) } else { appOpsController.removeCallback(OPS, cb) unregisterReceiver() unregisterListener() // Make sure that we remove all indicators and notify listeners if we are not // listening anymore due to indicators being disabled update(false) Loading Loading @@ -275,14 +273,6 @@ class PrivacyItemController @Inject constructor( fun onFlagMicCameraChanged(flag: Boolean) {} } internal inner class Receiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { if (intentFilter.hasAction(intent.action)) { update(true) } } } private class NotifyChangesToCallback( private val callback: Callback?, private val list: List<PrivacyItem> Loading Loading
packages/SystemUI/src/com/android/systemui/ScreenDecorations.java +7 −2 Original line number Diff line number Diff line Loading @@ -86,6 +86,7 @@ import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.qs.SecureSetting; import com.android.systemui.settings.UserTracker; import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerService.Tunable; Loading Loading @@ -121,6 +122,7 @@ public class ScreenDecorations extends SystemUI implements Tunable { private final TunerService mTunerService; private DisplayManager.DisplayListener mDisplayListener; private CameraAvailabilityListener mCameraListener; private final UserTracker mUserTracker; //TODO: These are piecemeal being updated to Points for now to support non-square rounded // corners. for now it is only supposed when reading the intrinsic size from the drawables with Loading Loading @@ -198,11 +200,13 @@ public class ScreenDecorations extends SystemUI implements Tunable { public ScreenDecorations(Context context, @Main Handler handler, BroadcastDispatcher broadcastDispatcher, TunerService tunerService) { TunerService tunerService, UserTracker userTracker) { super(context); mMainHandler = handler; mBroadcastDispatcher = broadcastDispatcher; mTunerService = tunerService; mUserTracker = userTracker; } @Override Loading Loading @@ -306,7 +310,8 @@ public class ScreenDecorations extends SystemUI implements Tunable { // Watch color inversion and invert the overlay as needed. if (mColorInversionSetting == null) { mColorInversionSetting = new SecureSetting(mContext, mHandler, Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED) { Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED, mUserTracker.getUserId()) { @Override protected void handleValueChanged(int value, boolean observedChange) { updateColorInversion(value); Loading
packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingControllerImpl.kt +4 −3 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package com.android.systemui.controls.controller import android.app.ActivityManager import android.content.ComponentName import android.content.Context import android.os.IBinder Loading @@ -30,6 +29,7 @@ import android.util.Log import com.android.internal.annotations.VisibleForTesting import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.settings.UserTracker import com.android.systemui.util.concurrency.DelayableExecutor import dagger.Lazy import java.util.concurrent.atomic.AtomicBoolean Loading @@ -40,7 +40,8 @@ import javax.inject.Inject open class ControlsBindingControllerImpl @Inject constructor( private val context: Context, @Background private val backgroundExecutor: DelayableExecutor, private val lazyController: Lazy<ControlsController> private val lazyController: Lazy<ControlsController>, userTracker: UserTracker ) : ControlsBindingController { companion object { Loading @@ -56,7 +57,7 @@ open class ControlsBindingControllerImpl @Inject constructor( } } private var currentUser = UserHandle.of(ActivityManager.getCurrentUser()) private var currentUser = userTracker.userHandle override val currentUserId: Int get() = currentUser.identifier Loading
packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt +11 −10 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package com.android.systemui.controls.controller import android.app.ActivityManager import android.app.PendingIntent import android.app.backup.BackupManager import android.content.BroadcastReceiver Loading Loading @@ -46,6 +45,7 @@ import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dump.DumpManager import com.android.systemui.globalactions.GlobalActionsDialog import com.android.systemui.settings.UserTracker import com.android.systemui.util.concurrency.DelayableExecutor import java.io.FileDescriptor import java.io.PrintWriter Loading @@ -63,7 +63,8 @@ class ControlsControllerImpl @Inject constructor ( private val listingController: ControlsListingController, private val broadcastDispatcher: BroadcastDispatcher, optionalWrapper: Optional<ControlsFavoritePersistenceWrapper>, dumpManager: DumpManager dumpManager: DumpManager, userTracker: UserTracker ) : Dumpable, ControlsController { companion object { Loading @@ -85,7 +86,7 @@ class ControlsControllerImpl @Inject constructor ( private var seedingInProgress = false private val seedingCallbacks = mutableListOf<Consumer<Boolean>>() private var currentUser = UserHandle.of(ActivityManager.getCurrentUser()) private var currentUser = userTracker.userHandle override val currentUserId get() = currentUser.identifier Loading
packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingControllerImpl.kt +7 −5 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package com.android.systemui.controls.management import android.app.ActivityManager import android.content.ComponentName import android.content.Context import android.content.pm.ServiceInfo Loading @@ -29,6 +28,7 @@ import com.android.settingslib.widget.CandidateInfo import com.android.systemui.controls.ControlsServiceInfo import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.settings.UserTracker import java.util.concurrent.Executor import java.util.concurrent.atomic.AtomicInteger import javax.inject.Inject Loading Loading @@ -56,14 +56,16 @@ private fun createServiceListing(context: Context): ServiceListing { class ControlsListingControllerImpl @VisibleForTesting constructor( private val context: Context, @Background private val backgroundExecutor: Executor, private val serviceListingBuilder: (Context) -> ServiceListing private val serviceListingBuilder: (Context) -> ServiceListing, userTracker: UserTracker ) : ControlsListingController { @Inject constructor(context: Context, executor: Executor): this( constructor(context: Context, executor: Executor, userTracker: UserTracker): this( context, executor, ::createServiceListing ::createServiceListing, userTracker ) private var serviceListing = serviceListingBuilder(context) Loading @@ -78,7 +80,7 @@ class ControlsListingControllerImpl @VisibleForTesting constructor( private var availableServices = emptyList<ServiceInfo>() private var userChangeInProgress = AtomicInteger(0) override var currentUserId = ActivityManager.getCurrentUser() override var currentUserId = userTracker.userId private set private val serviceListingCallback = ServiceListing.Callback { Loading
packages/SystemUI/src/com/android/systemui/privacy/PrivacyItemController.kt +16 −26 Original line number Diff line number Diff line Loading @@ -16,25 +16,23 @@ package com.android.systemui.privacy import android.app.ActivityManager import android.app.AppOpsManager import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.IntentFilter import android.content.pm.UserInfo import android.os.UserHandle import android.os.UserManager import android.provider.DeviceConfig import com.android.internal.annotations.VisibleForTesting import com.android.internal.config.sysui.SystemUiDeviceConfigFlags import com.android.systemui.Dumpable import com.android.systemui.appops.AppOpItem import com.android.systemui.appops.AppOpsController import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.dump.DumpManager import com.android.systemui.settings.UserTracker import com.android.systemui.util.DeviceConfigProxy import com.android.systemui.util.concurrency.DelayableExecutor import java.io.FileDescriptor Loading @@ -48,9 +46,8 @@ class PrivacyItemController @Inject constructor( private val appOpsController: AppOpsController, @Main uiExecutor: DelayableExecutor, @Background private val bgExecutor: Executor, private val broadcastDispatcher: BroadcastDispatcher, private val deviceConfigProxy: DeviceConfigProxy, private val userManager: UserManager, private val userTracker: UserTracker, dumpManager: DumpManager ) : Dumpable { Loading Loading @@ -153,11 +150,14 @@ class PrivacyItemController @Inject constructor( } @VisibleForTesting internal var userSwitcherReceiver = Receiver() set(value) { unregisterReceiver() field = value if (listening) registerReceiver() internal var userTrackerCallback = object : UserTracker.Callback { override fun onUserChanged(newUser: Int, userContext: Context) { update(true) } override fun onProfilesChanged(profiles: List<UserInfo>) { update(true) } } init { Loading @@ -168,20 +168,18 @@ class PrivacyItemController @Inject constructor( dumpManager.registerDumpable(TAG, this) } private fun unregisterReceiver() { broadcastDispatcher.unregisterReceiver(userSwitcherReceiver) private fun unregisterListener() { userTracker.removeCallback(userTrackerCallback) } private fun registerReceiver() { broadcastDispatcher.registerReceiver(userSwitcherReceiver, intentFilter, null /* handler */, UserHandle.ALL) userTracker.addCallback(userTrackerCallback, bgExecutor) } private fun update(updateUsers: Boolean) { bgExecutor.execute { if (updateUsers) { val currentUser = ActivityManager.getCurrentUser() currentUserIds = userManager.getProfiles(currentUser).map { it.id } currentUserIds = userTracker.userProfiles.map { it.id } } updateListAndNotifyChanges.run() } Loading @@ -206,7 +204,7 @@ class PrivacyItemController @Inject constructor( update(true) } else { appOpsController.removeCallback(OPS, cb) unregisterReceiver() unregisterListener() // Make sure that we remove all indicators and notify listeners if we are not // listening anymore due to indicators being disabled update(false) Loading Loading @@ -275,14 +273,6 @@ class PrivacyItemController @Inject constructor( fun onFlagMicCameraChanged(flag: Boolean) {} } internal inner class Receiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { if (intentFilter.hasAction(intent.action)) { update(true) } } } private class NotifyChangesToCallback( private val callback: Callback?, private val list: List<PrivacyItem> Loading