mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 09:20:19 +01:00
Allow injectable typefaces in image text editor.
Co-authored-by: Rashad Sookram <rashad@signal.org>
This commit is contained in:
committed by
Cody Henthorne
parent
eed45b57a1
commit
732b67d8cb
@@ -0,0 +1,31 @@
|
||||
package org.thoughtcrime.securesms.fonts
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Typeface
|
||||
import org.signal.imageeditor.core.Renderer
|
||||
import org.signal.imageeditor.core.RendererContext
|
||||
import org.thoughtcrime.securesms.util.FutureTaskListener
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.ExecutionException
|
||||
|
||||
/**
|
||||
* RenderContext TypefaceProvider that provides typefaces using TextFont.
|
||||
*/
|
||||
object FontTypefaceProvider : RendererContext.TypefaceProvider {
|
||||
override fun getSelectedTypeface(context: Context, renderer: Renderer, invalidate: RendererContext.Invalidate): Typeface {
|
||||
return when (val fontResult = Fonts.resolveFont(context, Locale.getDefault(), TextFont.BOLD)) {
|
||||
is Fonts.FontResult.Immediate -> fontResult.typeface
|
||||
is Fonts.FontResult.Async -> {
|
||||
fontResult.future.addListener(object : FutureTaskListener<Typeface> {
|
||||
override fun onSuccess(result: Typeface?) {
|
||||
invalidate.onInvalidate(renderer)
|
||||
}
|
||||
|
||||
override fun onFailure(exception: ExecutionException?) = Unit
|
||||
})
|
||||
|
||||
fontResult.placeholder
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user