Loading packages/SystemUI/src/com/android/systemui/ScreenDecorations.java +3 −3 Original line number Diff line number Diff line Loading @@ -83,7 +83,7 @@ import com.android.systemui.decor.RoundedCornerDecorProviderFactory; import com.android.systemui.decor.RoundedCornerResDelegateImpl; import com.android.systemui.decor.ScreenDecorCommand; import com.android.systemui.log.ScreenDecorationsLogger; import com.android.systemui.qs.SettingObserver; import com.android.systemui.qs.UserSettingObserver; import com.android.systemui.res.R; import com.android.systemui.settings.DisplayTracker; import com.android.systemui.settings.UserTracker; Loading Loading @@ -165,7 +165,7 @@ public class ScreenDecorations implements CoreStartable, Dumpable { ScreenDecorHwcLayer mScreenDecorHwcLayer; private WindowManager mWindowManager; private int mRotation; private SettingObserver mColorInversionSetting; private UserSettingObserver mColorInversionSetting; @Nullable private DelayableExecutor mExecutor; private Handler mHandler; Loading Loading @@ -686,7 +686,7 @@ public class ScreenDecorations implements CoreStartable, Dumpable { // Watch color inversion and invert the overlay as needed. if (mColorInversionSetting == null) { mColorInversionSetting = new SettingObserver(mSecureSettings, mHandler, mColorInversionSetting = new UserSettingObserver(mSecureSettings, mHandler, Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED, mUserTracker.getUserId()) { @Override Loading packages/SystemUI/src/com/android/systemui/controls/settings/ControlsSettingsRepositoryImpl.kt +3 −2 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCall import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.qs.SettingObserver import com.android.systemui.qs.UserSettingObserver import com.android.systemui.user.data.repository.UserRepository import com.android.systemui.util.settings.SecureSettings import javax.inject.Inject Loading Loading @@ -64,7 +64,8 @@ constructor( .flatMapLatest { userInfo -> conflatedCallbackFlow { val observer = object : SettingObserver(secureSettings, null, setting, userInfo.id) { object : UserSettingObserver(secureSettings, null, setting, userInfo.id) { override fun handleValueChanged( value: Int, observedChange: Boolean Loading packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsClassicDebug.java +7 −10 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.res.Resources; import android.os.Bundle; import android.os.UserHandle; import android.util.Log; import androidx.annotation.NonNull; Loading @@ -56,15 +55,15 @@ import javax.inject.Named; /** * Concrete implementation of the a Flag manager that returns default values for debug builds * * <p> * Flags can be set (or unset) via the following adb command: * * <p> * adb shell cmd statusbar flag <id> <on|off|toggle|erase> * * <p> * Alternatively, you can change flags via a broadcast intent: * * <p> * adb shell am broadcast -a com.android.systemui.action.SET_FLAG --ei id <id> [--ez value <0|1>] * * <p> * To restore a flag back to its default, leave the `--ez value <0|1>` off of the command. */ @SysUISingleton Loading Loading @@ -319,8 +318,7 @@ public class FeatureFlagsClassicDebug implements FeatureFlagsClassic { Log.w(TAG, "Failed to set flag " + name + " to " + value); return; } mGlobalSettings.putStringForUser(mFlagManager.nameToSettingsKey(name), data, UserHandle.USER_CURRENT); mGlobalSettings.putString(mFlagManager.nameToSettingsKey(name), data); } <T> void eraseFlag(Flag<T> flag) { Loading Loading @@ -354,8 +352,7 @@ public class FeatureFlagsClassicDebug implements FeatureFlagsClassic { /** Works just like {@link #eraseFlag(String)} except that it doesn't restart SystemUI. */ private void eraseInternal(String name) { // We can't actually "erase" things from settings, but we can set them to empty! mGlobalSettings.putStringForUser(mFlagManager.nameToSettingsKey(name), "", UserHandle.USER_CURRENT); mGlobalSettings.putString(mFlagManager.nameToSettingsKey(name), ""); Log.i(TAG, "Erase name " + name); } Loading packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java +2 −2 Original line number Diff line number Diff line Loading @@ -749,7 +749,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene @VisibleForTesting boolean shouldDisplayBugReport(@Nullable UserInfo user) { return user != null && user.isAdmin() && mGlobalSettings.getIntForUser(Settings.Secure.BUGREPORT_IN_POWER_MENU, 0, && mSecureSettings.getIntForUser(Settings.Secure.BUGREPORT_IN_POWER_MENU, 0, user.id) != 0; } Loading Loading @@ -1091,7 +1091,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene @Override public boolean showBeforeProvisioning() { return Build.isDebuggable() && mGlobalSettings.getIntForUser( return Build.isDebuggable() && mSecureSettings.getIntForUser( Settings.Secure.BUGREPORT_IN_POWER_MENU, 0, getCurrentUser().id) != 0 && getCurrentUser().isAdmin(); } Loading packages/SystemUI/src/com/android/systemui/qs/SettingObserver.java +10 −29 Original line number Diff line number Diff line Loading @@ -20,15 +20,14 @@ import android.database.ContentObserver; import android.os.Handler; import com.android.systemui.statusbar.policy.Listenable; import com.android.systemui.util.settings.GlobalSettings; import com.android.systemui.util.settings.SecureSettings; import com.android.systemui.util.settings.SettingsProxy; import com.android.systemui.util.settings.SystemSettings; /** * Helper for managing secure, global, and system settings through use of {@link SettingsProxy}, * which is the common superclass of {@link SecureSettings}, {@link GlobalSettings}, and * {@link SystemSettings}. * Helper for managing global settings through use of {@link SettingsProxy}. This should * <em>not</em> be used for {@link SecureSettings} or {@link SystemSettings} since those must be * user-aware (instead, use {@link UserSettingObserver}). */ public abstract class SettingObserver extends ContentObserver implements Listenable { private final SettingsProxy mSettingsProxy; Loading @@ -36,23 +35,20 @@ public abstract class SettingObserver extends ContentObserver implements Listena private final int mDefaultValue; private boolean mListening; private int mUserId; private int mObservedValue; protected abstract void handleValueChanged(int value, boolean observedChange); public SettingObserver(SettingsProxy settingsProxy, Handler handler, String settingName, int userId) { this(settingsProxy, handler, settingName, userId, 0); public SettingObserver(SettingsProxy settingsProxy, Handler handler, String settingName) { this(settingsProxy, handler, settingName, 0); } public SettingObserver(SettingsProxy settingsProxy, Handler handler, String settingName, int userId, int defaultValue) { int defaultValue) { super(handler); mSettingsProxy = settingsProxy; mSettingName = settingName; mObservedValue = mDefaultValue = defaultValue; mUserId = userId; } public int getValue() { Loading @@ -65,11 +61,11 @@ public abstract class SettingObserver extends ContentObserver implements Listena * @param value The new value for the setting. */ public void setValue(int value) { mSettingsProxy.putIntForUser(mSettingName, value, mUserId); mSettingsProxy.putInt(mSettingName, value); } private int getValueFromProvider() { return mSettingsProxy.getIntForUser(mSettingName, mDefaultValue, mUserId); return mSettingsProxy.getInt(mSettingName, mDefaultValue); } @Override Loading @@ -78,8 +74,8 @@ public abstract class SettingObserver extends ContentObserver implements Listena mListening = listening; if (listening) { mObservedValue = getValueFromProvider(); mSettingsProxy.registerContentObserverForUser( mSettingsProxy.getUriFor(mSettingName), false, this, mUserId); mSettingsProxy.registerContentObserver( mSettingsProxy.getUriFor(mSettingName), false, this); } else { mSettingsProxy.unregisterContentObserver(this); mObservedValue = mDefaultValue; Loading @@ -94,21 +90,6 @@ public abstract class SettingObserver extends ContentObserver implements Listena handleValueChanged(value, changed); } /** * Set user handle for which to observe the setting. */ public void setUserId(int userId) { mUserId = userId; if (mListening) { setListening(false); setListening(true); } } public int getCurrentUser() { return mUserId; } public String getKey() { return mSettingName; } Loading Loading
packages/SystemUI/src/com/android/systemui/ScreenDecorations.java +3 −3 Original line number Diff line number Diff line Loading @@ -83,7 +83,7 @@ import com.android.systemui.decor.RoundedCornerDecorProviderFactory; import com.android.systemui.decor.RoundedCornerResDelegateImpl; import com.android.systemui.decor.ScreenDecorCommand; import com.android.systemui.log.ScreenDecorationsLogger; import com.android.systemui.qs.SettingObserver; import com.android.systemui.qs.UserSettingObserver; import com.android.systemui.res.R; import com.android.systemui.settings.DisplayTracker; import com.android.systemui.settings.UserTracker; Loading Loading @@ -165,7 +165,7 @@ public class ScreenDecorations implements CoreStartable, Dumpable { ScreenDecorHwcLayer mScreenDecorHwcLayer; private WindowManager mWindowManager; private int mRotation; private SettingObserver mColorInversionSetting; private UserSettingObserver mColorInversionSetting; @Nullable private DelayableExecutor mExecutor; private Handler mHandler; Loading Loading @@ -686,7 +686,7 @@ public class ScreenDecorations implements CoreStartable, Dumpable { // Watch color inversion and invert the overlay as needed. if (mColorInversionSetting == null) { mColorInversionSetting = new SettingObserver(mSecureSettings, mHandler, mColorInversionSetting = new UserSettingObserver(mSecureSettings, mHandler, Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED, mUserTracker.getUserId()) { @Override Loading
packages/SystemUI/src/com/android/systemui/controls/settings/ControlsSettingsRepositoryImpl.kt +3 −2 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCall import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.qs.SettingObserver import com.android.systemui.qs.UserSettingObserver import com.android.systemui.user.data.repository.UserRepository import com.android.systemui.util.settings.SecureSettings import javax.inject.Inject Loading Loading @@ -64,7 +64,8 @@ constructor( .flatMapLatest { userInfo -> conflatedCallbackFlow { val observer = object : SettingObserver(secureSettings, null, setting, userInfo.id) { object : UserSettingObserver(secureSettings, null, setting, userInfo.id) { override fun handleValueChanged( value: Int, observedChange: Boolean Loading
packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsClassicDebug.java +7 −10 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.res.Resources; import android.os.Bundle; import android.os.UserHandle; import android.util.Log; import androidx.annotation.NonNull; Loading @@ -56,15 +55,15 @@ import javax.inject.Named; /** * Concrete implementation of the a Flag manager that returns default values for debug builds * * <p> * Flags can be set (or unset) via the following adb command: * * <p> * adb shell cmd statusbar flag <id> <on|off|toggle|erase> * * <p> * Alternatively, you can change flags via a broadcast intent: * * <p> * adb shell am broadcast -a com.android.systemui.action.SET_FLAG --ei id <id> [--ez value <0|1>] * * <p> * To restore a flag back to its default, leave the `--ez value <0|1>` off of the command. */ @SysUISingleton Loading Loading @@ -319,8 +318,7 @@ public class FeatureFlagsClassicDebug implements FeatureFlagsClassic { Log.w(TAG, "Failed to set flag " + name + " to " + value); return; } mGlobalSettings.putStringForUser(mFlagManager.nameToSettingsKey(name), data, UserHandle.USER_CURRENT); mGlobalSettings.putString(mFlagManager.nameToSettingsKey(name), data); } <T> void eraseFlag(Flag<T> flag) { Loading Loading @@ -354,8 +352,7 @@ public class FeatureFlagsClassicDebug implements FeatureFlagsClassic { /** Works just like {@link #eraseFlag(String)} except that it doesn't restart SystemUI. */ private void eraseInternal(String name) { // We can't actually "erase" things from settings, but we can set them to empty! mGlobalSettings.putStringForUser(mFlagManager.nameToSettingsKey(name), "", UserHandle.USER_CURRENT); mGlobalSettings.putString(mFlagManager.nameToSettingsKey(name), ""); Log.i(TAG, "Erase name " + name); } Loading
packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java +2 −2 Original line number Diff line number Diff line Loading @@ -749,7 +749,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene @VisibleForTesting boolean shouldDisplayBugReport(@Nullable UserInfo user) { return user != null && user.isAdmin() && mGlobalSettings.getIntForUser(Settings.Secure.BUGREPORT_IN_POWER_MENU, 0, && mSecureSettings.getIntForUser(Settings.Secure.BUGREPORT_IN_POWER_MENU, 0, user.id) != 0; } Loading Loading @@ -1091,7 +1091,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene @Override public boolean showBeforeProvisioning() { return Build.isDebuggable() && mGlobalSettings.getIntForUser( return Build.isDebuggable() && mSecureSettings.getIntForUser( Settings.Secure.BUGREPORT_IN_POWER_MENU, 0, getCurrentUser().id) != 0 && getCurrentUser().isAdmin(); } Loading
packages/SystemUI/src/com/android/systemui/qs/SettingObserver.java +10 −29 Original line number Diff line number Diff line Loading @@ -20,15 +20,14 @@ import android.database.ContentObserver; import android.os.Handler; import com.android.systemui.statusbar.policy.Listenable; import com.android.systemui.util.settings.GlobalSettings; import com.android.systemui.util.settings.SecureSettings; import com.android.systemui.util.settings.SettingsProxy; import com.android.systemui.util.settings.SystemSettings; /** * Helper for managing secure, global, and system settings through use of {@link SettingsProxy}, * which is the common superclass of {@link SecureSettings}, {@link GlobalSettings}, and * {@link SystemSettings}. * Helper for managing global settings through use of {@link SettingsProxy}. This should * <em>not</em> be used for {@link SecureSettings} or {@link SystemSettings} since those must be * user-aware (instead, use {@link UserSettingObserver}). */ public abstract class SettingObserver extends ContentObserver implements Listenable { private final SettingsProxy mSettingsProxy; Loading @@ -36,23 +35,20 @@ public abstract class SettingObserver extends ContentObserver implements Listena private final int mDefaultValue; private boolean mListening; private int mUserId; private int mObservedValue; protected abstract void handleValueChanged(int value, boolean observedChange); public SettingObserver(SettingsProxy settingsProxy, Handler handler, String settingName, int userId) { this(settingsProxy, handler, settingName, userId, 0); public SettingObserver(SettingsProxy settingsProxy, Handler handler, String settingName) { this(settingsProxy, handler, settingName, 0); } public SettingObserver(SettingsProxy settingsProxy, Handler handler, String settingName, int userId, int defaultValue) { int defaultValue) { super(handler); mSettingsProxy = settingsProxy; mSettingName = settingName; mObservedValue = mDefaultValue = defaultValue; mUserId = userId; } public int getValue() { Loading @@ -65,11 +61,11 @@ public abstract class SettingObserver extends ContentObserver implements Listena * @param value The new value for the setting. */ public void setValue(int value) { mSettingsProxy.putIntForUser(mSettingName, value, mUserId); mSettingsProxy.putInt(mSettingName, value); } private int getValueFromProvider() { return mSettingsProxy.getIntForUser(mSettingName, mDefaultValue, mUserId); return mSettingsProxy.getInt(mSettingName, mDefaultValue); } @Override Loading @@ -78,8 +74,8 @@ public abstract class SettingObserver extends ContentObserver implements Listena mListening = listening; if (listening) { mObservedValue = getValueFromProvider(); mSettingsProxy.registerContentObserverForUser( mSettingsProxy.getUriFor(mSettingName), false, this, mUserId); mSettingsProxy.registerContentObserver( mSettingsProxy.getUriFor(mSettingName), false, this); } else { mSettingsProxy.unregisterContentObserver(this); mObservedValue = mDefaultValue; Loading @@ -94,21 +90,6 @@ public abstract class SettingObserver extends ContentObserver implements Listena handleValueChanged(value, changed); } /** * Set user handle for which to observe the setting. */ public void setUserId(int userId) { mUserId = userId; if (mListening) { setListening(false); setListening(true); } } public int getCurrentUser() { return mUserId; } public String getKey() { return mSettingName; } Loading