Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 841f13c8 authored by Mitsuru Oshima's avatar Mitsuru Oshima
Browse files

* 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
parent 5c536e91
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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;
    }
+1 −2
Original line number Diff line number Diff line
@@ -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();
+6 −3
Original line number Diff line number Diff line
@@ -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;

+1 −8
Original line number Diff line number Diff line
@@ -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
+16 −0
Original line number Diff line number Diff line
@@ -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);