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 {
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 {
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 {
* @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());
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));
}
}
- 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.
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());
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());
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());