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

Commit 79a8ffe5 authored by Adam Lesinski's avatar Adam Lesinski
Browse files

Ensures that CompatibilityInfo is always set in Resources

- Adds null checks when setting mCompatibilityInfo and uses default no-op
  CompatibilityInfo object instead of null
- Removes null checks when calling methods on mCompatibilityInfo since it is never
  null

bug:10204942

Change-Id: I36e88f5cdceb46b8b19fb902270ef74023a81546
parent 0286f5e2
Loading
Loading
Loading
Loading
+13 −12
Original line number Diff line number Diff line
@@ -195,7 +195,9 @@ public class Resources {
            CompatibilityInfo compatInfo, IBinder token) {
        mAssets = assets;
        mMetrics.setToDefaults();
        if (compatInfo != null) {
            mCompatibilityInfo = compatInfo;
        }
        mToken = new WeakReference<IBinder>(token);
        updateConfiguration(config, metrics);
        assets.ensureStringBlocks();
@@ -1536,9 +1538,8 @@ public class Resources {
            // it would be cleaner and more maintainble to just be
            // consistently dealing with a compatible display everywhere in
            // the framework.
            if (mCompatibilityInfo != null) {
            mCompatibilityInfo.applyToDisplayMetrics(mMetrics);
            }

            int configChanges = 0xfffffff;
            if (config != null) {
                mTmpConfig.setTo(config);
@@ -1546,9 +1547,9 @@ public class Resources {
                if (density == Configuration.DENSITY_DPI_UNDEFINED) {
                    density = mMetrics.noncompatDensityDpi;
                }
                if (mCompatibilityInfo != null) {

                mCompatibilityInfo.applyToConfiguration(density, mTmpConfig);
                }

                if (mTmpConfig.locale == null) {
                    mTmpConfig.locale = Locale.getDefault();
                    mTmpConfig.setLayoutDirection(mTmpConfig.locale);
@@ -1697,8 +1698,7 @@ public class Resources {
     * @hide
     */
    public CompatibilityInfo getCompatibilityInfo() {
        return mCompatibilityInfo != null ? mCompatibilityInfo
                : CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO;
        return mCompatibilityInfo;
    }

    /**
@@ -1706,9 +1706,11 @@ public class Resources {
     * @hide
     */
    public void setCompatibilityInfo(CompatibilityInfo ci) {
        if (ci != null) {
            mCompatibilityInfo = ci;
            updateConfiguration(mConfiguration, mMetrics);
        }
    }
    
    /**
     * Return a resource identifier for the given resource name.  A fully
@@ -2407,6 +2409,5 @@ public class Resources {
        mMetrics.setToDefaults();
        updateConfiguration(null, null);
        mAssets.ensureStringBlocks();
        mCompatibilityInfo = CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO;
    }
}