Loading services/core/java/com/android/server/timedetector/ServiceConfigAccessorImpl.java +27 −1 Original line number Diff line number Diff line Loading @@ -39,6 +39,9 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.database.ContentObserver; import android.os.Bundle; import android.os.Handler; import android.os.IUserRestrictionsListener; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; Loading Loading @@ -136,9 +139,11 @@ final class ServiceConfigAccessorImpl implements ServiceConfigAccessor { } }, filter, null, null /* main thread */); Handler mainThreadHandler = mContext.getMainThreadHandler(); // Add async callbacks for global settings being changed. ContentResolver contentResolver = mContext.getContentResolver(); ContentObserver contentObserver = new ContentObserver(mContext.getMainThreadHandler()) { ContentObserver contentObserver = new ContentObserver(mainThreadHandler) { @Override public void onChange(boolean selfChange) { handleConfigurationInternalChangeOnMainThread(); Loading @@ -150,6 +155,20 @@ final class ServiceConfigAccessorImpl implements ServiceConfigAccessor { // Watch server flags. mServerFlags.addListener(this::handleConfigurationInternalChangeOnMainThread, SERVER_FLAGS_KEYS_TO_WATCH); // Watch for policy changes that affect what the user is permitted to do. mUserManager.addUserRestrictionsListener( new IUserRestrictionsListener.Stub() { @Override public void onUserRestrictionsChanged( int userId, Bundle newRestrictions, Bundle prevRestrictions) { // This callback currently delivered on main thread, but this post() is // defensive and doesn't rely on that in case it changes. mainThreadHandler.post( () -> handleUserRestrictionsChangeOnMainThread( userId, newRestrictions, prevRestrictions)); } }); } /** Returns the singleton instance. */ Loading @@ -174,6 +193,13 @@ final class ServiceConfigAccessorImpl implements ServiceConfigAccessor { } } private void handleUserRestrictionsChangeOnMainThread( int userId, Bundle newRestrictions, Bundle prevRestrictions) { // No attempt at optimisation here. If the policy changes in any way for any user, just // notify. handleConfigurationInternalChangeOnMainThread(); } @Override public synchronized void addConfigurationInternalChangeListener( @NonNull StateChangeListener listener) { Loading services/core/java/com/android/server/timezonedetector/ServiceConfigAccessorImpl.java +27 −1 Original line number Diff line number Diff line Loading @@ -32,6 +32,9 @@ import android.content.pm.PackageManager; import android.content.res.Resources; import android.database.ContentObserver; import android.location.LocationManager; import android.os.Bundle; import android.os.Handler; import android.os.IUserRestrictionsListener; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; Loading Loading @@ -175,9 +178,11 @@ public final class ServiceConfigAccessorImpl implements ServiceConfigAccessor { } }, filter, null, null /* main thread */); Handler mainThreadHandler = mContext.getMainThreadHandler(); // Add async callbacks for changes to global settings that influence behavior. ContentResolver contentResolver = mContext.getContentResolver(); ContentObserver contentObserver = new ContentObserver(mContext.getMainThreadHandler()) { ContentObserver contentObserver = new ContentObserver(mainThreadHandler) { @Override public void onChange(boolean selfChange) { handleConfigurationInternalChangeOnMainThread(); Loading @@ -197,6 +202,20 @@ public final class ServiceConfigAccessorImpl implements ServiceConfigAccessor { // Watch server flags. mServerFlags.addListener(this::handleConfigurationInternalChangeOnMainThread, CONFIGURATION_INTERNAL_SERVER_FLAGS_KEYS_TO_WATCH); // Watch for policy changes that affect what the user is permitted to do. mUserManager.addUserRestrictionsListener( new IUserRestrictionsListener.Stub() { @Override public void onUserRestrictionsChanged( int userId, Bundle newRestrictions, Bundle prevRestrictions) { // This callback currently delivered on main thread, but this post() is // defensive and doesn't rely on that in case it changes. mainThreadHandler.post( () -> handleUserRestrictionsChangeOnMainThread( userId, newRestrictions, prevRestrictions)); } }); } /** Returns the singleton instance. */ Loading @@ -221,6 +240,13 @@ public final class ServiceConfigAccessorImpl implements ServiceConfigAccessor { } } private void handleUserRestrictionsChangeOnMainThread( int userId, Bundle newRestrictions, Bundle prevRestrictions) { // No attempt at optimisation here. If the policy changes in any way for any user, just // notify. handleConfigurationInternalChangeOnMainThread(); } @Override public synchronized void addConfigurationInternalChangeListener( @NonNull StateChangeListener listener) { Loading Loading
services/core/java/com/android/server/timedetector/ServiceConfigAccessorImpl.java +27 −1 Original line number Diff line number Diff line Loading @@ -39,6 +39,9 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.database.ContentObserver; import android.os.Bundle; import android.os.Handler; import android.os.IUserRestrictionsListener; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; Loading Loading @@ -136,9 +139,11 @@ final class ServiceConfigAccessorImpl implements ServiceConfigAccessor { } }, filter, null, null /* main thread */); Handler mainThreadHandler = mContext.getMainThreadHandler(); // Add async callbacks for global settings being changed. ContentResolver contentResolver = mContext.getContentResolver(); ContentObserver contentObserver = new ContentObserver(mContext.getMainThreadHandler()) { ContentObserver contentObserver = new ContentObserver(mainThreadHandler) { @Override public void onChange(boolean selfChange) { handleConfigurationInternalChangeOnMainThread(); Loading @@ -150,6 +155,20 @@ final class ServiceConfigAccessorImpl implements ServiceConfigAccessor { // Watch server flags. mServerFlags.addListener(this::handleConfigurationInternalChangeOnMainThread, SERVER_FLAGS_KEYS_TO_WATCH); // Watch for policy changes that affect what the user is permitted to do. mUserManager.addUserRestrictionsListener( new IUserRestrictionsListener.Stub() { @Override public void onUserRestrictionsChanged( int userId, Bundle newRestrictions, Bundle prevRestrictions) { // This callback currently delivered on main thread, but this post() is // defensive and doesn't rely on that in case it changes. mainThreadHandler.post( () -> handleUserRestrictionsChangeOnMainThread( userId, newRestrictions, prevRestrictions)); } }); } /** Returns the singleton instance. */ Loading @@ -174,6 +193,13 @@ final class ServiceConfigAccessorImpl implements ServiceConfigAccessor { } } private void handleUserRestrictionsChangeOnMainThread( int userId, Bundle newRestrictions, Bundle prevRestrictions) { // No attempt at optimisation here. If the policy changes in any way for any user, just // notify. handleConfigurationInternalChangeOnMainThread(); } @Override public synchronized void addConfigurationInternalChangeListener( @NonNull StateChangeListener listener) { Loading
services/core/java/com/android/server/timezonedetector/ServiceConfigAccessorImpl.java +27 −1 Original line number Diff line number Diff line Loading @@ -32,6 +32,9 @@ import android.content.pm.PackageManager; import android.content.res.Resources; import android.database.ContentObserver; import android.location.LocationManager; import android.os.Bundle; import android.os.Handler; import android.os.IUserRestrictionsListener; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; Loading Loading @@ -175,9 +178,11 @@ public final class ServiceConfigAccessorImpl implements ServiceConfigAccessor { } }, filter, null, null /* main thread */); Handler mainThreadHandler = mContext.getMainThreadHandler(); // Add async callbacks for changes to global settings that influence behavior. ContentResolver contentResolver = mContext.getContentResolver(); ContentObserver contentObserver = new ContentObserver(mContext.getMainThreadHandler()) { ContentObserver contentObserver = new ContentObserver(mainThreadHandler) { @Override public void onChange(boolean selfChange) { handleConfigurationInternalChangeOnMainThread(); Loading @@ -197,6 +202,20 @@ public final class ServiceConfigAccessorImpl implements ServiceConfigAccessor { // Watch server flags. mServerFlags.addListener(this::handleConfigurationInternalChangeOnMainThread, CONFIGURATION_INTERNAL_SERVER_FLAGS_KEYS_TO_WATCH); // Watch for policy changes that affect what the user is permitted to do. mUserManager.addUserRestrictionsListener( new IUserRestrictionsListener.Stub() { @Override public void onUserRestrictionsChanged( int userId, Bundle newRestrictions, Bundle prevRestrictions) { // This callback currently delivered on main thread, but this post() is // defensive and doesn't rely on that in case it changes. mainThreadHandler.post( () -> handleUserRestrictionsChangeOnMainThread( userId, newRestrictions, prevRestrictions)); } }); } /** Returns the singleton instance. */ Loading @@ -221,6 +240,13 @@ public final class ServiceConfigAccessorImpl implements ServiceConfigAccessor { } } private void handleUserRestrictionsChangeOnMainThread( int userId, Bundle newRestrictions, Bundle prevRestrictions) { // No attempt at optimisation here. If the policy changes in any way for any user, just // notify. handleConfigurationInternalChangeOnMainThread(); } @Override public synchronized void addConfigurationInternalChangeListener( @NonNull StateChangeListener listener) { Loading