am b54b45d9
: Merge "Re-enable dreams: Settings" into jb-mr1-dev
* commit 'b54b45d93ba378ef91e551f1073888de55b9e982': Re-enable dreams: Settings
This commit is contained in:
@@ -1687,13 +1687,17 @@
|
|||||||
<!-- Wallpaper settings fragment title [CHAR LIMIT=30] -->
|
<!-- Wallpaper settings fragment title [CHAR LIMIT=30] -->
|
||||||
<string name="wallpaper_settings_fragment_title">Choose wallpaper from</string>
|
<string name="wallpaper_settings_fragment_title">Choose wallpaper from</string>
|
||||||
<!-- Display settings screen, trigger for screen saver options -->
|
<!-- Display settings screen, trigger for screen saver options -->
|
||||||
<string name="screensaver_settings_title">Screen Candy</string>
|
<string name="screensaver_settings_title">Dream</string>
|
||||||
<!-- Display settings screen, summary for screen saver options, screen saver is turned on -->
|
<!-- Display settings screen, summary fragment for screen saver options, activated on sleep or docked -->
|
||||||
<string name="screensaver_settings_summary_on">Will start upon sleep if connected to power</string>
|
<string name="screensaver_settings_summary_both">When docked or asleep and charging</string>
|
||||||
|
<!-- Display settings screen, summary fragment for screen saver options, activated on sleep -->
|
||||||
|
<string name="screensaver_settings_summary_sleep">When asleep and charging</string>
|
||||||
|
<!-- Display settings screen, summary fragment for screen saver options, activated when docked -->
|
||||||
|
<string name="screensaver_settings_summary_dock">When docked</string>
|
||||||
<!-- Display settings screen, summary for screen saver options, screen saver is turned off -->
|
<!-- Display settings screen, summary for screen saver options, screen saver is turned off -->
|
||||||
<string name="screensaver_settings_summary_off">Disabled</string>
|
<string name="screensaver_settings_summary_off">Disabled</string>
|
||||||
<!-- Screen saver settings, setting option name to select a module -->
|
<!-- Screen saver settings, setting option name to select a module -->
|
||||||
<string name="screensaver_component_title">Selected candy</string>
|
<string name="screensaver_component_title">Selected dream</string>
|
||||||
<!-- Screen saver settings, setting option name to change activation timeout -->
|
<!-- Screen saver settings, setting option name to change activation timeout -->
|
||||||
<string name="screensaver_timeout_title">When to activate</string>
|
<string name="screensaver_timeout_title">When to activate</string>
|
||||||
<!-- Screen saver settings, setting option summary to change activation timeout -->
|
<!-- Screen saver settings, setting option summary to change activation timeout -->
|
||||||
@@ -1702,9 +1706,12 @@
|
|||||||
<string name="screensaver_timeout_zero_summary">Never</string>
|
<string name="screensaver_timeout_zero_summary">Never</string>
|
||||||
<!-- Screen saver settings, button allowing the user to test/try the current module -->
|
<!-- Screen saver settings, button allowing the user to test/try the current module -->
|
||||||
<string name="screensaver_test">Try it!</string>
|
<string name="screensaver_test">Try it!</string>
|
||||||
|
<!-- Screen saver settings, checkbox allowing the screen saver to activate automatically when
|
||||||
|
the device sleeps -->
|
||||||
|
<string name="screensaver_activate_on_sleep_title">Start on sleep</string>
|
||||||
<!-- Screen saver settings, checkbox allowing the screen saver to activate automatically when
|
<!-- Screen saver settings, checkbox allowing the screen saver to activate automatically when
|
||||||
the device is docked -->
|
the device is docked -->
|
||||||
<string name="screensaver_activate_on_dock_title">Also start when docked</string>
|
<string name="screensaver_activate_on_dock_title">Start when docked</string>
|
||||||
<!-- Sound & display settings screen, setting option name to change whether the screen adjusts automatically based on lighting conditions -->
|
<!-- Sound & display settings screen, setting option name to change whether the screen adjusts automatically based on lighting conditions -->
|
||||||
<string name="automatic_brightness">Automatic brightness</string>
|
<string name="automatic_brightness">Automatic brightness</string>
|
||||||
<!-- [CHAR LIMIT=30] Sound & display settings screen, setting option name to change font size -->
|
<!-- [CHAR LIMIT=30] Sound & display settings screen, setting option name to change font size -->
|
||||||
|
@@ -15,25 +15,28 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:title="@string/screensaver_settings_title"
|
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
|
||||||
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
|
android:title="@string/screensaver_settings_title" >
|
||||||
|
|
||||||
<com.android.settings.DreamComponentPreference
|
|
||||||
android:key="screensaver_component"
|
|
||||||
android:title="@string/screensaver_component_title"
|
|
||||||
android:persistent="false"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<com.android.settings.DreamTesterPreference
|
|
||||||
android:key="test"
|
|
||||||
android:title="@string/screensaver_test"
|
|
||||||
android:persistent="false"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:key="activate_on_dock"
|
android:key="activate_on_sleep"
|
||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
android:title="@string/screensaver_activate_on_dock_title"
|
android:title="@string/screensaver_activate_on_sleep_title" />
|
||||||
android:defaultValue="true" />
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:defaultValue="true"
|
||||||
|
android:key="activate_on_dock"
|
||||||
|
android:persistent="false"
|
||||||
|
android:title="@string/screensaver_activate_on_dock_title" />
|
||||||
|
|
||||||
|
<com.android.settings.DreamComponentPreference
|
||||||
|
android:key="screensaver_component"
|
||||||
|
android:persistent="false"
|
||||||
|
android:title="@string/screensaver_component_title" />
|
||||||
|
|
||||||
|
<com.android.settings.DreamTesterPreference
|
||||||
|
android:key="test"
|
||||||
|
android:persistent="false"
|
||||||
|
android:title="@string/screensaver_test" />
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
@@ -232,10 +232,13 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateScreenSaverSummary() {
|
private void updateScreenSaverSummary() {
|
||||||
|
boolean activatedOnSleep = DreamSettings.isScreenSaverActivatedOnSleep(getActivity());
|
||||||
|
boolean activatedOnDock = DreamSettings.isScreenSaverActivatedOnDock(getActivity());
|
||||||
mScreenSaverPreference.setSummary(
|
mScreenSaverPreference.setSummary(
|
||||||
DreamSettings.isScreenSaverEnabled(mScreenSaverPreference.getContext())
|
activatedOnSleep && activatedOnDock ? R.string.screensaver_settings_summary_both :
|
||||||
? R.string.screensaver_settings_summary_on
|
activatedOnSleep ? R.string.screensaver_settings_summary_sleep :
|
||||||
: R.string.screensaver_settings_summary_off);
|
activatedOnDock ? R.string.screensaver_settings_summary_dock :
|
||||||
|
R.string.screensaver_settings_summary_off);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateAccelerometerRotationCheckbox() {
|
private void updateAccelerometerRotationCheckbox() {
|
||||||
|
@@ -48,12 +48,19 @@ import java.util.ArrayList;
|
|||||||
public class DreamSettings extends SettingsPreferenceFragment {
|
public class DreamSettings extends SettingsPreferenceFragment {
|
||||||
private static final String TAG = "DreamSettings";
|
private static final String TAG = "DreamSettings";
|
||||||
|
|
||||||
|
private static final String KEY_ACTIVATE_ON_SLEEP = "activate_on_sleep";
|
||||||
private static final String KEY_ACTIVATE_ON_DOCK = "activate_on_dock";
|
private static final String KEY_ACTIVATE_ON_DOCK = "activate_on_dock";
|
||||||
|
private static final String KEY_COMPONENT = "screensaver_component";
|
||||||
|
private static final String KEY_TEST = "test";
|
||||||
|
|
||||||
private CheckBoxPreference mActivateOnDockPreference;
|
private static final int DEFAULT_SLEEP = 0;
|
||||||
|
private static final int DEFAULT_DOCK = 1;
|
||||||
|
|
||||||
private Switch mEnableSwitch;
|
private ActivationSetting mActivateOnSleep;
|
||||||
private Enabler mEnabler;
|
private ActivationSetting mActivateOnDock;
|
||||||
|
|
||||||
|
private Preference mComponentPref;
|
||||||
|
private Preference mTestPref;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActivityCreated(Bundle savedInstanceState) {
|
public void onActivityCreated(Bundle savedInstanceState) {
|
||||||
@@ -61,99 +68,76 @@ public class DreamSettings extends SettingsPreferenceFragment {
|
|||||||
|
|
||||||
addPreferencesFromResource(R.xml.dream_settings);
|
addPreferencesFromResource(R.xml.dream_settings);
|
||||||
|
|
||||||
mActivateOnDockPreference = (CheckBoxPreference) findPreference(KEY_ACTIVATE_ON_DOCK);
|
mComponentPref = findPreference(KEY_COMPONENT);
|
||||||
|
mTestPref = findPreference(KEY_TEST);
|
||||||
|
|
||||||
final Activity activity = getActivity();
|
mActivateOnSleep = new ActivationSetting(getActivity(),
|
||||||
|
SCREENSAVER_ENABLED, DEFAULT_SLEEP,
|
||||||
mEnableSwitch = new Switch(activity);
|
(CheckBoxPreference) findPreference(KEY_ACTIVATE_ON_SLEEP));
|
||||||
|
mActivateOnDock = new ActivationSetting(getActivity(),
|
||||||
if (activity instanceof PreferenceActivity) {
|
SCREENSAVER_ACTIVATE_ON_DOCK, DEFAULT_DOCK,
|
||||||
PreferenceActivity preferenceActivity = (PreferenceActivity) activity;
|
(CheckBoxPreference) findPreference(KEY_ACTIVATE_ON_DOCK));
|
||||||
// note: we do not check onIsHidingHeaders() or onIsMultiPane() because there's no
|
|
||||||
// switch in the left-hand pane to control this; we need to show the ON/OFF in our
|
|
||||||
// fragment every time
|
|
||||||
final int padding = activity.getResources().getDimensionPixelSize(
|
|
||||||
R.dimen.action_bar_switch_padding);
|
|
||||||
mEnableSwitch.setPadding(0, 0, padding, 0);
|
|
||||||
activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,
|
|
||||||
ActionBar.DISPLAY_SHOW_CUSTOM);
|
|
||||||
activity.getActionBar().setCustomView(mEnableSwitch, new ActionBar.LayoutParams(
|
|
||||||
ActionBar.LayoutParams.WRAP_CONTENT,
|
|
||||||
ActionBar.LayoutParams.WRAP_CONTENT,
|
|
||||||
Gravity.CENTER_VERTICAL | Gravity.END));
|
|
||||||
activity.getActionBar().setTitle(R.string.screensaver_settings_title);
|
|
||||||
}
|
|
||||||
|
|
||||||
mEnabler = new Enabler(activity, mEnableSwitch);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isScreenSaverEnabled(Context context) {
|
public static boolean isScreenSaverActivatedOnSleep(Context context) {
|
||||||
return 0 != Settings.Secure.getInt(
|
return 0 != Settings.Secure.getInt(
|
||||||
context.getContentResolver(), SCREENSAVER_ENABLED, 1);
|
context.getContentResolver(), SCREENSAVER_ENABLED, DEFAULT_SLEEP);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setScreenSaverEnabled(Context context, boolean enabled) {
|
public static boolean isScreenSaverActivatedOnDock(Context context) {
|
||||||
Settings.Secure.putInt(
|
return 0 != Settings.Secure.getInt(
|
||||||
context.getContentResolver(), SCREENSAVER_ENABLED, enabled ? 1 : 0);
|
context.getContentResolver(), SCREENSAVER_ACTIVATE_ON_DOCK, DEFAULT_DOCK);
|
||||||
}
|
|
||||||
|
|
||||||
public static class Enabler implements CompoundButton.OnCheckedChangeListener {
|
|
||||||
private final Context mContext;
|
|
||||||
private Switch mSwitch;
|
|
||||||
|
|
||||||
public Enabler(Context context, Switch switch_) {
|
|
||||||
mContext = context;
|
|
||||||
setSwitch(switch_);
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
|
||||||
setScreenSaverEnabled(mContext, isChecked);
|
|
||||||
}
|
|
||||||
public void setSwitch(Switch switch_) {
|
|
||||||
if (mSwitch == switch_) return;
|
|
||||||
if (mSwitch != null) mSwitch.setOnCheckedChangeListener(null);
|
|
||||||
mSwitch = switch_;
|
|
||||||
mSwitch.setOnCheckedChangeListener(this);
|
|
||||||
|
|
||||||
final boolean enabled = isScreenSaverEnabled(mContext);
|
|
||||||
mSwitch.setChecked(enabled);
|
|
||||||
}
|
|
||||||
public void pause() {
|
|
||||||
mSwitch.setOnCheckedChangeListener(null);
|
|
||||||
}
|
|
||||||
public void resume() {
|
|
||||||
mSwitch.setOnCheckedChangeListener(this);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
if (mEnabler != null) {
|
mActivateOnSleep.onResume();
|
||||||
mEnabler.resume();
|
mActivateOnDock.onResume();
|
||||||
}
|
refreshDependents();
|
||||||
|
|
||||||
final boolean currentActivateOnDock = 0 != Settings.Secure.getInt(getContentResolver(),
|
|
||||||
SCREENSAVER_ACTIVATE_ON_DOCK, 1);
|
|
||||||
mActivateOnDockPreference.setChecked(currentActivateOnDock);
|
|
||||||
super.onResume();
|
super.onResume();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPause() {
|
|
||||||
if (mEnabler != null) {
|
|
||||||
mEnabler.pause();
|
|
||||||
}
|
|
||||||
|
|
||||||
super.onPause();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
|
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
|
||||||
if (preference == mActivateOnDockPreference) {
|
mActivateOnSleep.onClick(preference);
|
||||||
Settings.Secure.putInt(getContentResolver(),
|
mActivateOnDock.onClick(preference);
|
||||||
SCREENSAVER_ACTIVATE_ON_DOCK,
|
refreshDependents();
|
||||||
mActivateOnDockPreference.isChecked() ? 1 : 0);
|
|
||||||
}
|
|
||||||
return super.onPreferenceTreeClick(preferenceScreen, preference);
|
return super.onPreferenceTreeClick(preferenceScreen, preference);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void refreshDependents() {
|
||||||
|
boolean enabled = mActivateOnSleep.isSelected() || mActivateOnDock.isSelected();
|
||||||
|
mComponentPref.setEnabled(enabled);
|
||||||
|
mTestPref.setEnabled(enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class ActivationSetting {
|
||||||
|
private final Context mContext;
|
||||||
|
private final String mName;
|
||||||
|
private final int mDefaultValue;
|
||||||
|
private final CheckBoxPreference mPref;
|
||||||
|
|
||||||
|
ActivationSetting(Context context, String name, int defaultValue, CheckBoxPreference pref) {
|
||||||
|
mContext = context;
|
||||||
|
mName = name;
|
||||||
|
mDefaultValue = defaultValue;
|
||||||
|
mPref = pref;
|
||||||
|
}
|
||||||
|
public boolean isSelected() {
|
||||||
|
return mPref.isChecked();
|
||||||
|
}
|
||||||
|
void onClick(Preference preference) {
|
||||||
|
if (preference == mPref) {
|
||||||
|
Settings.Secure.putInt(mContext.getContentResolver(),
|
||||||
|
mName,
|
||||||
|
mPref.isChecked() ? 1 : 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void onResume() {
|
||||||
|
boolean currentActivated = 0 != Settings.Secure.getInt(mContext.getContentResolver(),
|
||||||
|
mName, mDefaultValue);
|
||||||
|
mPref.setChecked(currentActivated);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -16,72 +16,33 @@
|
|||||||
|
|
||||||
package com.android.settings;
|
package com.android.settings;
|
||||||
|
|
||||||
import static android.provider.Settings.Secure.SCREENSAVER_COMPONENT;
|
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.ContentResolver;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.pm.ActivityInfo;
|
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
import android.content.pm.ResolveInfo;
|
|
||||||
import android.content.res.Resources;
|
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.ServiceManager;
|
import android.os.ServiceManager;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
import android.provider.Settings;
|
|
||||||
import android.service.dreams.IDreamManager;
|
import android.service.dreams.IDreamManager;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.Gravity;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.ListView;
|
|
||||||
import android.widget.BaseAdapter;
|
|
||||||
import android.widget.ImageView;
|
|
||||||
import android.widget.ListAdapter;
|
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class DreamTesterPreference extends Preference {
|
public class DreamTesterPreference extends Preference {
|
||||||
private static final String TAG = "DreamTesterPreference";
|
private static final String TAG = "DreamTesterPreference";
|
||||||
|
|
||||||
private final PackageManager pm;
|
|
||||||
private final ContentResolver resolver;
|
|
||||||
|
|
||||||
public DreamTesterPreference(Context context, AttributeSet attrs) {
|
public DreamTesterPreference(Context context, AttributeSet attrs) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
pm = getContext().getPackageManager();
|
|
||||||
resolver = getContext().getContentResolver();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onClick() {
|
protected void onClick() {
|
||||||
String component = Settings.Secure.getString(resolver, SCREENSAVER_COMPONENT);
|
IDreamManager dm = IDreamManager.Stub.asInterface(ServiceManager.getService("dreams"));
|
||||||
Log.v(TAG, "component=" + component);
|
try {
|
||||||
if (component != null) {
|
ComponentName cn = dm.getDreamComponent();
|
||||||
ComponentName cn = ComponentName.unflattenFromString(component);
|
Log.v(TAG, "DreamComponent cn=" + cn);
|
||||||
Log.v(TAG, "cn=" + cn);
|
dm.testDream(cn);
|
||||||
// Intent intent = new Intent(Intent.ACTION_MAIN)
|
} catch (RemoteException ex) {
|
||||||
// .setComponent(cn)
|
Log.w(TAG, "error testing dream", ex);
|
||||||
// .addFlags(
|
// too bad, so sad, oh mom, oh dad
|
||||||
// Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
|
|
||||||
// )
|
|
||||||
// .putExtra("android.dreams.TEST", true);
|
|
||||||
// getContext().startService(intent);
|
|
||||||
IDreamManager dm = IDreamManager.Stub.asInterface(
|
|
||||||
ServiceManager.getService("dreams"));
|
|
||||||
try {
|
|
||||||
dm.testDream(cn);
|
|
||||||
} catch (RemoteException ex) {
|
|
||||||
// too bad, so sad, oh mom, oh dad
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user