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

Commit a07474c4 authored by Jeremy Meyer's avatar Jeremy Meyer
Browse files

Have Typeface pass a cookie of -1 to search through all assets

Without this, when font are overlayed it will fail because it is looking
in the wrong place to load the font

Bug: 151770185
Test: Manual, example app that has a font that is overlayed
Change-Id: I64c5a436b7250cfd0a75f5de36c64f07a20d523a
parent 1af73c82
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -78,6 +78,13 @@ public final class AssetManager implements AutoCloseable {
    @GuardedBy("sSync") private static ApkAssets[] sSystemApkAssets = new ApkAssets[0];
    @GuardedBy("sSync") private static ArraySet<ApkAssets> sSystemApkAssetsSet;

    /**
     * Cookie value to use when the actual cookie is unknown. This value tells the system to search
     * all the ApkAssets for the asset.
     * @hide
     */
    public static final int COOKIE_UNKNOWN = -1;

    /**
     * Mode for {@link #open(String, int)}: no specific information about how
     * data will be accessed.
+1 −1
Original line number Diff line number Diff line
@@ -329,7 +329,7 @@ public class Typeface {
            FontFamily.Builder familyBuilder = null;
            for (final FontFileResourceEntry fontFile : filesEntry.getEntries()) {
                final Font.Builder fontBuilder = new Font.Builder(mgr, fontFile.getFileName(),
                        false /* isAsset */, 0 /* cookie */)
                        false /* isAsset */, AssetManager.COOKIE_UNKNOWN)
                        .setTtcIndex(fontFile.getTtcIndex())
                        .setFontVariationSettings(fontFile.getVariationSettings());
                if (fontFile.getWeight() != Typeface.RESOLVE_BY_FONT_TABLE) {
+1 −1
Original line number Diff line number Diff line
@@ -179,7 +179,7 @@ public final class Font {
         */
        public Builder(@NonNull AssetManager am, @NonNull String path) {
            try {
                mBuffer = createBuffer(am, path, true /* is asset */, 0 /* cookie */);
                mBuffer = createBuffer(am, path, true /* is asset */, AssetManager.COOKIE_UNKNOWN);
            } catch (IOException e) {
                mException = e;
            }