Allow injectable typefaces in image text editor.

Co-authored-by: Rashad Sookram <rashad@signal.org>
This commit is contained in:
Alex Hart
2022-03-11 14:27:07 -04:00
committed by Cody Henthorne
parent eed45b57a1
commit 732b67d8cb
13 changed files with 103 additions and 41 deletions

View File

@@ -1,12 +1,15 @@
package org.signal.imageeditor.app;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
@@ -24,6 +27,8 @@ import androidx.core.content.ContextCompat;
import org.signal.imageeditor.app.renderers.UriRenderer;
import org.signal.imageeditor.app.renderers.UrlRenderer;
import org.signal.imageeditor.core.ImageEditorView;
import org.signal.imageeditor.core.Renderer;
import org.signal.imageeditor.core.RendererContext;
import org.signal.imageeditor.core.UndoRedoStackListener;
import org.signal.imageeditor.core.model.EditorElement;
import org.signal.imageeditor.core.model.EditorModel;
@@ -43,6 +48,17 @@ public final class MainActivity extends AppCompatActivity {
private ImageEditorView imageEditorView;
private Menu menu;
private final RendererContext.TypefaceProvider typefaceProvider = (context, renderer, invalidate) -> {
if (Build.VERSION.SDK_INT < 26) {
return Typeface.create(Typeface.DEFAULT, Typeface.BOLD);
} else {
return new Typeface.Builder("")
.setFallback("sans-serif")
.setWeight(900)
.build();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -206,7 +222,7 @@ public final class MainActivity extends AppCompatActivity {
new String[]{ Manifest.permission.WRITE_EXTERNAL_STORAGE },
0);
} else {
Bitmap bitmap = imageEditorView.getModel().render(this);
Bitmap bitmap = imageEditorView.getModel().render(this, typefaceProvider);
try {
Uri uri = saveBmp(bitmap);