Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9f87274d authored by Adam Bookatz's avatar Adam Bookatz
Browse files

SpecialUserHandle annotation: SettingsProvider

Add @CanBeCURRENT to methods in SettingsProvider.

Test: N/A Just documentation annotations
Flag: EXEMPT annotations
Bug: 373455030
Change-Id: I93cd07b7cffed9d597d669c8db95b5e55561aa53
parent 6ee7692b
Loading
Loading
Loading
Loading
+88 −74
Original line number Diff line number Diff line
@@ -30,6 +30,8 @@ import android.annotation.PermissionName;
import android.annotation.RequiresPermission;
import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
import android.annotation.SpecialUsers.CanBeCURRENT;
import android.annotation.SpecialUsers.CannotBeSpecialUser;
import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.annotation.TestApi;
@@ -3572,12 +3574,12 @@ public final class Settings {
        }
        public boolean putStringForUser(ContentResolver cr, String name, String value,
                String tag, boolean makeDefault, final int userHandle,
                String tag, boolean makeDefault, final @CanBeCURRENT @UserIdInt int userId,
                boolean overrideableByRestore) {
            try {
                Bundle arg = new Bundle();
                arg.putString(Settings.NameValueTable.VALUE, value);
                arg.putInt(CALL_METHOD_USER_KEY, userHandle);
                arg.putInt(CALL_METHOD_USER_KEY, userId);
                if (tag != null) {
                    arg.putString(CALL_METHOD_TAG_KEY, tag);
                }
@@ -3645,8 +3647,9 @@ public final class Settings {
        }
        @UnsupportedAppUsage
        public String getStringForUser(ContentResolver cr, String name, final int userHandle) {
            final boolean isSelf = (userHandle == UserHandle.myUserId());
        public String getStringForUser(ContentResolver cr, String name,
                final @CanBeCURRENT @UserIdInt int userId) {
            final boolean isSelf = (userId == UserHandle.myUserId());
            final AttributionSource attributionSource = cr.getAttributionSource();
            final int deviceId =
                    android.companion.virtualdevice.flags.Flags.deviceAwareSettingsOverride()
@@ -3665,7 +3668,7 @@ public final class Settings {
                                Log.i(TAG, "Generation changed for setting:" + name
                                        + " type:" + mUri.getPath()
                                        + " in package:" + cr.getPackageName()
                                        + " and user:" + userHandle);
                                        + " and user:" + userId);
                            }
                            // When a generation number changes, remove cached value, remove the old
                            // generation tracker and request a new one
@@ -3681,14 +3684,13 @@ public final class Settings {
                    }
                }
                if (DEBUG) {
                    Log.i(TAG, "Cache miss for setting:" + name + " for user:"
                            + userHandle);
                    Log.i(TAG, "Cache miss for setting:" + name + " for user:" + userId);
                }
                // Generation tracker doesn't exist or the value isn't cached
                needsGenerationTracker = true;
            } else {
                if (DEBUG || LOCAL_LOGV) {
                    Log.v(TAG, "get setting for user " + userHandle
                    Log.v(TAG, "get setting for user " + userId
                            + " by user " + UserHandle.myUserId() + " so skipping cache");
                }
            }
@@ -3740,7 +3742,7 @@ public final class Settings {
                try {
                    Bundle args = new Bundle();
                    if (!isSelf) {
                        args.putInt(CALL_METHOD_USER_KEY, userHandle);
                        args.putInt(CALL_METHOD_USER_KEY, userId);
                    }
                    if (needsGenerationTracker) {
                        args.putString(CALL_METHOD_TRACK_GENERATION_KEY, null);
@@ -3748,7 +3750,7 @@ public final class Settings {
                            Log.i(TAG, "Requested generation tracker for setting:" + name
                                    + " type:" + mUri.getPath()
                                    + " in package:" + cr.getPackageName()
                                    + " and user:" + userHandle);
                                    + " and user:" + userId);
                        }
                    }
                    Bundle b;
@@ -3789,7 +3791,7 @@ public final class Settings {
                                                    + name
                                                    + " type:" + mUri.getPath()
                                                    + " in package:" + cr.getPackageName()
                                                    + " and user:" + userHandle
                                                    + " and user:" + userId
                                                    + " with index:" + index);
                                        }
                                        // Always make sure to close any pre-existing tracker before
@@ -3815,7 +3817,7 @@ public final class Settings {
                            }
                        } else {
                            if (DEBUG || LOCAL_LOGV) {
                                Log.i(TAG, "call-query of user " + userHandle
                                Log.i(TAG, "call-query of user " + userId
                                        + " by " + UserHandle.myUserId()
                                        + (isInSystemServer() ? " in system_server" : "")
                                        + " so not updating cache");
@@ -4374,19 +4376,19 @@ public final class Settings {
        /** @hide */
        @UnsupportedAppUsage
        public static String getStringForUser(ContentResolver resolver, String name,
                int userHandle) {
                @CanBeCURRENT @UserIdInt int userId) {
            if (MOVED_TO_SECURE.contains(name)) {
                Log.w(TAG, "Setting " + name + " has moved from android.provider.Settings.System"
                        + " to android.provider.Settings.Secure, returning read-only value.");
                return Secure.getStringForUser(resolver, name, userHandle);
                return Secure.getStringForUser(resolver, name, userId);
            }
            if (MOVED_TO_GLOBAL.contains(name) || MOVED_TO_SECURE_THEN_GLOBAL.contains(name)) {
                Log.w(TAG, "Setting " + name + " has moved from android.provider.Settings.System"
                        + " to android.provider.Settings.Global, returning read-only value.");
                return Global.getStringForUser(resolver, name, userHandle);
                return Global.getStringForUser(resolver, name, userId);
            }
            return sNameValueCache.getStringForUser(resolver, name, userHandle);
            return sNameValueCache.getStringForUser(resolver, name, userId);
        }
        /**
@@ -4444,22 +4446,23 @@ public final class Settings {
        /** @hide */
        @UnsupportedAppUsage
        public static boolean putStringForUser(ContentResolver resolver, String name, String value,
                int userHandle) {
            return putStringForUser(resolver, name, value, userHandle,
                @CanBeCURRENT @UserIdInt int userId) {
            return putStringForUser(resolver, name, value, userId,
                    DEFAULT_OVERRIDEABLE_BY_RESTORE);
        }
        private static boolean putStringForUser(ContentResolver resolver, String name, String value,
                int userHandle, boolean overrideableByRestore) {
                @CanBeCURRENT @UserIdInt int userId, boolean overrideableByRestore) {
            return putStringForUser(resolver, name, value, /* tag= */ null,
                    /* makeDefault= */ false, userHandle, overrideableByRestore);
                    /* makeDefault= */ false, userId, overrideableByRestore);
        }
        private static boolean putStringForUser(ContentResolver resolver, String name, String value,
                String tag, boolean makeDefault, int userHandle, boolean overrideableByRestore) {
                String tag, boolean makeDefault, @CanBeCURRENT @UserIdInt int userId,
                boolean overrideableByRestore) {
            if (LOCAL_LOGV) {
                Log.v(TAG, "System.putString(name=" + name + ", value=" + value + ") for "
                        + userHandle);
                        + userId);
            }
            if (MOVED_TO_SECURE.contains(name)) {
                Log.w(TAG, "Setting " + name + " has moved from android.provider.Settings.System"
@@ -4472,7 +4475,7 @@ public final class Settings {
                return false;
            }
            return sNameValueCache.putStringForUser(resolver, name, value, tag, makeDefault,
                    userHandle, overrideableByRestore);
                    userId, overrideableByRestore);
        }
        /**
@@ -4504,7 +4507,7 @@ public final class Settings {
         * @param resolver Handle to the content resolver.
         * @param tag Optional tag which should be associated with the settings to reset.
         * @param mode The reset mode.
         * @param userHandle The user for which to reset to defaults.
         * @param userId The user for which to reset to defaults.
         *
         * @see #RESET_MODE_PACKAGE_DEFAULTS
         * @see #RESET_MODE_UNTRUSTED_DEFAULTS
@@ -4514,10 +4517,11 @@ public final class Settings {
         * @hide
         */
        public static void resetToDefaultsAsUser(@NonNull ContentResolver resolver,
                @Nullable String tag, @ResetMode int mode, @IntRange(from = 0) int userHandle) {
                @Nullable String tag, @ResetMode int mode,
                @IntRange(from = 0) @CannotBeSpecialUser @UserIdInt int userId) {
            try {
                Bundle arg = new Bundle();
                arg.putInt(CALL_METHOD_USER_KEY, userHandle);
                arg.putInt(CALL_METHOD_USER_KEY, userId);
                if (tag != null) {
                    arg.putString(CALL_METHOD_TAG_KEY, tag);
                }
@@ -4575,8 +4579,9 @@ public final class Settings {
        /** @hide */
        @UnsupportedAppUsage
        public static int getIntForUser(ContentResolver cr, String name, int def, int userHandle) {
            String v = getStringForUser(cr, name, userHandle);
        public static int getIntForUser(ContentResolver cr, String name, int def,
                @CanBeCURRENT @UserIdInt int userId) {
            String v = getStringForUser(cr, name, userId);
            return parseIntSettingWithDefault(v, def);
        }
@@ -4605,9 +4610,10 @@ public final class Settings {
        /** @hide */
        @UnsupportedAppUsage
        public static int getIntForUser(ContentResolver cr, String name, int userHandle)
        public static int getIntForUser(ContentResolver cr, String name,
                @CanBeCURRENT @UserIdInt int userId)
                throws SettingNotFoundException {
            String v = getStringForUser(cr, name, userHandle);
            String v = getStringForUser(cr, name, userId);
            return parseIntSetting(v, name);
        }
@@ -4631,8 +4637,8 @@ public final class Settings {
        /** @hide */
        @UnsupportedAppUsage
        public static boolean putIntForUser(ContentResolver cr, String name, int value,
                int userHandle) {
            return putStringForUser(cr, name, Integer.toString(value), userHandle);
                @CanBeCURRENT @UserIdInt int userId) {
            return putStringForUser(cr, name, Integer.toString(value), userId);
        }
        /**
@@ -4655,8 +4661,8 @@ public final class Settings {
        /** @hide */
        public static long getLongForUser(ContentResolver cr, String name, long def,
                int userHandle) {
            String v = getStringForUser(cr, name, userHandle);
                @CanBeCURRENT @UserIdInt int userId) {
            String v = getStringForUser(cr, name, userId);
            return parseLongSettingWithDefault(v, def);
        }
@@ -4683,9 +4689,10 @@ public final class Settings {
        }
        /** @hide */
        public static long getLongForUser(ContentResolver cr, String name, int userHandle)
        public static long getLongForUser(ContentResolver cr, String name,
                @CanBeCURRENT @UserIdInt int userId)
                throws SettingNotFoundException {
            String v = getStringForUser(cr, name, userHandle);
            String v = getStringForUser(cr, name, userId);
            return parseLongSetting(v, name);
        }
@@ -4708,8 +4715,8 @@ public final class Settings {
        /** @hide */
        public static boolean putLongForUser(ContentResolver cr, String name, long value,
                int userHandle) {
            return putStringForUser(cr, name, Long.toString(value), userHandle);
                @CanBeCURRENT @UserIdInt int userId) {
            return putStringForUser(cr, name, Long.toString(value), userId);
        }
        /**
@@ -4732,8 +4739,8 @@ public final class Settings {
        /** @hide */
        public static float getFloatForUser(ContentResolver cr, String name, float def,
                int userHandle) {
            String v = getStringForUser(cr, name, userHandle);
                @CanBeCURRENT @UserIdInt int userId) {
            String v = getStringForUser(cr, name, userId);
            return parseFloatSettingWithDefault(v, def);
        }
@@ -4761,9 +4768,10 @@ public final class Settings {
        }
        /** @hide */
        public static float getFloatForUser(ContentResolver cr, String name, int userHandle)
        public static float getFloatForUser(ContentResolver cr, String name,
                @CanBeCURRENT @UserIdInt int userId)
                throws SettingNotFoundException {
            String v = getStringForUser(cr, name, userHandle);
            String v = getStringForUser(cr, name, userId);
            return parseFloatSetting(v, name);
        }
@@ -4786,8 +4794,8 @@ public final class Settings {
        /** @hide */
        public static boolean putFloatForUser(ContentResolver cr, String name, float value,
                int userHandle) {
            return putStringForUser(cr, name, Float.toString(value), userHandle);
                @CanBeCURRENT @UserIdInt int userId) {
            return putStringForUser(cr, name, Float.toString(value), userId);
        }
        /**
@@ -7256,11 +7264,11 @@ public final class Settings {
        /** @hide */
        @UnsupportedAppUsage
        public static String getStringForUser(ContentResolver resolver, String name,
                int userHandle) {
                @CanBeCURRENT @UserIdInt int userId) {
            if (MOVED_TO_GLOBAL.contains(name)) {
                Log.w(TAG, "Setting " + name + " has moved from android.provider.Settings.Secure"
                        + " to android.provider.Settings.Global.");
                return Global.getStringForUser(resolver, name, userHandle);
                return Global.getStringForUser(resolver, name, userId);
            }
            if (MOVED_TO_LOCK_SETTINGS.contains(name) && Process.myUid() != Process.SYSTEM_UID) {
@@ -7284,7 +7292,7 @@ public final class Settings {
                        " longer accessible. See API documentation for potential replacements.");
            }
            return sNameValueCache.getStringForUser(resolver, name, userHandle);
            return sNameValueCache.getStringForUser(resolver, name, userId);
        }
        /**
@@ -7319,8 +7327,8 @@ public final class Settings {
        /** @hide */
        @UnsupportedAppUsage
        public static boolean putStringForUser(ContentResolver resolver, String name, String value,
                int userHandle) {
            return putStringForUser(resolver, name, value, null, false, userHandle,
                @CanBeCURRENT @UserIdInt int userId) {
            return putStringForUser(resolver, name, value, null, false, userId,
                    DEFAULT_OVERRIDEABLE_BY_RESTORE);
        }
@@ -7328,19 +7336,20 @@ public final class Settings {
        @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
        public static boolean putStringForUser(@NonNull ContentResolver resolver,
                @NonNull String name, @Nullable String value, @Nullable String tag,
                boolean makeDefault, @UserIdInt int userHandle, boolean overrideableByRestore) {
                boolean makeDefault, @CanBeCURRENT @UserIdInt int userId,
                boolean overrideableByRestore) {
            if (LOCAL_LOGV) {
                Log.v(TAG, "Secure.putString(name=" + name + ", value=" + value + ") for "
                        + userHandle);
                        + userId);
            }
            if (MOVED_TO_GLOBAL.contains(name)) {
                Log.w(TAG, "Setting " + name + " has moved from android.provider.Settings.Secure"
                        + " to android.provider.Settings.Global");
                return Global.putStringForUser(resolver, name, value,
                        tag, makeDefault, userHandle, DEFAULT_OVERRIDEABLE_BY_RESTORE);
                        tag, makeDefault, userId, DEFAULT_OVERRIDEABLE_BY_RESTORE);
            }
            return sNameValueCache.putStringForUser(resolver, name, value, tag,
                    makeDefault, userHandle, overrideableByRestore);
                    makeDefault, userId, overrideableByRestore);
        }
        /**
@@ -7422,7 +7431,7 @@ public final class Settings {
         * @param resolver Handle to the content resolver.
         * @param tag Optional tag which should be associated with the settings to reset.
         * @param mode The reset mode.
         * @param userHandle The user for which to reset to defaults.
         * @param userId The user for which to reset to defaults.
         *
         * @see #RESET_MODE_PACKAGE_DEFAULTS
         * @see #RESET_MODE_UNTRUSTED_DEFAULTS
@@ -7432,10 +7441,11 @@ public final class Settings {
         * @hide
         */
        public static void resetToDefaultsAsUser(@NonNull ContentResolver resolver,
                @Nullable String tag, @ResetMode int mode, @IntRange(from = 0) int userHandle) {
                @Nullable String tag, @ResetMode int mode,
                @IntRange(from = 0) @CannotBeSpecialUser @UserIdInt int userId) {
            try {
                Bundle arg = new Bundle();
                arg.putInt(CALL_METHOD_USER_KEY, userHandle);
                arg.putInt(CALL_METHOD_USER_KEY, userId);
                if (tag != null) {
                    arg.putString(CALL_METHOD_TAG_KEY, tag);
                }
@@ -7488,8 +7498,9 @@ public final class Settings {
        /** @hide */
        @UnsupportedAppUsage
        public static int getIntForUser(ContentResolver cr, String name, int def, int userHandle) {
            String v = getStringForUser(cr, name, userHandle);
        public static int getIntForUser(ContentResolver cr, String name, int def,
                @CanBeCURRENT @UserIdInt int userId) {
            String v = getStringForUser(cr, name, userId);
            return parseIntSettingWithDefault(v, def);
        }
@@ -7517,9 +7528,10 @@ public final class Settings {
        }
        /** @hide */
        public static int getIntForUser(ContentResolver cr, String name, int userHandle)
        public static int getIntForUser(ContentResolver cr, String name,
                @CanBeCURRENT @UserIdInt int userId)
                throws SettingNotFoundException {
            String v = getStringForUser(cr, name, userHandle);
            String v = getStringForUser(cr, name, userId);
            return parseIntSetting(v, name);
        }
@@ -7543,8 +7555,8 @@ public final class Settings {
        /** @hide */
        @UnsupportedAppUsage
        public static boolean putIntForUser(ContentResolver cr, String name, int value,
                int userHandle) {
            return putStringForUser(cr, name, Integer.toString(value), userHandle);
                @CanBeCURRENT @UserIdInt int userId) {
            return putStringForUser(cr, name, Integer.toString(value), userId);
        }
        /**
@@ -7568,8 +7580,8 @@ public final class Settings {
        /** @hide */
        @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
        public static long getLongForUser(ContentResolver cr, String name, long def,
                int userHandle) {
            String v = getStringForUser(cr, name, userHandle);
                @CanBeCURRENT @UserIdInt int userId) {
            String v = getStringForUser(cr, name, userId);
            return parseLongSettingWithDefault(v, def);
        }
@@ -7596,9 +7608,10 @@ public final class Settings {
        }
        /** @hide */
        public static long getLongForUser(ContentResolver cr, String name, int userHandle)
        public static long getLongForUser(ContentResolver cr, String name,
                @CanBeCURRENT @UserIdInt int userId)
                throws SettingNotFoundException {
            String v = getStringForUser(cr, name, userHandle);
            String v = getStringForUser(cr, name, userId);
            return parseLongSetting(v, name);
        }
@@ -7622,8 +7635,8 @@ public final class Settings {
        /** @hide */
        @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
        public static boolean putLongForUser(ContentResolver cr, String name, long value,
                int userHandle) {
            return putStringForUser(cr, name, Long.toString(value), userHandle);
                @CanBeCURRENT @UserIdInt int userId) {
            return putStringForUser(cr, name, Long.toString(value), userId);
        }
        /**
@@ -7646,8 +7659,8 @@ public final class Settings {
        /** @hide */
        public static float getFloatForUser(ContentResolver cr, String name, float def,
                int userHandle) {
            String v = getStringForUser(cr, name, userHandle);
                @CanBeCURRENT @UserIdInt int userId) {
            String v = getStringForUser(cr, name, userId);
            return parseFloatSettingWithDefault(v, def);
        }
@@ -7675,9 +7688,10 @@ public final class Settings {
        }
        /** @hide */
        public static float getFloatForUser(ContentResolver cr, String name, int userHandle)
        public static float getFloatForUser(ContentResolver cr, String name,
                @CanBeCURRENT @UserIdInt int userId)
                throws SettingNotFoundException {
            String v = getStringForUser(cr, name, userHandle);
            String v = getStringForUser(cr, name, userId);
            return parseFloatSetting(v, name);
        }
@@ -7700,8 +7714,8 @@ public final class Settings {
        /** @hide */
        public static boolean putFloatForUser(ContentResolver cr, String name, float value,
                int userHandle) {
            return putStringForUser(cr, name, Float.toString(value), userHandle);
                @CanBeCURRENT @UserIdInt int userId) {
            return putStringForUser(cr, name, Float.toString(value), userId);
        }
        /**
+28 −18

File changed.

Preview size limit exceeded, changes collapsed.