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] -->
|
||||
<string name="wallpaper_settings_fragment_title">Choose wallpaper from</string>
|
||||
<!-- Display settings screen, trigger for screen saver options -->
|
||||
<string name="screensaver_settings_title">Screen Candy</string>
|
||||
<!-- Display settings screen, summary for screen saver options, screen saver is turned on -->
|
||||
<string name="screensaver_settings_summary_on">Will start upon sleep if connected to power</string>
|
||||
<string name="screensaver_settings_title">Dream</string>
|
||||
<!-- Display settings screen, summary fragment for screen saver options, activated on sleep or docked -->
|
||||
<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 -->
|
||||
<string name="screensaver_settings_summary_off">Disabled</string>
|
||||
<!-- 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 -->
|
||||
<string name="screensaver_timeout_title">When to activate</string>
|
||||
<!-- Screen saver settings, setting option summary to change activation timeout -->
|
||||
@@ -1702,9 +1706,12 @@
|
||||
<string name="screensaver_timeout_zero_summary">Never</string>
|
||||
<!-- Screen saver settings, button allowing the user to test/try the current module -->
|
||||
<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
|
||||
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 -->
|
||||
<string name="automatic_brightness">Automatic brightness</string>
|
||||
<!-- [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"
|
||||
android:title="@string/screensaver_settings_title"
|
||||
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
|
||||
|
||||
<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"
|
||||
/>
|
||||
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
|
||||
android:title="@string/screensaver_settings_title" >
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="activate_on_dock"
|
||||
android:persistent="false"
|
||||
android:title="@string/screensaver_activate_on_dock_title"
|
||||
android:defaultValue="true" />
|
||||
android:key="activate_on_sleep"
|
||||
android:persistent="false"
|
||||
android:title="@string/screensaver_activate_on_sleep_title" />
|
||||
|
||||
</PreferenceScreen>
|
||||
<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>
|
@@ -232,10 +232,13 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
|
||||
}
|
||||
|
||||
private void updateScreenSaverSummary() {
|
||||
boolean activatedOnSleep = DreamSettings.isScreenSaverActivatedOnSleep(getActivity());
|
||||
boolean activatedOnDock = DreamSettings.isScreenSaverActivatedOnDock(getActivity());
|
||||
mScreenSaverPreference.setSummary(
|
||||
DreamSettings.isScreenSaverEnabled(mScreenSaverPreference.getContext())
|
||||
? R.string.screensaver_settings_summary_on
|
||||
: R.string.screensaver_settings_summary_off);
|
||||
activatedOnSleep && activatedOnDock ? R.string.screensaver_settings_summary_both :
|
||||
activatedOnSleep ? R.string.screensaver_settings_summary_sleep :
|
||||
activatedOnDock ? R.string.screensaver_settings_summary_dock :
|
||||
R.string.screensaver_settings_summary_off);
|
||||
}
|
||||
|
||||
private void updateAccelerometerRotationCheckbox() {
|
||||
|
@@ -48,12 +48,19 @@ import java.util.ArrayList;
|
||||
public class DreamSettings extends SettingsPreferenceFragment {
|
||||
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_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 Enabler mEnabler;
|
||||
private ActivationSetting mActivateOnSleep;
|
||||
private ActivationSetting mActivateOnDock;
|
||||
|
||||
private Preference mComponentPref;
|
||||
private Preference mTestPref;
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
@@ -61,99 +68,76 @@ public class DreamSettings extends SettingsPreferenceFragment {
|
||||
|
||||
addPreferencesFromResource(R.xml.dream_settings);
|
||||
|
||||
mActivateOnDockPreference = (CheckBoxPreference) findPreference(KEY_ACTIVATE_ON_DOCK);
|
||||
mComponentPref = findPreference(KEY_COMPONENT);
|
||||
mTestPref = findPreference(KEY_TEST);
|
||||
|
||||
final Activity activity = getActivity();
|
||||
|
||||
mEnableSwitch = new Switch(activity);
|
||||
|
||||
if (activity instanceof PreferenceActivity) {
|
||||
PreferenceActivity preferenceActivity = (PreferenceActivity) activity;
|
||||
// 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);
|
||||
mActivateOnSleep = new ActivationSetting(getActivity(),
|
||||
SCREENSAVER_ENABLED, DEFAULT_SLEEP,
|
||||
(CheckBoxPreference) findPreference(KEY_ACTIVATE_ON_SLEEP));
|
||||
mActivateOnDock = new ActivationSetting(getActivity(),
|
||||
SCREENSAVER_ACTIVATE_ON_DOCK, DEFAULT_DOCK,
|
||||
(CheckBoxPreference) findPreference(KEY_ACTIVATE_ON_DOCK));
|
||||
}
|
||||
|
||||
public static boolean isScreenSaverEnabled(Context context) {
|
||||
public static boolean isScreenSaverActivatedOnSleep(Context context) {
|
||||
return 0 != Settings.Secure.getInt(
|
||||
context.getContentResolver(), SCREENSAVER_ENABLED, 1);
|
||||
context.getContentResolver(), SCREENSAVER_ENABLED, DEFAULT_SLEEP);
|
||||
}
|
||||
|
||||
public static void setScreenSaverEnabled(Context context, boolean enabled) {
|
||||
Settings.Secure.putInt(
|
||||
context.getContentResolver(), SCREENSAVER_ENABLED, enabled ? 1 : 0);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
public static boolean isScreenSaverActivatedOnDock(Context context) {
|
||||
return 0 != Settings.Secure.getInt(
|
||||
context.getContentResolver(), SCREENSAVER_ACTIVATE_ON_DOCK, DEFAULT_DOCK);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
if (mEnabler != null) {
|
||||
mEnabler.resume();
|
||||
}
|
||||
|
||||
final boolean currentActivateOnDock = 0 != Settings.Secure.getInt(getContentResolver(),
|
||||
SCREENSAVER_ACTIVATE_ON_DOCK, 1);
|
||||
mActivateOnDockPreference.setChecked(currentActivateOnDock);
|
||||
mActivateOnSleep.onResume();
|
||||
mActivateOnDock.onResume();
|
||||
refreshDependents();
|
||||
super.onResume();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
if (mEnabler != null) {
|
||||
mEnabler.pause();
|
||||
}
|
||||
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
|
||||
if (preference == mActivateOnDockPreference) {
|
||||
Settings.Secure.putInt(getContentResolver(),
|
||||
SCREENSAVER_ACTIVATE_ON_DOCK,
|
||||
mActivateOnDockPreference.isChecked() ? 1 : 0);
|
||||
}
|
||||
mActivateOnSleep.onClick(preference);
|
||||
mActivateOnDock.onClick(preference);
|
||||
refreshDependents();
|
||||
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;
|
||||
|
||||
import static android.provider.Settings.Secure.SCREENSAVER_COMPONENT;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.ComponentName;
|
||||
import android.content.ContentResolver;
|
||||
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.content.Context;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
import android.preference.Preference;
|
||||
import android.provider.Settings;
|
||||
import android.service.dreams.IDreamManager;
|
||||
import android.util.AttributeSet;
|
||||
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 {
|
||||
private static final String TAG = "DreamTesterPreference";
|
||||
|
||||
private final PackageManager pm;
|
||||
private final ContentResolver resolver;
|
||||
|
||||
public DreamTesterPreference(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
pm = getContext().getPackageManager();
|
||||
resolver = getContext().getContentResolver();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onClick() {
|
||||
String component = Settings.Secure.getString(resolver, SCREENSAVER_COMPONENT);
|
||||
Log.v(TAG, "component=" + component);
|
||||
if (component != null) {
|
||||
ComponentName cn = ComponentName.unflattenFromString(component);
|
||||
Log.v(TAG, "cn=" + cn);
|
||||
// Intent intent = new Intent(Intent.ACTION_MAIN)
|
||||
// .setComponent(cn)
|
||||
// .addFlags(
|
||||
// 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
|
||||
}
|
||||
IDreamManager dm = IDreamManager.Stub.asInterface(ServiceManager.getService("dreams"));
|
||||
try {
|
||||
ComponentName cn = dm.getDreamComponent();
|
||||
Log.v(TAG, "DreamComponent cn=" + cn);
|
||||
dm.testDream(cn);
|
||||
} catch (RemoteException ex) {
|
||||
Log.w(TAG, "error testing dream", ex);
|
||||
// too bad, so sad, oh mom, oh dad
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user