/* * Copyright 2010 the original author or authors. * * 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.pushclient; import android.content.Context; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceManager; import android.preference.PreferenceScreen; import android.util.Log; /** * Activity for displaying the notification setting view. * * @author Sehwan Noh (devnoh@gmail.com) */ public class NotificationSettingsActivity extends PreferenceActivity { private static final String LOGTAG = LogUtil .makeLogTag(NotificationSettingsActivity.class); public NotificationSettingsActivity() { } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setPreferenceScreen(createPreferenceHierarchy()); setPreferenceDependencies(); CheckBoxPreference notifyPref = (CheckBoxPreference) getPreferenceManager() .findPreference(Constants.SETTINGS_NOTIFICATION_ENABLED); if (notifyPref.isChecked()) { notifyPref.setTitle("Notifications Enabled"); } else { notifyPref.setTitle("Notifications Disabled"); } } private PreferenceScreen createPreferenceHierarchy() { Log.d(LOGTAG, "createSettingsPreferenceScreen()..."); PreferenceManager preferenceManager = getPreferenceManager(); preferenceManager .setSharedPreferencesName(Constants.SHARED_PREFERENCE_NAME); preferenceManager.setSharedPreferencesMode(Context.MODE_PRIVATE); PreferenceScreen root = preferenceManager.createPreferenceScreen(this); // PreferenceCategory prefCat = new PreferenceCategory(this); // // inlinePrefCat.setTitle(""); // root.addPreference(prefCat); CheckBoxPreference notifyPref = new CheckBoxPreference(this); notifyPref.setKey(Constants.SETTINGS_NOTIFICATION_ENABLED); notifyPref.setTitle("Notifications Enabled"); notifyPref.setSummaryOn("Receive push messages"); notifyPref.setSummaryOff("Do not receive push messages"); notifyPref.setDefaultValue(Boolean.TRUE); notifyPref .setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { public boolean onPreferenceChange(Preference preference, Object newValue) { boolean checked = Boolean.valueOf(newValue.toString()); if (checked) { preference.setTitle("Notifications Enabled"); } else { preference.setTitle("Notifications Disabled"); } return true; } }); CheckBoxPreference soundPref = new CheckBoxPreference(this); soundPref.setKey(Constants.SETTINGS_SOUND_ENABLED); soundPref.setTitle("Sound"); soundPref.setSummary("Play a sound for notifications"); soundPref.setDefaultValue(Boolean.TRUE); // soundPref.setDependency(Constants.SETTINGS_NOTIFICATION_ENABLED); CheckBoxPreference vibratePref = new CheckBoxPreference(this); vibratePref.setKey(Constants.SETTINGS_VIBRATE_ENABLED); vibratePref.setTitle("Vibrate"); vibratePref.setSummary("Vibrate the phone for notifications"); vibratePref.setDefaultValue(Boolean.TRUE); // vibratePref.setDependency(Constants.SETTINGS_NOTIFICATION_ENABLED); root.addPreference(notifyPref); root.addPreference(soundPref); root.addPreference(vibratePref); // prefCat.addPreference(notifyPref); // prefCat.addPreference(soundPref); // prefCat.addPreference(vibratePref); // root.addPreference(prefCat); return root; } private void setPreferenceDependencies() { Preference soundPref = getPreferenceManager().findPreference( Constants.SETTINGS_SOUND_ENABLED); if (soundPref != null) { soundPref.setDependency(Constants.SETTINGS_NOTIFICATION_ENABLED); } Preference vibratePref = getPreferenceManager().findPreference( Constants.SETTINGS_VIBRATE_ENABLED); if (vibratePref != null) { vibratePref.setDependency(Constants.SETTINGS_NOTIFICATION_ENABLED); } } }