Merge "Create new context with new resources"
This commit is contained in:
@@ -56,7 +56,6 @@ import android.os.ServiceManager;
|
||||
import android.provider.Telephony.SimInfo;
|
||||
import android.telephony.euicc.EuiccManager;
|
||||
import android.telephony.ims.ImsMmTelManager;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Log;
|
||||
import android.util.Pair;
|
||||
|
||||
@@ -2374,23 +2373,24 @@ public class SubscriptionManager {
|
||||
final SubscriptionInfo subInfo =
|
||||
SubscriptionManager.from(context).getActiveSubscriptionInfo(subId);
|
||||
|
||||
Configuration config = context.getResources().getConfiguration();
|
||||
Configuration newConfig = new Configuration();
|
||||
newConfig.setTo(config);
|
||||
Configuration overrideConfig = new Configuration();
|
||||
if (subInfo != null) {
|
||||
newConfig.mcc = subInfo.getMcc();
|
||||
newConfig.mnc = subInfo.getMnc();
|
||||
if (newConfig.mnc == 0) newConfig.mnc = Configuration.MNC_ZERO;
|
||||
overrideConfig.mcc = subInfo.getMcc();
|
||||
overrideConfig.mnc = subInfo.getMnc();
|
||||
if (overrideConfig.mnc == 0) overrideConfig.mnc = Configuration.MNC_ZERO;
|
||||
}
|
||||
|
||||
if (useRootLocale) {
|
||||
newConfig.setLocale(Locale.ROOT);
|
||||
overrideConfig.setLocale(Locale.ROOT);
|
||||
}
|
||||
|
||||
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
|
||||
DisplayMetrics newMetrics = new DisplayMetrics();
|
||||
newMetrics.setTo(metrics);
|
||||
Resources res = new Resources(context.getResources().getAssets(), newMetrics, newConfig);
|
||||
// Create new context with new configuration so that we can avoid modifying the passed in
|
||||
// context.
|
||||
// Note that if the original context configuration changes, the resources here will also
|
||||
// change for all values except those overridden by newConfig (e.g. if the device has an
|
||||
// orientation change).
|
||||
Context newContext = context.createConfigurationContext(overrideConfig);
|
||||
Resources res = newContext.getResources();
|
||||
|
||||
if (cacheKey != null) {
|
||||
// Save the newly created Resources in the resource cache.
|
||||
|
||||
Reference in New Issue
Block a user