summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMitsuru Oshima <oshima@google.com>2009-07-17 17:23:31 -0700
committerMitsuru Oshima <oshima@google.com>2009-07-19 19:17:06 -0700
commit841f13c8e9ff3f7695b6c18a8abcec3c947983ff (patch)
tree9807b2d7f900cc841aac07eaa19b948a8189c381
parent5c536e9162721c460699a041959a0d67de1d20db (diff)
downloadframeworks_base-841f13c8e9ff3f7695b6c18a8abcec3c947983ff.zip
frameworks_base-841f13c8e9ff3f7695b6c18a8abcec3c947983ff.tar.gz
frameworks_base-841f13c8e9ff3f7695b6c18a8abcec3c947983ff.tar.bz2
* Reverted the change in PackageParser that I checked by accident
* More surface view fix. - correct event translation on surface view. - use compatible window * removed FLAG_NO_COMPATIBILITY_SCALE. It was my misunderstanding of how SurfaceView works, and this was not necessary. * Added compatibility related info to package dumpsys
-rw-r--r--core/java/android/content/pm/PackageParser.java2
-rw-r--r--core/java/android/content/res/CompatibilityInfo.java3
-rw-r--r--core/java/android/view/SurfaceView.java9
-rw-r--r--core/java/android/view/WindowManager.java9
-rw-r--r--services/java/com/android/server/PackageManagerService.java16
5 files changed, 25 insertions, 14 deletions
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index 903f482..cebb696 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -979,12 +979,12 @@ public class PackageParser {
/**
* TODO: enable this before code freeze. b/1967935
* *
- */
if ((densities == null || densities.length == 0)
&& (pkg.applicationInfo.targetSdkVersion
>= android.os.Build.VERSION_CODES.CUR_DEVELOPMENT)) {
pkg.supportsDensities = ApplicationInfo.ANY_DENSITIES_ARRAY;
}
+ */
return pkg;
}
diff --git a/core/java/android/content/res/CompatibilityInfo.java b/core/java/android/content/res/CompatibilityInfo.java
index 25e7a68..6e34cc8 100644
--- a/core/java/android/content/res/CompatibilityInfo.java
+++ b/core/java/android/content/res/CompatibilityInfo.java
@@ -224,8 +224,7 @@ public class CompatibilityInfo {
if (DBG) Log.d(TAG, "no translation required");
return null;
}
- if (!isScalingRequired() ||
- (params.flags & WindowManager.LayoutParams.FLAG_NO_COMPATIBILITY_SCALING) != 0) {
+ if (!isScalingRequired()) {
return null;
}
return new Translator();
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java
index 28c1fe1..aa701af 100644
--- a/core/java/android/view/SurfaceView.java
+++ b/core/java/android/view/SurfaceView.java
@@ -257,7 +257,7 @@ public class SurfaceView extends View {
// scales the event back to the pre-scaled coordinates for such surface.
if (mScaled) {
MotionEvent scaledBack = MotionEvent.obtain(event);
- scaledBack.scale(mTranslator.applicationScale);
+ mTranslator.translateEventInScreenToAppWindow(event);
try {
return super.dispatchTouchEvent(scaledBack);
} finally {
@@ -296,7 +296,8 @@ public class SurfaceView extends View {
if (!mHaveFrame) {
return;
}
- mTranslator = ((ViewRoot)getRootView().getParent()).mTranslator;
+ ViewRoot viewRoot = (ViewRoot) getRootView().getParent();
+ mTranslator = viewRoot.mTranslator;
float appScale = mTranslator == null ? 1.0f : mTranslator.applicationScale;
@@ -356,8 +357,10 @@ public class SurfaceView extends View {
| WindowManager.LayoutParams.FLAG_SCALED
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
- | WindowManager.LayoutParams.FLAG_NO_COMPATIBILITY_SCALING
;
+ if (!getContext().getResources().getCompatibilityInfo().supportsScreen()) {
+ mLayout.flags |= WindowManager.LayoutParams.FLAG_COMPATIBLE_WINDOW;
+ }
mLayout.memoryType = mRequestedType;
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index ba3bfa7..6a26a31 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -483,19 +483,12 @@ public interface WindowManager extends ViewManager {
* {@hide} */
public static final int FLAG_SHOW_WHEN_LOCKED = 0x00080000;
- /** Window flag: special flag to let a window ignore the compatibility scaling.
- * This is used by SurfaceView to pass this info into ViewRoot, and not used
- * by WindowManager.
- *
- * {@hide} */
- public static final int FLAG_NO_COMPATIBILITY_SCALING = 0x00100000;
-
/** Window flag: special flag to limit the size of the window to be
* original size ([320x480] x density). Used to create window for applications
* running under compatibility mode.
*
* {@hide} */
- public static final int FLAG_COMPATIBLE_WINDOW = 0x00200000;
+ public static final int FLAG_COMPATIBLE_WINDOW = 0x00100000;
/** Window flag: a special option intended for system dialogs. When
* this flag is set, the window will demand focus unconditionally when
diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java
index b85cf2c..d8dafb6 100644
--- a/services/java/com/android/server/PackageManagerService.java
+++ b/services/java/com/android/server/PackageManagerService.java
@@ -4905,6 +4905,22 @@ class PackageManagerService extends IPackageManager.Stub {
pw.print(" resourcePath="); pw.println(ps.resourcePathString);
if (ps.pkg != null) {
pw.print(" dataDir="); pw.println(ps.pkg.applicationInfo.dataDir);
+ pw.print(" targetSdk="); pw.println(ps.pkg.applicationInfo.targetSdkVersion);
+ pw.print(" densities="); pw.println(ps.pkg.supportsDensityList);
+ ArrayList<String> screens = new ArrayList<String>();
+ if ((ps.pkg.applicationInfo.flags &
+ ApplicationInfo.FLAG_SUPPORTS_NORMAL_SCREENS) != 0) {
+ screens.add("medium");
+ }
+ if ((ps.pkg.applicationInfo.flags &
+ ApplicationInfo.FLAG_SUPPORTS_LARGE_SCREENS) != 0) {
+ screens.add("large");
+ }
+ if ((ps.pkg.applicationInfo.flags &
+ ApplicationInfo.FLAG_SUPPORTS_SMALL_SCREENS) != 0) {
+ screens.add("small,");
+ }
+ pw.print(" supportsScreens="); pw.println(screens);
}
pw.print(" timeStamp="); pw.println(ps.getTimeStampStr());
pw.print(" signatures="); pw.println(ps.signatures);