Merge "Optimized resource reading"
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java b/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java
index 5eded76..d242d8a 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java
@@ -41,6 +41,9 @@
import com.android.settingslib.development.DevelopmentSettingsEnabler;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* Settings activity for the cell broadcast receiver.
*/
@@ -112,6 +115,9 @@
// For watch layout
private static final String KEY_WATCH_ALERT_REMINDER = "watch_alert_reminder";
+ // Resource cache
+ private static final Map<Integer, Resources> sResourcesCache = new HashMap<>();
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -527,6 +533,14 @@
return context.getResources();
}
}
- return SubscriptionManager.getResourcesForSubId(context, subId);
+
+ if (sResourcesCache.containsKey(subId)) {
+ return sResourcesCache.get(subId);
+ }
+
+ Resources res = SubscriptionManager.getResourcesForSubId(context, subId);
+ sResourcesCache.put(subId, res);
+
+ return res;
}
}