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

Commit 2d54536d authored by Daniel Sandler's avatar Daniel Sandler
Browse files

Dreams (now Screen Candy) development.

- support for global "disable" setting
- renamed settings provider keys to remove "DREAM"

Bug: 5591015
Change-Id: I31f31b3ca6001fec1e0032a49cdf0d10df7b0ec7
parent dea90a0e
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -4020,21 +4020,26 @@ public final class Settings {
                "setup_prepaid_detection_redir_host";

        /**
         * The user's preferred "dream" (interactive screensaver) component.
         * Whether the screensaver is enabled.
         * @hide
         */
        public static final String SCREENSAVER_ENABLED = "screensaver_enabled";

        /**
         * The user's chosen screensaver component.
         *
         * This component will be launched by the PhoneWindowManager after the user's chosen idle
         * timeout (specified by {@link #DREAM_TIMEOUT}).
         * This component will be launched by the PhoneWindowManager after a timeout when not on
         * battery, or upon dock insertion (if SCREENSAVER_ACTIVATE_ON_DOCK is set to 1).
         * @hide
         */
        public static final String DREAM_COMPONENT =
                "dream_component";
        public static final String SCREENSAVER_COMPONENT = "screensaver_component";

        /**
         * The delay before a "dream" is started (set to 0 to disable).
         * Whether the screensaver should be automatically launched when the device is inserted
         * into a (desk) dock.
         * @hide
         */
        public static final String DREAM_TIMEOUT =
                "dream_timeout";
        public static final String SCREENSAVER_ACTIVATE_ON_DOCK = "screensaver_activate_on_dock";

        /** {@hide} */
        public static final String NETSTATS_ENABLED = "netstats_enabled";
+7 −1
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ public class DreamsDockLauncher extends Activity {
    private static void launchDream(Context context) {
        try {
            String component = Settings.Secure.getString(
                    context.getContentResolver(), Settings.Secure.DREAM_COMPONENT);
                    context.getContentResolver(), Settings.Secure.SCREENSAVER_COMPONENT);
            if (component == null) {
                component = context.getResources().getString(
                    com.android.internal.R.string.config_defaultDreamComponent);
@@ -52,6 +52,12 @@ public class DreamsDockLauncher extends Activity {
    public static class DockEventReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            final boolean activateOnDock = 0 != Settings.Secure.getInt(
                context.getContentResolver(), 
                Settings.Secure.SCREENSAVER_ACTIVATE_ON_DOCK, 1);

            if (!activateOnDock) return;

            if (Intent.ACTION_DOCK_EVENT.equals(intent.getAction())) {
                Bundle extras = intent.getExtras();
                int state = extras
+15 −9
Original line number Diff line number Diff line
@@ -400,7 +400,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {

    // visual screen saver support
    int mScreenSaverTimeout = 0;
    boolean mScreenSaverEnabled = true;
    boolean mScreenSaverEnabledByUser = false;
    boolean mScreenSaverMayRun = true; // false if a wakelock is held
    boolean mPluggedIn;

    // Behavior of ENDCALL Button.  (See Settings.System.END_BUTTON_BEHAVIOR.)
@@ -465,9 +466,11 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                    Settings.Secure.DEFAULT_INPUT_METHOD), false, this);
            resolver.registerContentObserver(Settings.System.getUriFor(
                    "fancy_rotation_anim"), false, this);
            resolver.registerContentObserver(Settings.Secure.getUriFor(
                    Settings.Secure.SCREENSAVER_ENABLED), false, this);
            if (SEPARATE_TIMEOUT_FOR_SCREEN_SAVER) {
                resolver.registerContentObserver(Settings.Secure.getUriFor(
                        Settings.Secure.DREAM_TIMEOUT), false, this);
                        "screensaver_timeout"), false, this);
            } // otherwise SCREEN_OFF_TIMEOUT will do nicely
            updateSettings();
        }
@@ -933,9 +936,12 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                updateRotation = true;
            }

            mScreenSaverEnabledByUser = 0 != Settings.Secure.getInt(resolver,
                    Settings.Secure.SCREENSAVER_ENABLED, 1);

            if (SEPARATE_TIMEOUT_FOR_SCREEN_SAVER) {
                mScreenSaverTimeout = Settings.Secure.getInt(resolver,
                        Settings.Secure.DREAM_TIMEOUT, 0);
                        "screensaver_timeout", 0);
            } else {
                mScreenSaverTimeout = Settings.System.getInt(resolver,
                        Settings.System.SCREEN_OFF_TIMEOUT, 0);
@@ -3451,7 +3457,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {

    Runnable mScreenSaverActivator = new Runnable() {
        public void run() {
            if (!(mScreenSaverEnabled && mScreenOnEarly)) {
            if (!(mScreenSaverMayRun && mScreenOnEarly)) {
                Log.w(TAG, "mScreenSaverActivator ran, but the screensaver should not be showing. Who's driving this thing?");
                return;
            }
@@ -3464,7 +3470,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {

            try {
                String component = Settings.Secure.getString(
                        mContext.getContentResolver(), Settings.Secure.DREAM_COMPONENT);
                        mContext.getContentResolver(), Settings.Secure.SCREENSAVER_COMPONENT);
                if (component == null) {
                    component = mContext.getResources().getString(R.string.config_defaultDreamComponent);
                }
@@ -3492,13 +3498,13 @@ public class PhoneWindowManager implements WindowManagerPolicy {
        if (mScreenSaverActivator == null) return;

        mHandler.removeCallbacks(mScreenSaverActivator);
        if (mScreenSaverEnabled && mScreenOnEarly && mScreenSaverTimeout > 0) {
        if (mScreenSaverEnabledByUser && mScreenSaverMayRun && mScreenOnEarly && mScreenSaverTimeout > 0) {
            if (localLOGV)
                Log.v(TAG, "scheduling screensaver for " + mScreenSaverTimeout + "ms from now");
            mHandler.postDelayed(mScreenSaverActivator, mScreenSaverTimeout);
        } else {
            if (localLOGV) {
                if (mScreenSaverTimeout == 0)
                if (!mScreenSaverEnabledByUser || mScreenSaverTimeout == 0)
                    Log.v(TAG, "screen saver disabled by user");
                else if (!mScreenOnEarly)
                    Log.v(TAG, "screen saver disabled while screen off");
@@ -3714,7 +3720,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
        // The window manager has just grabbed a wake lock. This is our cue to disable the screen
        // saver.
        synchronized (mLock) {
            mScreenSaverEnabled = false;
            mScreenSaverMayRun = false;
        }
    }

@@ -3728,7 +3734,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
            synchronized (mLock) {
                // even if the keyguard is up, now that all the wakelocks have been released, we
                // should re-enable the screen saver
                mScreenSaverEnabled = true;
                mScreenSaverMayRun = true;
                updateScreenSaverTimeoutLocked();
            }
        }