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

Commit 2a3c67c0 authored by Joe Onorato's avatar Joe Onorato Committed by Android Git Automerger
Browse files

am cfb046de: am 2c09a9c0: am 5520610c: Merge "Make adb shell am display-size...

am cfb046de: am 2c09a9c0: am 5520610c: Merge "Make adb shell am display-size persistent." into honeycomb-mr2

* commit 'cfb046de':
  Make adb shell am display-size persistent.
parents 620d69d8 cfb046de
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -2562,6 +2562,13 @@ public final class Settings {
        public static final String LOCK_SCREEN_OWNER_INFO_ENABLED =
            "lock_screen_owner_info_enabled";

        /**
         * The saved value for WindowManagerService.setForcedDisplaySize().
         * Two integers separated by a comma.  If unset, then use the real display size.
         * @hide
         */
        public static final String DISPLAY_SIZE_FORCED = "display_size_forced";

        /**
         * Whether assisted GPS should be enabled or not.
         * @hide
+31 −1
Original line number Diff line number Diff line
@@ -6002,6 +6002,10 @@ public class WindowManagerService extends IWindowManager.Stub
        }

        mPolicy.systemReady();

        synchronized (mWindowMap) {
            readForcedDisplaySizeLocked();
        }
    }

    // This is an animation that does nothing: it just immediately finishes
@@ -6517,6 +6521,8 @@ public class WindowManagerService extends IWindowManager.Stub
                        ? shortDimen : mInitialDisplayHeight;
            }
            setForcedDisplaySizeLocked(width, height);
            Settings.Secure.putString(mContext.getContentResolver(),
                    Settings.Secure.DISPLAY_SIZE_FORCED, width + "," + height);
        }
    }

@@ -6563,7 +6569,29 @@ public class WindowManagerService extends IWindowManager.Stub
        }
    }

    private void readForcedDisplaySizeLocked() {
        final String str = Settings.Secure.getString(mContext.getContentResolver(),
                Settings.Secure.DISPLAY_SIZE_FORCED);
        if (str == null || str.length() == 0) {
            return;
        }
        final int pos = str.indexOf(',');
        if (pos <= 0 || str.lastIndexOf(',') != pos) {
            return;
        }
        int width, height;
        try {
            width = Integer.parseInt(str.substring(0, pos));
            height = Integer.parseInt(str.substring(pos+1));
        } catch (NumberFormatException ex) {
            return;
        }
        setForcedDisplaySizeLocked(width, height);
    }

    private void setForcedDisplaySizeLocked(int width, int height) {
        Slog.i(TAG, "Using new display size: " + width + "x" + height);

        mBaseDisplayWidth = width;
        mBaseDisplayHeight = height;
        mPolicy.setInitialDisplaySize(mBaseDisplayWidth, mBaseDisplayHeight);
@@ -6593,6 +6621,8 @@ public class WindowManagerService extends IWindowManager.Stub
    public void clearForcedDisplaySize() {
        synchronized(mWindowMap) {
            setForcedDisplaySizeLocked(mInitialDisplayWidth, mInitialDisplayHeight);
            Settings.Secure.putString(mContext.getContentResolver(),
                    Settings.Secure.DISPLAY_SIZE_FORCED, "");
        }
    }