diff --git a/core/api/current.txt b/core/api/current.txt index 373b01ade06a1..d91e93e4174fc 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -7383,12 +7383,12 @@ package android.app.admin { method @NonNull public java.util.List getDelegatedScopes(@Nullable android.content.ComponentName, @NonNull String); method @Nullable public String getDeviceManagerRoleHolderPackageName(); method public CharSequence getDeviceOwnerLockScreenInfo(); - method @Nullable public android.graphics.drawable.Drawable getDrawable(@NonNull String, @NonNull String, @NonNull java.util.concurrent.Callable); - method @Nullable public android.graphics.drawable.Drawable getDrawable(@NonNull String, @NonNull String, @NonNull String, @NonNull java.util.concurrent.Callable); + method @Nullable public android.graphics.drawable.Drawable getDrawable(@NonNull String, @NonNull String, @NonNull java.util.function.Supplier); + method @Nullable public android.graphics.drawable.Drawable getDrawable(@NonNull String, @NonNull String, @NonNull String, @NonNull java.util.function.Supplier); method @Nullable public android.graphics.drawable.Icon getDrawableAsIcon(@NonNull String, @NonNull String, @NonNull String, @Nullable android.graphics.drawable.Icon); method @Nullable public android.graphics.drawable.Icon getDrawableAsIcon(@NonNull String, @NonNull String, @Nullable android.graphics.drawable.Icon); - method @Nullable public android.graphics.drawable.Drawable getDrawableForDensity(@NonNull String, @NonNull String, int, @NonNull java.util.concurrent.Callable); - method @Nullable public android.graphics.drawable.Drawable getDrawableForDensity(@NonNull String, @NonNull String, @NonNull String, int, @NonNull java.util.concurrent.Callable); + method @Nullable public android.graphics.drawable.Drawable getDrawableForDensity(@NonNull String, @NonNull String, int, @NonNull java.util.function.Supplier); + method @Nullable public android.graphics.drawable.Drawable getDrawableForDensity(@NonNull String, @NonNull String, @NonNull String, int, @NonNull java.util.function.Supplier); method public CharSequence getEndUserSessionMessage(@NonNull android.content.ComponentName); method @NonNull public String getEnrollmentSpecificId(); method @Nullable public android.app.admin.FactoryResetProtectionPolicy getFactoryResetProtectionPolicy(@Nullable android.content.ComponentName); diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 5d3d502cf06e9..8d01a7774a8ae 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -1088,8 +1088,8 @@ package android.app.admin { method @Nullable @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.QUERY_ADMIN_POLICY}) public java.util.List getPermittedInputMethodsForCurrentUser(); method @Nullable public android.content.ComponentName getProfileOwner() throws java.lang.IllegalArgumentException; method @Nullable @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS}) public String getProfileOwnerNameAsUser(int) throws java.lang.IllegalArgumentException; - method @Nullable public String getString(@NonNull String, @NonNull java.util.concurrent.Callable); - method @Nullable public String getString(@NonNull String, @NonNull java.util.concurrent.Callable, @NonNull java.lang.Object...); + method @Nullable public String getString(@NonNull String, @NonNull java.util.function.Supplier); + method @Nullable public String getString(@NonNull String, @NonNull java.util.function.Supplier, @NonNull java.lang.Object...); method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS}) public int getUserProvisioningState(); method public boolean isDeviceManaged(); method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isDeviceProvisioned(); diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 96dd6e7ff8a1d..67d9681a15331 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -132,11 +132,11 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; -import java.util.concurrent.Callable; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.Executor; import java.util.function.Consumer; +import java.util.function.Supplier; // TODO(b/172376923) - add CarDevicePolicyManager examples below (or remove reference to it). /** @@ -15215,7 +15215,7 @@ public class DevicePolicyManager { * *

This API uses the screen density returned from {@link Resources#getConfiguration()}, to * set a different value use - * {@link #getDrawableForDensity(String, String, int, Callable)}. + * {@link #getDrawableForDensity(String, String, int, Supplier)}. * *

Callers should register for {@link #ACTION_DEVICE_POLICY_RESOURCE_UPDATED} to get * notified when a resource has been updated. @@ -15232,16 +15232,16 @@ public class DevicePolicyManager { public Drawable getDrawable( @NonNull @DevicePolicyResources.UpdatableDrawableId String drawableId, @NonNull @DevicePolicyResources.UpdatableDrawableStyle String drawableStyle, - @NonNull Callable defaultDrawableLoader) { + @NonNull Supplier defaultDrawableLoader) { return getDrawable( drawableId, drawableStyle, Drawables.Source.UNDEFINED, defaultDrawableLoader); } /** - * Similar to {@link #getDrawable(String, String, Callable)}, but also accepts + * Similar to {@link #getDrawable(String, String, Supplier)}, but also accepts * a {@code drawableSource} (see {@link DevicePolicyResources.Drawables.Source}) which * could result in returning a different drawable than - * {@link #getDrawable(String, String, Callable)} + * {@link #getDrawable(String, String, Supplier)} * if an override was set for that specific source. * *

Calls to this API will not return {@code null} unless no updated drawable was found @@ -15261,7 +15261,7 @@ public class DevicePolicyManager { @NonNull @DevicePolicyResources.UpdatableDrawableId String drawableId, @NonNull @DevicePolicyResources.UpdatableDrawableStyle String drawableStyle, @NonNull @DevicePolicyResources.UpdatableDrawableSource String drawableSource, - @NonNull Callable defaultDrawableLoader) { + @NonNull Supplier defaultDrawableLoader) { Objects.requireNonNull(drawableId, "drawableId can't be null"); Objects.requireNonNull(drawableStyle, "drawableStyle can't be null"); @@ -15296,7 +15296,7 @@ public class DevicePolicyManager { } /** - * Similar to {@link #getDrawable(String, String, Callable)}, but also accepts + * Similar to {@link #getDrawable(String, String, Supplier)}, but also accepts * {@code density}. See {@link Resources#getDrawableForDensity(int, int, Resources.Theme)}. * *

Calls to this API will not return {@code null} unless no updated drawable was found @@ -15318,7 +15318,7 @@ public class DevicePolicyManager { @NonNull @DevicePolicyResources.UpdatableDrawableId String drawableId, @NonNull @DevicePolicyResources.UpdatableDrawableStyle String drawableStyle, int density, - @NonNull Callable defaultDrawableLoader) { + @NonNull Supplier defaultDrawableLoader) { return getDrawableForDensity( drawableId, drawableStyle, @@ -15328,7 +15328,7 @@ public class DevicePolicyManager { } /** - * Similar to {@link #getDrawable(String, String, String, Callable)}, but also accepts + * Similar to {@link #getDrawable(String, String, String, Supplier)}, but also accepts * {@code density}. See {@link Resources#getDrawableForDensity(int, int, Resources.Theme)}. * *

Calls to this API will not return {@code null} unless no updated drawable was found @@ -15352,7 +15352,7 @@ public class DevicePolicyManager { @NonNull @DevicePolicyResources.UpdatableDrawableStyle String drawableStyle, @NonNull @DevicePolicyResources.UpdatableDrawableSource String drawableSource, int density, - @NonNull Callable defaultDrawableLoader) { + @NonNull Supplier defaultDrawableLoader) { Objects.requireNonNull(drawableId, "drawableId can't be null"); Objects.requireNonNull(drawableStyle, "drawableStyle can't be null"); @@ -15383,7 +15383,7 @@ public class DevicePolicyManager { } /** - * Similar to {@link #getDrawable(String, String, String, Callable)} but returns an + * Similar to {@link #getDrawable(String, String, String, Supplier)} but returns an * {@link Icon} instead of a {@link Drawable}. * * @param drawableId The drawable ID to get the updated resource for. @@ -15425,7 +15425,7 @@ public class DevicePolicyManager { } /** - * Similar to {@link #getDrawable(String, String, Callable)} but returns an {@link Icon} + * Similar to {@link #getDrawable(String, String, Supplier)} but returns an {@link Icon} * instead of a {@link Drawable}. * * @param drawableId The drawable ID to get the updated resource for. @@ -15531,7 +15531,7 @@ public class DevicePolicyManager { @Nullable public String getString( @NonNull @DevicePolicyResources.UpdatableStringId String stringId, - @NonNull Callable defaultStringLoader) { + @NonNull Supplier defaultStringLoader) { Objects.requireNonNull(stringId, "stringId can't be null"); Objects.requireNonNull(defaultStringLoader, "defaultStringLoader can't be null"); @@ -15558,7 +15558,7 @@ public class DevicePolicyManager { } /** - * Similar to {@link #getString(String, Callable)} but accepts {@code formatArgs} and returns a + * Similar to {@link #getString(String, Supplier)} but accepts {@code formatArgs} and returns a * localized formatted string, substituting the format arguments as defined in * {@link java.util.Formatter} and {@link java.lang.String#format}, (see * {@link Resources#getString(int, Object...)}). @@ -15578,7 +15578,7 @@ public class DevicePolicyManager { @SuppressLint("SamShouldBeLast") public String getString( @NonNull @DevicePolicyResources.UpdatableStringId String stringId, - @NonNull Callable defaultStringLoader, + @NonNull Supplier defaultStringLoader, @NonNull Object... formatArgs) { Objects.requireNonNull(stringId, "stringId can't be null"); diff --git a/core/java/android/app/admin/ParcelableResource.java b/core/java/android/app/admin/ParcelableResource.java index 0b1b166add40c..bcae2846ad423 100644 --- a/core/java/android/app/admin/ParcelableResource.java +++ b/core/java/android/app/admin/ParcelableResource.java @@ -39,7 +39,7 @@ import java.io.IOException; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Objects; -import java.util.concurrent.Callable; +import java.util.function.Supplier; /** * Used to store the required information to load a resource that was updated using @@ -179,7 +179,7 @@ public final class ParcelableResource implements Parcelable { public Drawable getDrawable( Context context, int density, - @NonNull Callable defaultDrawableLoader) { + @NonNull Supplier defaultDrawableLoader) { // TODO(b/203548565): properly handle edge case when the device manager role holder is // unavailable because it's being updated. try { @@ -203,7 +203,7 @@ public final class ParcelableResource implements Parcelable { @Nullable public String getString( Context context, - @NonNull Callable defaultStringLoader) { + @NonNull Supplier defaultStringLoader) { // TODO(b/203548565): properly handle edge case when the device manager role holder is // unavailable because it's being updated. try { @@ -227,7 +227,7 @@ public final class ParcelableResource implements Parcelable { @Nullable public String getString( Context context, - @NonNull Callable defaultStringLoader, + @NonNull Supplier defaultStringLoader, @NonNull Object... formatArgs) { // TODO(b/203548565): properly handle edge case when the device manager role holder is // unavailable because it's being updated. @@ -268,26 +268,18 @@ public final class ParcelableResource implements Parcelable { * returns the {@link Drawable} loaded from calling {@code defaultDrawableLoader}. */ @Nullable - public static Drawable loadDefaultDrawable(@NonNull Callable defaultDrawableLoader) { - try { - Objects.requireNonNull(defaultDrawableLoader, "defaultDrawableLoader can't be null"); - return defaultDrawableLoader.call(); - } catch (Exception e) { - throw new RuntimeException("Couldn't load default drawable: ", e); - } + public static Drawable loadDefaultDrawable(@NonNull Supplier defaultDrawableLoader) { + Objects.requireNonNull(defaultDrawableLoader, "defaultDrawableLoader can't be null"); + return defaultDrawableLoader.get(); } /** * returns the {@link String} loaded from calling {@code defaultStringLoader}. */ @Nullable - public static String loadDefaultString(@NonNull Callable defaultStringLoader) { - try { - Objects.requireNonNull(defaultStringLoader, "defaultStringLoader can't be null"); - return defaultStringLoader.call(); - } catch (Exception e) { - throw new RuntimeException("Couldn't load default string: ", e); - } + public static String loadDefaultString(@NonNull Supplier defaultStringLoader) { + Objects.requireNonNull(defaultStringLoader, "defaultStringLoader can't be null"); + return defaultStringLoader.get(); } /**