diff options
author | Laszlo David <laszlo.david@gmail.com> | 2013-02-04 23:43:14 +0100 |
---|---|---|
committer | Gerrit Code Review <gerrit@review.cyanogenmod.com> | 2013-02-10 21:50:04 -0800 |
commit | 057d88c735d8d0e7dce9714f9db28388501c24e7 (patch) | |
tree | f1c4f2b4f2957d80f58ba65b16604167ebeb60d8 /src/com/android/deskclock/DeskClock.java | |
parent | 6f5d79140e92f5f32fe690af97962d2869578821 (diff) | |
download | android_packages_apps_DeskClock-057d88c735d8d0e7dce9714f9db28388501c24e7.tar.gz android_packages_apps_DeskClock-057d88c735d8d0e7dce9714f9db28388501c24e7.tar.bz2 android_packages_apps_DeskClock-057d88c735d8d0e7dce9714f9db28388501c24e7.zip |
Make the settings menu accessible on every tab
Change-Id: Ieb7fdf09e4369701868c52a327aca458c01ed49c
Diffstat (limited to 'src/com/android/deskclock/DeskClock.java')
-rw-r--r-- | src/com/android/deskclock/DeskClock.java | 42 |
1 files changed, 35 insertions, 7 deletions
diff --git a/src/com/android/deskclock/DeskClock.java b/src/com/android/deskclock/DeskClock.java index 3d1207a62..b084dccb0 100644 --- a/src/com/android/deskclock/DeskClock.java +++ b/src/com/android/deskclock/DeskClock.java @@ -25,6 +25,7 @@ import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.graphics.drawable.TransitionDrawable; import android.os.Bundle; import android.os.Handler; @@ -85,6 +86,15 @@ public class DeskClock extends Activity implements LabelDialogFragment.TimerLabe private int mSelectedTab; + private OnSharedPreferenceChangeListener preferenceChangeListener = new OnSharedPreferenceChangeListener() { + @Override + public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { + if (SettingsActivity.KEY_KEEP_DISPLAY_ON_STOPWATCH.equals(key)) { + refreshKeepScreenOn(); + } + } + }; + @Override public void onNewIntent(Intent newIntent) { super.onNewIntent(newIntent); @@ -103,6 +113,16 @@ public class DeskClock extends Activity implements LabelDialogFragment.TimerLabe } } + private void refreshKeepScreenOn() { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + if (mTabsAdapter.mPager.getCurrentItem() == STOPWATCH_TAB_INDEX + && prefs.getBoolean(SettingsActivity.KEY_KEEP_DISPLAY_ON_STOPWATCH, true)) { + getWindow().addFlags(LayoutParams.FLAG_KEEP_SCREEN_ON); + } else { + getWindow().clearFlags(LayoutParams.FLAG_KEEP_SCREEN_ON); + } + } + private void initViews() { if (mTabsAdapter == null) { @@ -157,6 +177,9 @@ public class DeskClock extends Activity implements LabelDialogFragment.TimerLabe } initViews(); setHomeTimeZone(); + + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + prefs.registerOnSharedPreferenceChangeListener(preferenceChangeListener); } @Override @@ -193,6 +216,13 @@ public class DeskClock extends Activity implements LabelDialogFragment.TimerLabe } @Override + protected void onDestroy() { + super.onDestroy(); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + prefs.unregisterOnSharedPreferenceChangeListener(preferenceChangeListener); + } + + @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt(KEY_SELECTED_TAB, mActionBar.getSelectedNavigationIndex()); @@ -250,6 +280,10 @@ public class DeskClock extends Activity implements LabelDialogFragment.TimerLabe if (help != null) { Utils.prepareHelpMenuItem(this, help); } + MenuItem nightMode = menu.findItem(R.id.menu_item_night_mode); + if (nightMode != null) { + nightMode.setVisible(mTabsAdapter.mPager.getCurrentItem() == CLOCK_TAB_INDEX); + } popupMenu.show(); } @@ -357,13 +391,7 @@ public class DeskClock extends Activity implements LabelDialogFragment.TimerLabe public void onTabSelected(Tab tab, FragmentTransaction ft) { TabInfo info = (TabInfo)tab.getTag(); mPager.setCurrentItem(info.getPosition()); - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext); - if (info.getPosition() == STOPWATCH_TAB_INDEX - && prefs.getBoolean(SettingsActivity.KEY_KEEP_DISPLAY_ON_STOPWATCH, true)) { - getWindow().addFlags(LayoutParams.FLAG_KEEP_SCREEN_ON); - } else { - getWindow().clearFlags(LayoutParams.FLAG_KEEP_SCREEN_ON); - } + refreshKeepScreenOn(); } @Override |