Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ef7243e0 authored by d34d's avatar d34d Committed by Clark Scheff
Browse files

Themes: Don't use themed fonts for non themable packages

Change-Id: I8a86e13a7ebc8be59286700c26a55d9d6a013db9
parent 0deb5c80
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import android.content.res.Configuration;
import android.content.res.ThemeConfig;
import android.content.res.Resources;
import android.content.res.ResourcesKey;
import android.graphics.Typeface;
import android.hardware.display.DisplayManagerGlobal;
import android.os.IBinder;
import android.os.RemoteException;
@@ -282,6 +283,10 @@ public class ResourcesManager {
                attachCommonAssets(assets, config.themeConfig);
                iconsAttached = attachIconAssets(assets, config.themeConfig);
            }
        } else if (!isThemeable && config.themeConfig != null &&
                !ThemeConfig.SYSTEM_DEFAULT.equals(config.themeConfig.getFontPkgName())) {
            // use system fonts if not themeable and a theme font is currently in use
            Typeface.recreateDefaults(true);
        }

        r = new Resources(assets, dm, config, compatInfo);
+10 −5
Original line number Diff line number Diff line
@@ -350,7 +350,7 @@ public class Typeface {
     *
     * This should only be called once, from the static class initializer block.
     */
    private static void init() {
    private static void init(boolean forceSystemFonts) {
        // Load font config and initialize Minikin state
        File systemFontConfigLocation = getSystemFontConfigLocation();
        File themeFontConfigLocation = getThemeFontConfigLocation();
@@ -360,7 +360,7 @@ public class Typeface {
        File configFile = null;
        File fontDir;

        if (themeConfigFile.exists()) {
        if (!forceSystemFonts && themeConfigFile.exists()) {
            configFile = themeConfigFile;
            fontDir = getThemeFontDirLocation();
        } else {
@@ -437,15 +437,20 @@ public class Typeface {
        }
    }

    /** @hide  */
    public static void recreateDefaults() {
        recreateDefaults(false);
    }

    /**
     * Clears caches in java and skia.
     * Skia will then reparse font config
     * @hide
     */
    public static void recreateDefaults() {
    public static void recreateDefaults(boolean forceSystemFonts) {
        sTypefaceCache.clear();
        sSystemFontMap.clear();
        init();
        init(forceSystemFonts);

        DEFAULT_INTERNAL = create((String) null, 0);
        DEFAULT_BOLD_INTERNAL = create((String) null, Typeface.BOLD);
@@ -463,7 +468,7 @@ public class Typeface {
    }

    static {
        init();
        init(false);
        // Set up defaults and typefaces exposed in public API
        DEFAULT_INTERNAL         = create((String) null, 0);
        DEFAULT_BOLD_INTERNAL    = create((String) null, Typeface.BOLD);