diff options
author | Jean-Baptiste Queru <jbq@google.com> | 2009-07-29 14:25:07 -0700 |
---|---|---|
committer | Jean-Baptiste Queru <jbq@google.com> | 2009-07-29 14:25:07 -0700 |
commit | a8675f67e33bc7337d148358783b0fd138b501ff (patch) | |
tree | 71fb9d10330ef9161b3ead71d01074b3ef9e53ba /core/java/android/app/ApplicationContext.java | |
parent | cf4550c3198d6b3d92cdc52707fe70d7cc0caa9f (diff) | |
download | frameworks_base-a8675f67e33bc7337d148358783b0fd138b501ff.zip frameworks_base-a8675f67e33bc7337d148358783b0fd138b501ff.tar.gz frameworks_base-a8675f67e33bc7337d148358783b0fd138b501ff.tar.bz2 |
donut snapshot
Diffstat (limited to 'core/java/android/app/ApplicationContext.java')
-rw-r--r-- | core/java/android/app/ApplicationContext.java | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/core/java/android/app/ApplicationContext.java b/core/java/android/app/ApplicationContext.java index 38ea686..afb2fe9 100644 --- a/core/java/android/app/ApplicationContext.java +++ b/core/java/android/app/ApplicationContext.java @@ -1341,21 +1341,8 @@ class ApplicationContext extends Context { if (pi != null) { ApplicationContext c = new ApplicationContext(); c.mRestricted = (flags & CONTEXT_RESTRICTED) == CONTEXT_RESTRICTED; - c.init(pi, null, mMainThread); + c.init(pi, null, mMainThread, mResources); if (c.mResources != null) { - Resources newRes = c.mResources; - if (mResources.getCompatibilityInfo().applicationScale != - newRes.getCompatibilityInfo().applicationScale) { - DisplayMetrics dm = mMainThread.getDisplayMetricsLocked(false); - c.mResources = new Resources(newRes.getAssets(), dm, - newRes.getConfiguration(), - mResources.getCompatibilityInfo().copy()); - if (DEBUG) { - Log.d(TAG, "loaded context has different scaling. Using container's" + - " compatiblity info:" + mResources.getDisplayMetrics()); - } - - } return c; } } @@ -1417,8 +1404,24 @@ class ApplicationContext extends Context { final void init(ActivityThread.PackageInfo packageInfo, IBinder activityToken, ActivityThread mainThread) { + init(packageInfo, activityToken, mainThread, null); + } + + final void init(ActivityThread.PackageInfo packageInfo, + IBinder activityToken, ActivityThread mainThread, + Resources container) { mPackageInfo = packageInfo; mResources = mPackageInfo.getResources(mainThread); + + if (container != null && container.getCompatibilityInfo().applicationScale != + mResources.getCompatibilityInfo().applicationScale) { + if (DEBUG) { + Log.d(TAG, "loaded context has different scaling. Using container's" + + " compatiblity info:" + container.getDisplayMetrics()); + } + mResources = mainThread.getTopLevelResources( + mPackageInfo.getResDir(), container.getCompatibilityInfo().copy()); + } mMainThread = mainThread; mContentResolver = new ApplicationContentResolver(this, mainThread); |