111159e9a785a143c9f3765bdf5a5ccfd77842d7aJeff Brown/*
232f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler * Copyright (C) 2012 The Android Open Source Project
332f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler *
432f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler * Licensed under the Apache License, Version 2.0 (the "License");
532f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler * you may not use this file except in compliance with the License.
632f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler * You may obtain a copy of the License at
732f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler *
832f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler *      http://www.apache.org/licenses/LICENSE-2.0
932f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler *
1032f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler * Unless required by applicable law or agreed to in writing, software
1132f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler * distributed under the License is distributed on an "AS IS" BASIS,
1232f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1332f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler * See the License for the specific language governing permissions and
1432f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler * limitations under the License.
1532f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler */
1632f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler
1732f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandlerpackage com.android.systemui;
1832f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler
1932f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandlerimport android.app.Activity;
2032f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandlerimport android.content.Intent;
2111159e9a785a143c9f3765bdf5a5ccfd77842d7aJeff Brownimport android.service.dreams.Sandman;
2211159e9a785a143c9f3765bdf5a5ccfd77842d7aJeff Brown
2311159e9a785a143c9f3765bdf5a5ccfd77842d7aJeff Brown/**
2411159e9a785a143c9f3765bdf5a5ccfd77842d7aJeff Brown * A simple activity that launches a dream.
2511159e9a785a143c9f3765bdf5a5ccfd77842d7aJeff Brown * <p>
2611159e9a785a143c9f3765bdf5a5ccfd77842d7aJeff Brown * Note: This Activity is special.  If this class is moved to another package or
2711159e9a785a143c9f3765bdf5a5ccfd77842d7aJeff Brown * renamed, be sure to update the component name in {@link Sandman}.
2811159e9a785a143c9f3765bdf5a5ccfd77842d7aJeff Brown * </p>
2911159e9a785a143c9f3765bdf5a5ccfd77842d7aJeff Brown */
3032f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandlerpublic class Somnambulator extends Activity {
3132f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler    public Somnambulator() {
3232f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler    }
333a12029a3bb6a6d59b3ab65fa923ce96f9f15c26Daniel Sandler
3432f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler    @Override
3532f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler    public void onStart() {
3632f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler        super.onStart();
3711159e9a785a143c9f3765bdf5a5ccfd77842d7aJeff Brown
3832f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler        final Intent launchIntent = getIntent();
3932f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler        final String action = launchIntent.getAction();
4032f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler        if (Intent.ACTION_CREATE_SHORTCUT.equals(action)) {
4132f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler            Intent shortcutIntent = new Intent(this, Somnambulator.class);
4232f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler            shortcutIntent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
4332f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler                    | Intent.FLAG_ACTIVITY_NEW_TASK);
4432f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler            Intent resultIntent = new Intent();
4532f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler            resultIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
46b055aa8ec000fd62e4ce6456eac277463aacd7d2Daniel Sandler                    Intent.ShortcutIconResource.fromContext(this, R.mipmap.ic_launcher_dreams));
4732f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler            resultIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
4832f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler            resultIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.start_dreams));
4932f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler            setResult(RESULT_OK, resultIntent);
5032f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler        } else {
513a12029a3bb6a6d59b3ab65fa923ce96f9f15c26Daniel Sandler            boolean docked = launchIntent.hasCategory(Intent.CATEGORY_DESK_DOCK);
5211159e9a785a143c9f3765bdf5a5ccfd77842d7aJeff Brown            if (docked) {
5311159e9a785a143c9f3765bdf5a5ccfd77842d7aJeff Brown                Sandman.startDreamWhenDockedIfAppropriate(this);
543a12029a3bb6a6d59b3ab65fa923ce96f9f15c26Daniel Sandler            } else {
5511159e9a785a143c9f3765bdf5a5ccfd77842d7aJeff Brown                Sandman.startDreamByUserRequest(this);
5632f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler            }
5732f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler        }
5832f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler        finish();
5932f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler    }
6032f6fd55b1bcabc97945827d88d60ba48edf1a40Daniel Sandler}
61