diff --git a/app/src/main/java/org/schabi/newpipe/App.java b/app/src/main/java/org/schabi/newpipe/App.java index 80dc68b3c..8fbb7451b 100644 --- a/app/src/main/java/org/schabi/newpipe/App.java +++ b/app/src/main/java/org/schabi/newpipe/App.java @@ -20,6 +20,7 @@ import org.schabi.newpipe.ktx.ExceptionUtils; import org.schabi.newpipe.settings.NewPipeSettings; import org.schabi.newpipe.util.BridgeStateSaverInitializer; +import org.schabi.newpipe.util.FontManager; import org.schabi.newpipe.util.Localization; import org.schabi.newpipe.util.ServiceHelper; import org.schabi.newpipe.util.StateSaver; @@ -102,6 +103,7 @@ public void onCreate() { Localization.getPreferredContentCountry(this)); Localization.initPrettyTime(Localization.resolvePrettyTime(getApplicationContext())); + FontManager.init(this); BridgeStateSaverInitializer.init(this); StateSaver.init(this); initNotificationChannels(); diff --git a/app/src/main/java/org/schabi/newpipe/MainActivity.java b/app/src/main/java/org/schabi/newpipe/MainActivity.java index 216b3c7ce..2185c6247 100644 --- a/app/src/main/java/org/schabi/newpipe/MainActivity.java +++ b/app/src/main/java/org/schabi/newpipe/MainActivity.java @@ -176,13 +176,9 @@ protected void onCreate(final Bundle savedInstanceState) { UpdateSettingsFragment.askForConsentToUpdateChecks(this); } - // Apply the preferred font globally - final String preferredFont = getPreferredFont(this); - setUpFont(preferredFont); - - if (!preferredFont.equals(getString(R.string.default_font_key))) { + // if (!preferredFont.equals(getString(R.string.default_font_key))) { Fonty.setFonts(this); - } + // } } @Override @@ -199,51 +195,6 @@ protected void onPostCreate(final Bundle savedInstanceState) { NewVersionWorker.enqueueNewVersionCheckingWork(app, false); } } - public String getPreferredFont(final Context context) { - final SharedPreferences preferences = PreferenceManager - .getDefaultSharedPreferences(context); - return preferences.getString("preferred_font", getString(R.string.default_font_key)); - } - - // build the relevant font TypeFace - public void setUpFont(final String preferredFont) { - switch (preferredFont) { - case "Arial": - Fonty.context(this) - .normalTypeface("arial.ttf") - .build(); - break; - case "Broadway": - Fonty.context(this) - .normalTypeface("BROADW.TTF") - .build(); - break; - case "Algerian": - Fonty.context(this) - .normalTypeface("Algerian.TTF") - .build(); - break; - case "Bell MT": - Fonty.context(this) - .normalTypeface("BELL.TTF") - .build(); - break; - case "Calibri": - Fonty.context(this) - .normalTypeface("calibrii.ttf") - .build(); - break; - case "Time New Roman": - Fonty.context(this) - .normalTypeface("times.ttf") - .build(); - break; - default: - // do nothing - break; - } - - } private void setupDrawer() throws ExtractionException { addDrawerMenuForCurrentService(); diff --git a/app/src/main/java/org/schabi/newpipe/util/FontManager.java b/app/src/main/java/org/schabi/newpipe/util/FontManager.java new file mode 100644 index 000000000..8a75e27b0 --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/util/FontManager.java @@ -0,0 +1,66 @@ +package org.schabi.newpipe.util; + +import android.content.Context; +import android.content.SharedPreferences; +import androidx.preference.Preference; +import androidx.preference.PreferenceManager; +import com.marcinorlowski.fonty.Fonty; +import org.schabi.newpipe.R; + + +public final class FontManager { + private FontManager() { } + + public static void init(final Context context) { + // Apply the preferred font globally + final String preferredFont = getPreferredFont(context); + + setUpFont(preferredFont, context); + } + + public static String getPreferredFont(final Context context) { + final SharedPreferences preferences = PreferenceManager + .getDefaultSharedPreferences(context); + return preferences.getString("preferred_font", (getString(R.string.default_font_key))); + } + + // build the relevant font TypeFace + public static void setUpFont(final String preferredFont, final Context context) { + switch (preferredFont) { + case "Arial": + Fonty.context(context) + .normalTypeface("arial.ttf") + .build(); + break; + case "Broadway": + Fonty.context(context) + .normalTypeface("BROADW.TTF") + .build(); + break; + case "Algerian": + Fonty.context(context) + .normalTypeface("Algerian.TTF") + .build(); + break; + case "Bell MT": + Fonty.context(context) + .normalTypeface("BELL.TTF") + .build(); + break; + case "Calibri": + Fonty.context(context) + .normalTypeface("calibrii.ttf") + .build(); + break; + case "Time New Roman": + Fonty.context(context) + .normalTypeface("times.ttf") + .build(); + break; + default: + // do nothing + break; + } + + } +}