diff options
Diffstat (limited to 'libs/androidfw/ConfigDescription.cpp')
-rw-r--r-- | libs/androidfw/ConfigDescription.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libs/androidfw/ConfigDescription.cpp b/libs/androidfw/ConfigDescription.cpp index 1f3a89edb8af..19ead9583eb2 100644 --- a/libs/androidfw/ConfigDescription.cpp +++ b/libs/androidfw/ConfigDescription.cpp @@ -887,13 +887,16 @@ bool ConfigDescription::Dominates(const ConfigDescription& o) const { } // Locale de-duping is not-trivial, disable for now (b/62409213). - if (diff(o) & CONFIG_LOCALE) { + // We must also disable de-duping for all configuration qualifiers with precedence higher than + // locale (b/171892595) + if (diff(o) & (CONFIG_LOCALE | CONFIG_MCC | CONFIG_MNC)) { return false; } if (*this == DefaultConfig()) { return true; } + return MatchWithDensity(o) && !o.MatchWithDensity(*this) && !isMoreSpecificThan(o) && !o.HasHigherPrecedenceThan(*this); } |