summaryrefslogtreecommitdiffstats
path: root/src/com/android/deskclock/DeskClock.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/deskclock/DeskClock.java')
-rw-r--r--src/com/android/deskclock/DeskClock.java42
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