Loading core/java/android/content/res/ResourcesKey.java +2 −1 Original line number Diff line number Diff line Loading @@ -167,7 +167,8 @@ public final class ResourcesKey { } if (android.content.res.Flags.ignoreNonPublicConfigDiffForResourcesKey()) { // Do not compare the configuration fields that won't affect resources. if (mOverrideConfiguration.diffPublicOnly(mOverrideConfiguration) != 0) { if (mOverrideConfiguration.diff(peer.mOverrideConfiguration, true /* compareUndefined */, true /* publicOnly */) != 0) { return false; } } else if (!Objects.equals(mOverrideConfiguration, peer.mOverrideConfiguration)) { Loading core/tests/coretests/src/android/content/res/ResourcesManagerTest.java +10 −0 Original line number Diff line number Diff line Loading @@ -378,6 +378,7 @@ public class ResourcesManagerTest { @RequiresFlagsEnabled(Flags.FLAG_IGNORE_NON_PUBLIC_CONFIG_DIFF_FOR_RESOURCES_KEY) public void testNonPublicDiffOverrideConfigShareImpl() { final Configuration overrideConfig1 = new Configuration(); overrideConfig1.densityDpi = 100; overrideConfig1.windowConfiguration.setAppBounds(0, 0, 500, 1000); final Resources resources1 = mResourcesManager.getResources( null, APP_ONE_RES_DIR, null, null, null, null, null, overrideConfig1, Loading @@ -390,9 +391,18 @@ public class ResourcesManagerTest { null, APP_ONE_RES_DIR, null, null, null, null, null, overrideConfig2, CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO, null, null); // Verify that ResourcesKey distinguishes undefined fields. final Configuration emptyConfig = new Configuration(); final Resources resources3 = mResourcesManager.getResources( null, APP_ONE_RES_DIR, null, null, null, null, null, emptyConfig, CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO, null, null); assertNotNull(resources1); assertNotNull(resources2); assertNotNull(emptyConfig); assertSame(resources1.getImpl(), resources2.getImpl()); assertNotSame(resources3.getImpl(), resources1.getImpl()); assertNotSame(resources3.getImpl(), resources2.getImpl()); } @Test Loading Loading
core/java/android/content/res/ResourcesKey.java +2 −1 Original line number Diff line number Diff line Loading @@ -167,7 +167,8 @@ public final class ResourcesKey { } if (android.content.res.Flags.ignoreNonPublicConfigDiffForResourcesKey()) { // Do not compare the configuration fields that won't affect resources. if (mOverrideConfiguration.diffPublicOnly(mOverrideConfiguration) != 0) { if (mOverrideConfiguration.diff(peer.mOverrideConfiguration, true /* compareUndefined */, true /* publicOnly */) != 0) { return false; } } else if (!Objects.equals(mOverrideConfiguration, peer.mOverrideConfiguration)) { Loading
core/tests/coretests/src/android/content/res/ResourcesManagerTest.java +10 −0 Original line number Diff line number Diff line Loading @@ -378,6 +378,7 @@ public class ResourcesManagerTest { @RequiresFlagsEnabled(Flags.FLAG_IGNORE_NON_PUBLIC_CONFIG_DIFF_FOR_RESOURCES_KEY) public void testNonPublicDiffOverrideConfigShareImpl() { final Configuration overrideConfig1 = new Configuration(); overrideConfig1.densityDpi = 100; overrideConfig1.windowConfiguration.setAppBounds(0, 0, 500, 1000); final Resources resources1 = mResourcesManager.getResources( null, APP_ONE_RES_DIR, null, null, null, null, null, overrideConfig1, Loading @@ -390,9 +391,18 @@ public class ResourcesManagerTest { null, APP_ONE_RES_DIR, null, null, null, null, null, overrideConfig2, CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO, null, null); // Verify that ResourcesKey distinguishes undefined fields. final Configuration emptyConfig = new Configuration(); final Resources resources3 = mResourcesManager.getResources( null, APP_ONE_RES_DIR, null, null, null, null, null, emptyConfig, CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO, null, null); assertNotNull(resources1); assertNotNull(resources2); assertNotNull(emptyConfig); assertSame(resources1.getImpl(), resources2.getImpl()); assertNotSame(resources3.getImpl(), resources1.getImpl()); assertNotSame(resources3.getImpl(), resources2.getImpl()); } @Test Loading