summaryrefslogtreecommitdiffstats
path: root/src/com/android/calendar/CalendarPreferenceActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/calendar/CalendarPreferenceActivity.java')
-rw-r--r--src/com/android/calendar/CalendarPreferenceActivity.java85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/com/android/calendar/CalendarPreferenceActivity.java b/src/com/android/calendar/CalendarPreferenceActivity.java
new file mode 100644
index 00000000..78d60651
--- /dev/null
+++ b/src/com/android/calendar/CalendarPreferenceActivity.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.calendar;
+
+import android.content.SharedPreferences;
+import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
+import android.os.Bundle;
+import android.preference.ListPreference;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceScreen;
+import android.preference.CheckBoxPreference;
+import android.preference.RingtonePreference;
+
+public class CalendarPreferenceActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {
+ // Preference keys
+ static final String KEY_HIDE_DECLINED = "preferences_hide_declined";
+ static final String KEY_ALERTS_TYPE = "preferences_alerts_type";
+ static final String KEY_ALERTS_VIBRATE = "preferences_alerts_vibrate";
+ static final String KEY_ALERTS_RINGTONE = "preferences_alerts_ringtone";
+ static final String KEY_DEFAULT_REMINDER = "preferences_default_reminder";
+ static final String KEY_START_VIEW = "startView";
+ static final String KEY_DETAILED_VIEW = "preferredDetailedView";
+
+ // These must be in sync with the array preferences_alert_type_values
+ static final String ALERT_TYPE_ALERTS = "0";
+ static final String ALERT_TYPE_STATUS_BAR = "1";
+ static final String ALERT_TYPE_OFF = "2";
+
+ // Default preference values
+ static final String DEFAULT_START_VIEW =
+ CalendarApplication.ACTIVITY_NAMES[CalendarApplication.MONTH_VIEW_ID];
+ static final String DEFAULT_DETAILED_VIEW =
+ CalendarApplication.ACTIVITY_NAMES[CalendarApplication.DAY_VIEW_ID];
+
+ ListPreference mAlertType;
+ CheckBoxPreference mVibrate;
+ RingtonePreference mRingtone;
+
+ @Override
+ protected void onCreate(Bundle icicle) {
+ super.onCreate(icicle);
+
+ // Load the preferences from an XML resource
+ addPreferencesFromResource(R.xml.preferences);
+
+ PreferenceScreen preferenceScreen = getPreferenceScreen();
+ preferenceScreen.getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
+ mAlertType = (ListPreference) preferenceScreen.findPreference(KEY_ALERTS_TYPE);
+ mVibrate = (CheckBoxPreference) preferenceScreen.findPreference(KEY_ALERTS_VIBRATE);
+ mRingtone = (RingtonePreference) preferenceScreen.findPreference(KEY_ALERTS_RINGTONE);
+
+ updateChildPreferences();
+ }
+
+ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
+ if (key.equals(KEY_ALERTS_TYPE)) {
+ updateChildPreferences();
+ }
+ }
+
+ private void updateChildPreferences() {
+ if (mAlertType.getValue().equals(ALERT_TYPE_OFF)) {
+ mVibrate.setChecked(false);
+ mVibrate.setEnabled(false);
+ mRingtone.setEnabled(false);
+ } else {
+ mVibrate.setEnabled(true);
+ mRingtone.setEnabled(true);
+ }
+ }
+}