diff options
author | John Spurlock <jspurlock@google.com> | 2012-09-04 07:55:46 -0400 |
---|---|---|
committer | John Spurlock <jspurlock@google.com> | 2012-09-05 10:28:49 -0400 |
commit | 1537e8b3e8d81bf404f6aa70c8ca514f3ff62dd5 (patch) | |
tree | db97938daa07c616e3cb3b1d65e9f189b266a5c0 /src/com/android/settings/DreamSettings.java | |
parent | 952146ee8f13ea87a890e3e4f7726fe49b60fc3d (diff) | |
download | packages_apps_settings-1537e8b3e8d81bf404f6aa70c8ca514f3ff62dd5.zip packages_apps_settings-1537e8b3e8d81bf404f6aa70c8ca514f3ff62dd5.tar.gz packages_apps_settings-1537e8b3e8d81bf404f6aa70c8ca514f3ff62dd5.tar.bz2 |
Dream settings: list items back to constant height
Expanding/collapsing items removed, settings icon shown on right
with divider if applicable.
New "Start" action on the action bar to start dreaming. This is
no longer in preview/test mode, but a call to .dream().
Bug: 7010260
Change-Id: Ia1d8b9a70218dcc598bf62befbf545f572bbc6b1
Diffstat (limited to 'src/com/android/settings/DreamSettings.java')
-rw-r--r-- | src/com/android/settings/DreamSettings.java | 53 |
1 files changed, 29 insertions, 24 deletions
diff --git a/src/com/android/settings/DreamSettings.java b/src/com/android/settings/DreamSettings.java index f7a150f..3b14fa5 100644 --- a/src/com/android/settings/DreamSettings.java +++ b/src/com/android/settings/DreamSettings.java @@ -27,7 +27,6 @@ import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.preference.PreferenceActivity; -import android.preference.PreferenceFragment; import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; @@ -41,7 +40,6 @@ import android.view.View.OnClickListener; import android.view.View.OnTouchListener; import android.view.ViewGroup; import android.widget.ArrayAdapter; -import android.widget.Button; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.ImageView; @@ -66,7 +64,7 @@ public class DreamSettings extends SettingsPreferenceFragment { private DreamBackend mBackend; private DreamInfoAdapter mAdapter; private Switch mSwitch; - private MenuItem mWhenToDream; + private MenuItem[] mMenuItemsWhenEnabled; private boolean mRefreshing; @Override @@ -133,19 +131,33 @@ public class DreamSettings extends SettingsPreferenceFragment { @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { logd("onCreateOptionsMenu()"); - super.onCreateOptionsMenu(menu, inflater); boolean isEnabled = mBackend.isEnabled(); - mWhenToDream = createMenuItem(menu, - R.string.screensaver_settings_when_to_dream, + // create "start" action + MenuItem start = createMenuItem(menu, R.string.screensaver_settings_dream_start, MenuItem.SHOW_AS_ACTION_ALWAYS, + isEnabled, new Runnable(){ + @Override + public void run() { + mBackend.startDreaming(); + }}); + + // create "when to dream" overflow menu item + MenuItem whenToDream = createMenuItem(menu, + R.string.screensaver_settings_when_to_dream, + MenuItem.SHOW_AS_ACTION_NEVER, isEnabled, new Runnable() { @Override public void run() { showDialog(DIALOG_WHEN_TO_DREAM); }}); + + // create "help" overflow menu item (make sure it appears last) + super.onCreateOptionsMenu(menu, inflater); + + mMenuItemsWhenEnabled = new MenuItem[] { start, whenToDream }; } private MenuItem createMenuItem(Menu menu, @@ -242,8 +254,9 @@ public class DreamSettings extends SettingsPreferenceFragment { List<DreamInfo> dreamInfos = mBackend.getDreamInfos(); mAdapter.addAll(dreamInfos); } - if (mWhenToDream != null) - mWhenToDream.setEnabled(dreamsEnabled); + if (mMenuItemsWhenEnabled != null) + for (MenuItem menuItem : mMenuItemsWhenEnabled) + menuItem.setEnabled(dreamsEnabled); mRefreshing = false; } @@ -252,7 +265,6 @@ public class DreamSettings extends SettingsPreferenceFragment { Log.d(TAG, args == null || args.length == 0 ? msg : String.format(msg, args)); } - private class DreamInfoAdapter extends ArrayAdapter<DreamInfo> { private final LayoutInflater mInflater; @@ -272,7 +284,7 @@ public class DreamSettings extends SettingsPreferenceFragment { ((ImageView) row.findViewById(android.R.id.icon)).setImageDrawable(dreamInfo.icon); // bind caption - ((TextView) row.findViewById(android.R.id.text1)).setText(dreamInfo.caption); + ((TextView) row.findViewById(android.R.id.title)).setText(dreamInfo.caption); // bind radio button RadioButton radioButton = (RadioButton) row.findViewById(android.R.id.button1); @@ -284,24 +296,17 @@ public class DreamSettings extends SettingsPreferenceFragment { return false; }}); - // bind button container - View widgetFrame = row.findViewById(android.R.id.widget_frame); - widgetFrame.setVisibility(dreamInfo.isActive ? View.VISIBLE : View.GONE); + // bind settings button + divider + boolean showSettings = dreamInfo.settingsComponentName != null; + View settingsDivider = row.findViewById(R.id.divider); + settingsDivider.setVisibility(showSettings ? View.VISIBLE : View.INVISIBLE); - // bind settings button - Button settingsButton = (Button) row.findViewById(android.R.id.button2); - settingsButton.setVisibility(dreamInfo.settingsComponentName != null ? View.VISIBLE : View.GONE); + ImageView settingsButton = (ImageView) row.findViewById(android.R.id.button2); + settingsButton.setVisibility(showSettings ? View.VISIBLE : View.INVISIBLE); settingsButton.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { - mBackend.launchSettings((DreamInfo)row.getTag()); - }}); - - // bind preview button - ((Button) row.findViewById(android.R.id.button3)).setOnClickListener(new OnClickListener(){ - @Override - public void onClick(View v) { - mBackend.preview((DreamInfo)row.getTag()); + mBackend.launchSettings((DreamInfo) row.getTag()); }}); return row; |