diff options
| -rw-r--r-- | api/current.txt | 2 | ||||
| -rw-r--r-- | api/system-current.txt | 2 | ||||
| -rw-r--r-- | api/test-current.txt | 2 | ||||
| -rw-r--r-- | core/java/android/provider/FontsContract.java | 14 | ||||
| -rw-r--r-- | core/tests/coretests/src/android/provider/FontsContractE2ETest.java | 6 |
5 files changed, 15 insertions, 11 deletions
diff --git a/api/current.txt b/api/current.txt index 0491fb000d1b..5b7f457abb8b 100644 --- a/api/current.txt +++ b/api/current.txt @@ -34488,7 +34488,7 @@ package android.provider { method public static android.graphics.Typeface buildTypeface(android.content.Context, android.os.CancellationSignal, android.provider.FontsContract.FontInfo[], int, boolean, java.lang.String); method public static android.graphics.Typeface buildTypeface(android.content.Context, android.os.CancellationSignal, android.provider.FontsContract.FontInfo[]); method public static android.provider.FontsContract.FontFamilyResult fetchFonts(android.content.Context, android.os.CancellationSignal, android.graphics.fonts.FontRequest) throws android.content.pm.PackageManager.NameNotFoundException; - method public static void requestFont(android.content.Context, android.graphics.fonts.FontRequest, android.provider.FontsContract.FontRequestCallback, android.os.Handler); + method public static void requestFonts(android.content.Context, android.graphics.fonts.FontRequest, android.os.Handler, android.os.CancellationSignal, android.provider.FontsContract.FontRequestCallback); } public static final class FontsContract.Columns implements android.provider.BaseColumns { diff --git a/api/system-current.txt b/api/system-current.txt index c14ece6e11de..921a97dfa8f1 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -37478,7 +37478,7 @@ package android.provider { method public static android.graphics.Typeface buildTypeface(android.content.Context, android.os.CancellationSignal, android.provider.FontsContract.FontInfo[], int, boolean, java.lang.String); method public static android.graphics.Typeface buildTypeface(android.content.Context, android.os.CancellationSignal, android.provider.FontsContract.FontInfo[]); method public static android.provider.FontsContract.FontFamilyResult fetchFonts(android.content.Context, android.os.CancellationSignal, android.graphics.fonts.FontRequest) throws android.content.pm.PackageManager.NameNotFoundException; - method public static void requestFont(android.content.Context, android.graphics.fonts.FontRequest, android.provider.FontsContract.FontRequestCallback, android.os.Handler); + method public static void requestFonts(android.content.Context, android.graphics.fonts.FontRequest, android.os.Handler, android.os.CancellationSignal, android.provider.FontsContract.FontRequestCallback); } public static final class FontsContract.Columns implements android.provider.BaseColumns { diff --git a/api/test-current.txt b/api/test-current.txt index 2ed56449d92c..75ddd8d2b63d 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -34624,7 +34624,7 @@ package android.provider { method public static android.graphics.Typeface buildTypeface(android.content.Context, android.os.CancellationSignal, android.provider.FontsContract.FontInfo[], int, boolean, java.lang.String); method public static android.graphics.Typeface buildTypeface(android.content.Context, android.os.CancellationSignal, android.provider.FontsContract.FontInfo[]); method public static android.provider.FontsContract.FontFamilyResult fetchFonts(android.content.Context, android.os.CancellationSignal, android.graphics.fonts.FontRequest) throws android.content.pm.PackageManager.NameNotFoundException; - method public static void requestFont(android.content.Context, android.graphics.fonts.FontRequest, android.provider.FontsContract.FontRequestCallback, android.os.Handler); + method public static void requestFonts(android.content.Context, android.graphics.fonts.FontRequest, android.os.Handler, android.os.CancellationSignal, android.provider.FontsContract.FontRequestCallback); } public static final class FontsContract.Columns implements android.provider.BaseColumns { diff --git a/core/java/android/provider/FontsContract.java b/core/java/android/provider/FontsContract.java index bcd1b6b7c55a..4621763df5a7 100644 --- a/core/java/android/provider/FontsContract.java +++ b/core/java/android/provider/FontsContract.java @@ -442,11 +442,15 @@ public class FontsContract { * @param context A context to be used for fetching from font provider. * @param request A {@link FontRequest} object that identifies the provider and query for the * request. May not be null. - * @param callback A callback that will be triggered when results are obtained. May not be null. * @param handler A handler to be processed the font fetching. + * @param cancellationSignal A signal to cancel the operation in progress, or null if none. If + * the operation is canceled, then {@link + * android.os.OperationCanceledException} will be thrown. + * @param callback A callback that will be triggered when results are obtained. May not be null. */ - public static void requestFont(@NonNull Context context, @NonNull FontRequest request, - @NonNull FontRequestCallback callback, @NonNull Handler handler) { + public static void requestFonts(@NonNull Context context, @NonNull FontRequest request, + @NonNull Handler handler, @Nullable CancellationSignal cancellationSignal, + @NonNull FontRequestCallback callback) { final Handler callerThreadHandler = new Handler(); final Typeface cachedTypeface = sTypefaceCache.get(request.getIdentifier()); @@ -458,7 +462,7 @@ public class FontsContract { handler.post(() -> { FontFamilyResult result; try { - result = fetchFonts(context, null /* cancellation signal */, request); + result = fetchFonts(context, cancellationSignal, request); } catch (NameNotFoundException e) { callerThreadHandler.post(() -> callback.onTypefaceRequestFailed( FontRequestCallback.FAIL_REASON_PROVIDER_NOT_FOUND)); @@ -513,7 +517,7 @@ public class FontsContract { } } - final Typeface typeface = buildTypeface(context, null /* cancellation signal */, fonts); + final Typeface typeface = buildTypeface(context, cancellationSignal, fonts); if (typeface == null) { // Something went wrong during reading font files. This happens if the given font // file is an unsupported font type. diff --git a/core/tests/coretests/src/android/provider/FontsContractE2ETest.java b/core/tests/coretests/src/android/provider/FontsContractE2ETest.java index 479f6dd0e495..78c7f4d8716b 100644 --- a/core/tests/coretests/src/android/provider/FontsContractE2ETest.java +++ b/core/tests/coretests/src/android/provider/FontsContractE2ETest.java @@ -120,7 +120,7 @@ public class FontsContractE2ETest { inst.runOnMainSync(() -> { FontRequest request = new FontRequest( AUTHORITY, PACKAGE, "singleFontFamily", SIGNATURE); - FontsContract.requestFont(ctx, request, callback, new Handler()); + FontsContract.requestFonts(ctx, request, new Handler(), null, callback); }); inst.waitForIdleSync(); assertEquals(1, callback.getSuccessCallCount()); @@ -131,7 +131,7 @@ public class FontsContractE2ETest { inst.runOnMainSync(() -> { FontRequest request = new FontRequest( AUTHORITY, PACKAGE, "singleFontFamily", SIGNATURE); - FontsContract.requestFont(ctx, request, callback2, new Handler()); + FontsContract.requestFonts(ctx, request, new Handler(), null, callback2); }); inst.waitForIdleSync(); assertEquals(1, callback2.getSuccessCallCount()); @@ -142,7 +142,7 @@ public class FontsContractE2ETest { inst.runOnMainSync(() -> { FontRequest request = new FontRequest( AUTHORITY, PACKAGE, "singleFontFamily2", SIGNATURE); - FontsContract.requestFont(ctx, request, callback3, new Handler()); + FontsContract.requestFonts(ctx, request, new Handler(), null, callback3); }); inst.waitForIdleSync(); assertEquals(1, callback3.getSuccessCallCount()); |