4848import android .os .RemoteException ;
4949import android .os .ServiceManager ;
5050import android .os .SystemClock ;
51+ import android .os .UserHandle ;
5152import android .os .WorkSource ;
5253import android .provider .Settings ;
5354import android .service .dreams .Dream ;
@@ -357,34 +358,44 @@ public void systemReady(TwilightService twilight) {
357358 // Register for broadcasts from other components of the system.
358359 IntentFilter filter = new IntentFilter ();
359360 filter .addAction (Intent .ACTION_BATTERY_CHANGED );
360- mContext .registerReceiver (new BatteryReceiver (), filter );
361+ mContext .registerReceiver (new BatteryReceiver (), filter , null , mHandler );
361362
362363 filter = new IntentFilter ();
363364 filter .addAction (Intent .ACTION_BOOT_COMPLETED );
364- mContext .registerReceiver (new BootCompletedReceiver (), filter );
365+ mContext .registerReceiver (new BootCompletedReceiver (), filter , null , mHandler );
365366
366367 filter = new IntentFilter ();
367368 filter .addAction (Intent .ACTION_DOCK_EVENT );
368- mContext .registerReceiver (new DockReceiver (), filter );
369+ mContext .registerReceiver (new DockReceiver (), filter , null , mHandler );
369370
370371 filter = new IntentFilter ();
371372 filter .addAction (Dream .ACTION_DREAMING_STOPPED );
372- mContext .registerReceiver (new DreamReceiver (), filter );
373+ mContext .registerReceiver (new DreamReceiver (), filter , null , mHandler );
374+
375+ filter = new IntentFilter ();
376+ filter .addAction (Intent .ACTION_USER_SWITCHED );
377+ mContext .registerReceiver (new UserSwitchedReceiver (), filter , null , mHandler );
373378
374379 // Register for settings changes.
375380 final ContentResolver resolver = mContext .getContentResolver ();
376381 resolver .registerContentObserver (Settings .Secure .getUriFor (
377- Settings .Secure .SCREENSAVER_ENABLED ), false , mSettingsObserver );
382+ Settings .Secure .SCREENSAVER_ENABLED ),
383+ false , mSettingsObserver , UserHandle .USER_ALL );
378384 resolver .registerContentObserver (Settings .Secure .getUriFor (
379- Settings .Secure .SCREENSAVER_ACTIVATE_ON_SLEEP ), false , mSettingsObserver );
385+ Settings .Secure .SCREENSAVER_ACTIVATE_ON_SLEEP ),
386+ false , mSettingsObserver , UserHandle .USER_ALL );
380387 resolver .registerContentObserver (Settings .System .getUriFor (
381- Settings .System .SCREEN_OFF_TIMEOUT ), false , mSettingsObserver );
388+ Settings .System .SCREEN_OFF_TIMEOUT ),
389+ false , mSettingsObserver , UserHandle .USER_ALL );
382390 resolver .registerContentObserver (Settings .Global .getUriFor (
383- Settings .Global .STAY_ON_WHILE_PLUGGED_IN ), false , mSettingsObserver );
391+ Settings .Global .STAY_ON_WHILE_PLUGGED_IN ),
392+ false , mSettingsObserver , UserHandle .USER_ALL );
384393 resolver .registerContentObserver (Settings .System .getUriFor (
385- Settings .System .SCREEN_BRIGHTNESS ), false , mSettingsObserver );
394+ Settings .System .SCREEN_BRIGHTNESS ),
395+ false , mSettingsObserver , UserHandle .USER_ALL );
386396 resolver .registerContentObserver (Settings .System .getUriFor (
387- Settings .System .SCREEN_BRIGHTNESS_MODE ), false , mSettingsObserver );
397+ Settings .System .SCREEN_BRIGHTNESS_MODE ),
398+ false , mSettingsObserver , UserHandle .USER_ALL );
388399
389400 // Go.
390401 readConfigurationLocked ();
@@ -406,34 +417,38 @@ private void readConfigurationLocked() {
406417 private void updateSettingsLocked () {
407418 final ContentResolver resolver = mContext .getContentResolver ();
408419
409- mDreamsEnabledSetting = (Settings .Secure .getInt (resolver ,
410- Settings .Secure .SCREENSAVER_ENABLED , 0 ) != 0 );
411- mDreamsActivateOnSleepSetting = (Settings .Secure .getInt (resolver ,
412- Settings .Secure .SCREENSAVER_ACTIVATE_ON_SLEEP , 0 ) != 0 );
413- mScreenOffTimeoutSetting = Settings .System .getInt (resolver ,
414- Settings .System .SCREEN_OFF_TIMEOUT , DEFAULT_SCREEN_OFF_TIMEOUT );
420+ mDreamsEnabledSetting = (Settings .Secure .getIntForUser (resolver ,
421+ Settings .Secure .SCREENSAVER_ENABLED , 0 ,
422+ UserHandle .USER_CURRENT ) != 0 );
423+ mDreamsActivateOnSleepSetting = (Settings .Secure .getIntForUser (resolver ,
424+ Settings .Secure .SCREENSAVER_ACTIVATE_ON_SLEEP , 0 ,
425+ UserHandle .USER_CURRENT ) != 0 );
426+ mScreenOffTimeoutSetting = Settings .System .getIntForUser (resolver ,
427+ Settings .System .SCREEN_OFF_TIMEOUT , DEFAULT_SCREEN_OFF_TIMEOUT ,
428+ UserHandle .USER_CURRENT );
415429 mStayOnWhilePluggedInSetting = Settings .Global .getInt (resolver ,
416- Settings .Global .STAY_ON_WHILE_PLUGGED_IN ,
417- BatteryManager .BATTERY_PLUGGED_AC );
430+ Settings .Global .STAY_ON_WHILE_PLUGGED_IN , BatteryManager .BATTERY_PLUGGED_AC );
418431
419432 final int oldScreenBrightnessSetting = mScreenBrightnessSetting ;
420- mScreenBrightnessSetting = Settings .System .getInt (resolver ,
421- Settings .System .SCREEN_BRIGHTNESS , mScreenBrightnessSettingDefault );
433+ mScreenBrightnessSetting = Settings .System .getIntForUser (resolver ,
434+ Settings .System .SCREEN_BRIGHTNESS , mScreenBrightnessSettingDefault ,
435+ UserHandle .USER_CURRENT );
422436 if (oldScreenBrightnessSetting != mScreenBrightnessSetting ) {
423437 mTemporaryScreenBrightnessSettingOverride = -1 ;
424438 }
425439
426440 final float oldScreenAutoBrightnessAdjustmentSetting =
427441 mScreenAutoBrightnessAdjustmentSetting ;
428- mScreenAutoBrightnessAdjustmentSetting = Settings .System .getFloat (resolver ,
429- Settings .System .SCREEN_AUTO_BRIGHTNESS_ADJ , 0.0f );
442+ mScreenAutoBrightnessAdjustmentSetting = Settings .System .getFloatForUser (resolver ,
443+ Settings .System .SCREEN_AUTO_BRIGHTNESS_ADJ , 0.0f ,
444+ UserHandle .USER_CURRENT );
430445 if (oldScreenAutoBrightnessAdjustmentSetting != mScreenAutoBrightnessAdjustmentSetting ) {
431446 mTemporaryScreenAutoBrightnessAdjustmentSettingOverride = Float .NaN ;
432447 }
433448
434- mScreenBrightnessModeSetting = Settings .System .getInt (resolver ,
449+ mScreenBrightnessModeSetting = Settings .System .getIntForUser (resolver ,
435450 Settings .System .SCREEN_BRIGHTNESS_MODE ,
436- Settings .System .SCREEN_BRIGHTNESS_MODE_MANUAL );
451+ Settings .System .SCREEN_BRIGHTNESS_MODE_MANUAL , UserHandle . USER_CURRENT );
437452
438453 mDirty |= DIRTY_SETTINGS ;
439454 }
@@ -1962,6 +1977,15 @@ public void onReceive(Context context, Intent intent) {
19621977 }
19631978 }
19641979
1980+ private final class UserSwitchedReceiver extends BroadcastReceiver {
1981+ @ Override
1982+ public void onReceive (Context context , Intent intent ) {
1983+ synchronized (mLock ) {
1984+ handleSettingsChangedLocked ();
1985+ }
1986+ }
1987+ }
1988+
19651989 private final class SettingsObserver extends ContentObserver {
19661990 public SettingsObserver (Handler handler ) {
19671991 super (handler );
0 commit comments