Implementation of custom fonts app wide

This commit is contained in:
M M Arif
2020-01-02 01:03:53 +05:00
parent e9dcfc57f7
commit 6d7308210b
22 changed files with 336 additions and 29 deletions

View File

@@ -0,0 +1,43 @@
package org.mian.gitnex.helpers;
import android.content.Context;
import android.graphics.Typeface;
import android.util.Log;
import java.lang.reflect.Field;
import java.util.Objects;
/**
* Author M M Arif
*/
public class FontsOverride {
public static void setDefaultFont(Context context,
String staticTypefaceFieldName, String fontAssetName) {
final Typeface regular = Typeface.createFromAsset(context.getAssets(),
fontAssetName);
replaceFont(staticTypefaceFieldName, regular);
}
private static void replaceFont(String staticTypefaceFieldName,
final Typeface newTypeface) {
try {
final Field staticField = Typeface.class
.getDeclaredField(staticTypefaceFieldName);
staticField.setAccessible(true);
staticField.set(null, newTypeface);
}
catch (NoSuchFieldException | IllegalAccessException e) {
Log.e("error", Objects.requireNonNull(e.getMessage()));
}
}
}