diff options
Diffstat (limited to 'src/com/android/calendar/CalendarPreferenceActivity.java')
-rw-r--r-- | src/com/android/calendar/CalendarPreferenceActivity.java | 85 |
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); + } + } +} |