summaryrefslogtreecommitdiffstats
path: root/core/java/android/app
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/app')
-rw-r--r--core/java/android/app/ActivityThread.java26
-rw-r--r--core/java/android/app/AppGlobals.java7
2 files changed, 17 insertions, 16 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index b409f2f..bd83762 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -200,6 +200,8 @@ public final class ActivityThread {
static Handler sMainThreadHandler; // set once in main()
+ Bundle mCoreSettings = null;
+
private static final class ActivityClientRecord {
IBinder token;
int ident;
@@ -354,7 +356,6 @@ public final class ActivityThread {
boolean restrictedBackupMode;
Configuration config;
boolean handlingProfiling;
- Bundle coreSettings;
public String toString() {
return "AppBindData{appInfo=" + appInfo + "}";
}
@@ -559,6 +560,8 @@ public final class ActivityThread {
ServiceManager.initServiceCache(services);
}
+ setCoreSettings(coreSettings);
+
AppBindData data = new AppBindData();
data.processName = processName;
data.appInfo = appInfo;
@@ -570,7 +573,6 @@ public final class ActivityThread {
data.debugMode = debugMode;
data.restrictedBackupMode = isRestrictedBackupMode;
data.config = config;
- data.coreSettings = coreSettings;
queueOrSendMessage(H.BIND_APPLICATION, data);
}
@@ -898,8 +900,8 @@ public final class ActivityThread {
pw.println(String.format(format, objs));
}
- public void setCoreSettings(Bundle settings) {
- queueOrSendMessage(H.SET_CORE_SETTINGS, settings);
+ public void setCoreSettings(Bundle coreSettings) {
+ queueOrSendMessage(H.SET_CORE_SETTINGS, coreSettings);
}
}
@@ -2720,10 +2722,8 @@ public final class ActivityThread {
}
private void handleSetCoreSettings(Bundle coreSettings) {
- if (mBoundApplication != null) {
- synchronized (mBoundApplication) {
- mBoundApplication.coreSettings = coreSettings;
- }
+ synchronized (mPackages) {
+ mCoreSettings = coreSettings;
}
}
@@ -3990,13 +3990,9 @@ public final class ActivityThread {
}
public int getIntCoreSetting(String key, int defaultValue) {
- if (mBoundApplication == null) {
- return defaultValue;
- }
- synchronized (mBoundApplication) {
- Bundle coreSettings = mBoundApplication.coreSettings;
- if (coreSettings != null) {
- return coreSettings.getInt(key, defaultValue);
+ synchronized (mPackages) {
+ if (mCoreSettings != null) {
+ return mCoreSettings.getInt(key, defaultValue);
} else {
return defaultValue;
}
diff --git a/core/java/android/app/AppGlobals.java b/core/java/android/app/AppGlobals.java
index 55515b8..2b6db8b 100644
--- a/core/java/android/app/AppGlobals.java
+++ b/core/java/android/app/AppGlobals.java
@@ -55,6 +55,11 @@ public class AppGlobals {
* @return The core settings.
*/
public static int getIntCoreSetting(String key, int defaultValue) {
- return ActivityThread.currentActivityThread().getIntCoreSetting(key, defaultValue);
+ ActivityThread currentActivityThread = ActivityThread.currentActivityThread();
+ if (currentActivityThread != null) {
+ return currentActivityThread.getIntCoreSetting(key, defaultValue);
+ } else {
+ return defaultValue;
+ }
}
}