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

Commit 2a40d0d9 authored by Daniel Sandler's avatar Daniel Sandler Committed by Android (Google) Code Review
Browse files

Merge "Put screensavers back in the icebox for now. DO NOT MERGE." into ics-mr1

parents 41a5774a d2b22a88
Loading
Loading
Loading
Loading
+0 −22
Original line number Diff line number Diff line
@@ -4019,28 +4019,6 @@ public final class Settings {
        public static final String SETUP_PREPAID_DETECTION_REDIR_HOST =
                "setup_prepaid_detection_redir_host";

        /**
         * 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 a timeout when not on
         * battery, or upon dock insertion (if SCREENSAVER_ACTIVATE_ON_DOCK is set to 1).
         * @hide
         */
        public static final String SCREENSAVER_COMPONENT = "screensaver_component";

        /**
         * Whether the screensaver should be automatically launched when the device is inserted
         * into a (desk) dock.
         * @hide
         */
        public static final String SCREENSAVER_ACTIVATE_ON_DOCK = "screensaver_activate_on_dock";

        /** {@hide} */
        public static final String NETSTATS_ENABLED = "netstats_enabled";
        /** {@hide} */
+0 −3
Original line number Diff line number Diff line
@@ -741,7 +741,4 @@
    <string name="config_wimaxServiceClassname"></string>
    <!-- Name of the wimax state tracker clas -->
    <string name="config_wimaxStateTrackerClassname"></string>

    <!-- Name of screensaver components to look for if none has been chosen by the user -->
    <string name="config_defaultDreamComponent">com.google.android.deskclock/com.android.deskclock.Screensaver</string>
</resources>
+0 −20
Original line number Diff line number Diff line
@@ -46,26 +46,6 @@
            </intent-filter>
        </receiver>

        <!-- should you need to launch the screensaver, this is a good way to do it -->
        <activity android:name=".DreamsDockLauncher"
                android:theme="@android:style/Theme.Dialog"
                android:label="@string/dreams_dock_launcher">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <!-- launch screensaver on (desk) dock event -->
        <receiver android:name=".DreamsDockLauncher$DockEventReceiver" 
            android:exported="true"
            >
            <intent-filter>
                <action android:name="android.intent.action.DOCK_EVENT" />
            </intent-filter>
        </receiver>


        <activity android:name=".usb.UsbStorageActivity"
                  android:label="@*android:string/usb_storage_activity_title"
                  android:excludeFromRecents="true">
+0 −3
Original line number Diff line number Diff line
@@ -362,7 +362,4 @@

    <!-- Content description of the clear button in the notification panel for accessibility (not shown on the screen). [CHAR LIMIT=NONE] -->
    <string name="accessibility_clear_all">Clear all notifications.</string>

    <!-- Description of the desk dock action that invokes the Android Dreams screen saver feature -->
    <string name="dreams_dock_launcher">Activate screen saver</string>
</resources>
+0 −78
Original line number Diff line number Diff line
package com.android.systemui;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.provider.Settings;
import android.util.Slog;

public class DreamsDockLauncher extends Activity {
    private static final String TAG = "DreamsDockLauncher";

    // Launch the screen saver if started as an activity.
    @Override
    protected void onCreate (Bundle icicle) {
        super.onCreate(icicle);
        launchDream(this);
        finish();
    }

    private static void launchDream(Context context) {
        try {
            String component = Settings.Secure.getString(
                    context.getContentResolver(), Settings.Secure.SCREENSAVER_COMPONENT);
            if (component == null) {
                component = context.getResources().getString(
                    com.android.internal.R.string.config_defaultDreamComponent);
            }
            if (component != null) {
                // dismiss the notification shade, recents, etc.
                context.sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));

                ComponentName cn = ComponentName.unflattenFromString(component);
                Intent zzz = new Intent(Intent.ACTION_MAIN)
                    .setComponent(cn)
                    .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                            | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
                            | Intent.FLAG_ACTIVITY_NO_USER_ACTION
                            | Intent.FLAG_FROM_BACKGROUND
                            | Intent.FLAG_ACTIVITY_NO_HISTORY
                        );
                Slog.v(TAG, "Starting screen saver on dock event: " + component);
                context.startActivity(zzz);
            } else {
                Slog.e(TAG, "Couldn't start screen saver: none selected");
            }
        } catch (android.content.ActivityNotFoundException exc) {
            // no screensaver? give up
            Slog.e(TAG, "Couldn't start screen saver: none installed");
        }
    }

    // Trap low-level dock events and launch the screensaver.
    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
                        .getInt(Intent.EXTRA_DOCK_STATE, Intent.EXTRA_DOCK_STATE_UNDOCKED);
                if (state == Intent.EXTRA_DOCK_STATE_DESK
                        || state == Intent.EXTRA_DOCK_STATE_LE_DESK
                        || state == Intent.EXTRA_DOCK_STATE_HE_DESK) {
                    launchDream(context);
                }
            }
        }
    }
}
Loading