diff options
| author | Mitsuru Oshima <oshima@google.com> | 2009-07-02 20:06:08 -0700 |
|---|---|---|
| committer | Mitsuru Oshima <oshima@google.com> | 2009-07-06 21:13:39 -0700 |
| commit | 569076c9f6bdadb4d3285a26e069634a839b5b87 (patch) | |
| tree | 55f3486ab528a454de07dbdb815b58f9e83a3839 /core/java/android/app | |
| parent | dbee95cacff9d2faf30638e64abe26fbeb128787 (diff) | |
| download | frameworks_base-569076c9f6bdadb4d3285a26e069634a839b5b87.zip frameworks_base-569076c9f6bdadb4d3285a26e069634a839b5b87.tar.gz frameworks_base-569076c9f6bdadb4d3285a26e069634a839b5b87.tar.bz2 | |
widgets scaling fix. Use container's compatibility info and display metrics when container and widgets disagree.
Diffstat (limited to 'core/java/android/app')
| -rw-r--r-- | core/java/android/app/ApplicationContext.java | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/core/java/android/app/ApplicationContext.java b/core/java/android/app/ApplicationContext.java index 61cd0fe..38ea686 100644 --- a/core/java/android/app/ApplicationContext.java +++ b/core/java/android/app/ApplicationContext.java @@ -88,8 +88,10 @@ import android.os.FileUtils.FileStatus; import android.telephony.TelephonyManager; import android.text.ClipboardManager; import android.util.AndroidRuntimeException; +import android.util.DisplayMetrics; import android.util.Log; import android.view.ContextThemeWrapper; +import android.view.Display; import android.view.LayoutInflater; import android.view.WindowManagerImpl; import android.view.accessibility.AccessibilityManager; @@ -149,6 +151,7 @@ class ReceiverRestrictedContext extends ContextWrapper { */ class ApplicationContext extends Context { private final static String TAG = "ApplicationContext"; + private final static boolean DEBUG = false; private final static boolean DEBUG_ICONS = false; private static final Object sSync = new Object(); @@ -1238,7 +1241,7 @@ class ApplicationContext extends Context { @Override public int checkUriPermission(Uri uri, String readPermission, String writePermission, int pid, int uid, int modeFlags) { - if (false) { + if (DEBUG) { Log.i("foo", "checkUriPermission: uri=" + uri + "readPermission=" + readPermission + " writePermission=" + writePermission + " pid=" + pid + " uid=" + uid + " mode" + modeFlags); @@ -1340,6 +1343,19 @@ class ApplicationContext extends Context { c.mRestricted = (flags & CONTEXT_RESTRICTED) == CONTEXT_RESTRICTED; c.init(pi, null, mMainThread); 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; } } @@ -1459,7 +1475,7 @@ class ApplicationContext extends Context { if ((mode&MODE_WORLD_WRITEABLE) != 0) { perms |= FileUtils.S_IWOTH; } - if (false) { + if (DEBUG) { Log.i(TAG, "File " + name + ": mode=0x" + Integer.toHexString(mode) + ", perms=0x" + Integer.toHexString(perms)); } |
