172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project/* 272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Copyright (C) 2007-2008 Esmertec AG. 372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Copyright (C) 2007-2008 The Android Open Source Project 472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * 572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * you may not use this file except in compliance with the License. 772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * You may obtain a copy of the License at 872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * 972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 1072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * 1172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 1272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 1372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * See the License for the specific language governing permissions and 1572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * limitations under the License. 1672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project */ 1772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 1872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectpackage com.android.mms.ui; 1972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 203c4edf4c2b63078cb7aae9806b7ed7b2faa50d9eTom Taylorimport android.app.ActionBar; 218447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylorimport android.app.AlertDialog; 228447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylorimport android.app.Dialog; 23d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylorimport android.content.Context; 248447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylorimport android.content.DialogInterface; 254c93cf90a87725e0b6958f933b20e149e6c074f0Tom Taylorimport android.content.Intent; 269258283a430fdf030785c96380c2628603ea7e20Jim Shumaimport android.content.SharedPreferences; 2790e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylorimport android.media.Ringtone; 2890e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylorimport android.media.RingtoneManager; 2990e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylorimport android.net.Uri; 3072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.os.Bundle; 31d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylorimport android.preference.CheckBoxPreference; 3253a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylorimport android.preference.Preference; 33d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport android.preference.Preference.OnPreferenceChangeListener; 3472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.preference.PreferenceActivity; 354c93cf90a87725e0b6958f933b20e149e6c074f0Tom Taylorimport android.preference.PreferenceCategory; 3672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.preference.PreferenceManager; 3753a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylorimport android.preference.PreferenceScreen; 3890e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylorimport android.preference.RingtonePreference; 39f114492537753bc68640d4a0d403861387296bcbMark Wagnerimport android.provider.SearchRecentSuggestions; 4041ae031d70cbb9973d283fa2bff1643f08999e3cTom Taylorimport android.text.TextUtils; 4172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.view.Menu; 4272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.view.MenuItem; 433239889e9a417617b755d4cde22070843e5c070bTom Taylor 44d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.android.mms.MmsApp; 45d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.android.mms.MmsConfig; 46d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.android.mms.R; 4756e8095ef2e82f8db5fd4a04fa0a67c91cc7fbd3Tom Taylorimport com.android.mms.transaction.TransactionService; 483239889e9a417617b755d4cde22070843e5c070bTom Taylorimport com.android.mms.util.Recycler; 4972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 5072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project/** 5172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * With this activity, users can set preferences for MMS and SMS and 5272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * can access and manipulate SMS messages stored on the SIM. 5372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project */ 5492bf054558be5898b54bd3c4f098c6924c2f77bbTom Taylorpublic class MessagingPreferenceActivity extends PreferenceActivity 5592bf054558be5898b54bd3c4f098c6924c2f77bbTom Taylor implements OnPreferenceChangeListener { 5672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Symbolic names for the keys used for preference lookup 5772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public static final String MMS_DELIVERY_REPORT_MODE = "pref_key_mms_delivery_reports"; 5872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public static final String EXPIRY_TIME = "pref_key_mms_expiry"; 5972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public static final String PRIORITY = "pref_key_mms_priority"; 6072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public static final String READ_REPORT_MODE = "pref_key_mms_read_reports"; 6172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public static final String SMS_DELIVERY_REPORT_MODE = "pref_key_sms_delivery_reports"; 6272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public static final String NOTIFICATION_ENABLED = "pref_key_enable_notifications"; 6372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public static final String NOTIFICATION_VIBRATE = "pref_key_vibrate"; 64006d49271549ed639ffcd70d94c7650bb3514796Jim Shuma public static final String NOTIFICATION_VIBRATE_WHEN= "pref_key_vibrateWhen"; 6572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public static final String NOTIFICATION_RINGTONE = "pref_key_ringtone"; 6672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public static final String AUTO_RETRIEVAL = "pref_key_mms_auto_retrieval"; 6772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public static final String RETRIEVAL_DURING_ROAMING = "pref_key_mms_retrieval_during_roaming"; 683239889e9a417617b755d4cde22070843e5c070bTom Taylor public static final String AUTO_DELETE = "pref_key_auto_delete"; 699889006f9d29d0509c1c036987ce028de43ac96eTom Taylor public static final String GROUP_MMS_MODE = "pref_key_mms_group_mms"; 7072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 7172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Menu entries 7272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private static final int MENU_RESTORE_DEFAULTS = 1; 7372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 74991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun // Preferences for enabling and disabling SMS 75991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun private Preference mSmsDisabledPref; 76991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun private Preference mSmsEnabledPref; 77991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun 784ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun private PreferenceCategory mStoragePrefCategory; 794ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun private PreferenceCategory mSmsPrefCategory; 804ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun private PreferenceCategory mMmsPrefCategory; 814ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun private PreferenceCategory mNotificationPrefCategory; 824ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun 8353a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor private Preference mSmsLimitPref; 84b264ea0a6b212e90b4736d0a8ffde69c15293ee3Soojung Shin private Preference mSmsDeliveryReportPref; 8553a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor private Preference mMmsLimitPref; 86b264ea0a6b212e90b4736d0a8ffde69c15293ee3Soojung Shin private Preference mMmsDeliveryReportPref; 879889006f9d29d0509c1c036987ce028de43ac96eTom Taylor private Preference mMmsGroupMmsPref; 88b264ea0a6b212e90b4736d0a8ffde69c15293ee3Soojung Shin private Preference mMmsReadReportPref; 894c93cf90a87725e0b6958f933b20e149e6c074f0Tom Taylor private Preference mManageSimPref; 908447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor private Preference mClearHistoryPref; 9190e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor private CheckBoxPreference mVibratePref; 92d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor private CheckBoxPreference mEnableNotificationsPref; 9356e8095ef2e82f8db5fd4a04fa0a67c91cc7fbd3Tom Taylor private CheckBoxPreference mMmsAutoRetrievialPref; 9490e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor private RingtonePreference mRingtonePref; 9553a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor private Recycler mSmsRecycler; 9653a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor private Recycler mMmsRecycler; 978447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor private static final int CONFIRM_CLEAR_SEARCH_HISTORY_DIALOG = 3; 9853a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor 99991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun // Whether or not we are currently enabled for SMS. This field is updated in onResume to make 100991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun // sure we notice if the user has changed the default SMS app. 101991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun private boolean mIsSmsEnabled; 102991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun 10372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project @Override 10472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project protected void onCreate(Bundle icicle) { 10572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project super.onCreate(icicle); 106dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor 107dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor loadPrefs(); 108dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor 109dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor ActionBar actionBar = getActionBar(); 110dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor actionBar.setDisplayHomeAsUpEnabled(true); 111dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor } 112dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor 113dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor @Override 114dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor protected void onResume() { 115dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor super.onResume(); 116991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun boolean isSmsEnabled = MmsConfig.isSmsEnabled(this); 117991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun if (isSmsEnabled != mIsSmsEnabled) { 118991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun mIsSmsEnabled = isSmsEnabled; 119991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun invalidateOptionsMenu(); 120991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun } 121dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor 122dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor // Since the enabled notifications pref can be changed outside of this activity, 123dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor // we have to reload it whenever we resume. 124dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor setEnabledNotificationsPref(); 125b7eb6357e0884b7423a81ae3fed008e8e07c14e1Jean-Baptiste Queru registerListeners(); 126991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun updateSmsEnabledState(); 127991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun } 128991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun 129991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun private void updateSmsEnabledState() { 130991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun // Show the right pref (SMS Disabled or SMS Enabled) 131991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun PreferenceScreen prefRoot = (PreferenceScreen)findPreference("pref_key_root"); 132991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun if (!mIsSmsEnabled) { 133991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun prefRoot.addPreference(mSmsDisabledPref); 134991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun prefRoot.removePreference(mSmsEnabledPref); 135991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun } else { 136991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun prefRoot.removePreference(mSmsDisabledPref); 137991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun prefRoot.addPreference(mSmsEnabledPref); 138991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun } 139991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun 140991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun // Enable or Disable the settings as appropriate 1414ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun mStoragePrefCategory.setEnabled(mIsSmsEnabled); 1424ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun mSmsPrefCategory.setEnabled(mIsSmsEnabled); 1434ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun mMmsPrefCategory.setEnabled(mIsSmsEnabled); 1444ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun mNotificationPrefCategory.setEnabled(mIsSmsEnabled); 145dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor } 146dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor 147dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor private void loadPrefs() { 14872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project addPreferencesFromResource(R.xml.preferences); 14953a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor 150991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun mSmsDisabledPref = findPreference("pref_key_sms_disabled"); 151991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun mSmsEnabledPref = findPreference("pref_key_sms_enabled"); 152991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun 1534ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun mStoragePrefCategory = (PreferenceCategory)findPreference("pref_key_storage_settings"); 1544ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun mSmsPrefCategory = (PreferenceCategory)findPreference("pref_key_sms_settings"); 1554ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun mMmsPrefCategory = (PreferenceCategory)findPreference("pref_key_mms_settings"); 1564ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun mNotificationPrefCategory = 1574ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun (PreferenceCategory)findPreference("pref_key_notification_settings"); 1584ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun 1594c93cf90a87725e0b6958f933b20e149e6c074f0Tom Taylor mManageSimPref = findPreference("pref_key_manage_sim_messages"); 16053a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor mSmsLimitPref = findPreference("pref_key_sms_delete_limit"); 161b264ea0a6b212e90b4736d0a8ffde69c15293ee3Soojung Shin mSmsDeliveryReportPref = findPreference("pref_key_sms_delivery_reports"); 162b264ea0a6b212e90b4736d0a8ffde69c15293ee3Soojung Shin mMmsDeliveryReportPref = findPreference("pref_key_mms_delivery_reports"); 1639889006f9d29d0509c1c036987ce028de43ac96eTom Taylor mMmsGroupMmsPref = findPreference("pref_key_mms_group_mms"); 164b264ea0a6b212e90b4736d0a8ffde69c15293ee3Soojung Shin mMmsReadReportPref = findPreference("pref_key_mms_read_reports"); 16553a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor mMmsLimitPref = findPreference("pref_key_mms_delete_limit"); 1668447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor mClearHistoryPref = findPreference("pref_key_mms_clear_history"); 167d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor mEnableNotificationsPref = (CheckBoxPreference) findPreference(NOTIFICATION_ENABLED); 16856e8095ef2e82f8db5fd4a04fa0a67c91cc7fbd3Tom Taylor mMmsAutoRetrievialPref = (CheckBoxPreference) findPreference(AUTO_RETRIEVAL); 16990e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor mVibratePref = (CheckBoxPreference) findPreference(NOTIFICATION_VIBRATE); 17090e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor mRingtonePref = (RingtonePreference) findPreference(NOTIFICATION_RINGTONE); 17192bf054558be5898b54bd3c4f098c6924c2f77bbTom Taylor 172d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor setMessagePreferences(); 173d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor } 174d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor 175dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor private void restoreDefaultPreferences() { 176dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor PreferenceManager.getDefaultSharedPreferences(this).edit().clear().apply(); 177dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor setPreferenceScreen(null); 178dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor loadPrefs(); 179991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun updateSmsEnabledState(); 180dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor 181dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor // NOTE: After restoring preferences, the auto delete function (i.e. message recycler) 182dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor // will be turned off by default. However, we really want the default to be turned on. 183dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor // Because all the prefs are cleared, that'll cause: 184dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor // ConversationList.runOneTimeStorageLimitCheckForLegacyMessages to get executed the 185dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor // next time the user runs the Messaging app and it will either turn on the setting 186dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor // by default, or if the user is over the limits, encourage them to turn on the setting 187dd52c9d19bbc089d69d86811f49fead9b52be507Tom Taylor // manually. 188d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor } 189d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor 190d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor private void setMessagePreferences() { 191bb8edcae15a50b3651261db70791afc668aae294Tom Taylor if (!MmsApp.getApplication().getTelephonyManager().hasIccCard()) { 1924c93cf90a87725e0b6958f933b20e149e6c074f0Tom Taylor // No SIM card, remove the SIM-related prefs 1934ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun mSmsPrefCategory.removePreference(mManageSimPref); 1944c93cf90a87725e0b6958f933b20e149e6c074f0Tom Taylor } 195b264ea0a6b212e90b4736d0a8ffde69c15293ee3Soojung Shin 196602025862f535f493bb348dc2a6cc9a1fe150fb1Tom Taylor if (!MmsConfig.getSMSDeliveryReportsEnabled()) { 1974ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun mSmsPrefCategory.removePreference(mSmsDeliveryReportPref); 198b264ea0a6b212e90b4736d0a8ffde69c15293ee3Soojung Shin if (!MmsApp.getApplication().getTelephonyManager().hasIccCard()) { 1994ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun getPreferenceScreen().removePreference(mSmsPrefCategory); 200b264ea0a6b212e90b4736d0a8ffde69c15293ee3Soojung Shin } 201b264ea0a6b212e90b4736d0a8ffde69c15293ee3Soojung Shin } 202b264ea0a6b212e90b4736d0a8ffde69c15293ee3Soojung Shin 203c555f86a3f5b2f19244cc9c282f49cb834de12e8Tom Taylor if (!MmsConfig.getMmsEnabled()) { 204c555f86a3f5b2f19244cc9c282f49cb834de12e8Tom Taylor // No Mms, remove all the mms-related preferences 2054ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun getPreferenceScreen().removePreference(mMmsPrefCategory); 206c555f86a3f5b2f19244cc9c282f49cb834de12e8Tom Taylor 2074ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun mStoragePrefCategory.removePreference(findPreference("pref_key_mms_delete_limit")); 208b264ea0a6b212e90b4736d0a8ffde69c15293ee3Soojung Shin } else { 2099889006f9d29d0509c1c036987ce028de43ac96eTom Taylor if (!MmsConfig.getMMSDeliveryReportsEnabled()) { 2104ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun mMmsPrefCategory.removePreference(mMmsDeliveryReportPref); 211b264ea0a6b212e90b4736d0a8ffde69c15293ee3Soojung Shin } 212602025862f535f493bb348dc2a6cc9a1fe150fb1Tom Taylor if (!MmsConfig.getMMSReadReportsEnabled()) { 2134ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun mMmsPrefCategory.removePreference(mMmsReadReportPref); 214b264ea0a6b212e90b4736d0a8ffde69c15293ee3Soojung Shin } 21541ae031d70cbb9973d283fa2bff1643f08999e3cTom Taylor // If the phone's SIM doesn't know it's own number, disable group mms. 21641ae031d70cbb9973d283fa2bff1643f08999e3cTom Taylor if (!MmsConfig.getGroupMmsEnabled() || 21741ae031d70cbb9973d283fa2bff1643f08999e3cTom Taylor TextUtils.isEmpty(MessageUtils.getLocalNumber())) { 2184ad70c5cfe23791f67cc368c579fd0b8a84936f3David Braun mMmsPrefCategory.removePreference(mMmsGroupMmsPref); 2199889006f9d29d0509c1c036987ce028de43ac96eTom Taylor } 220c555f86a3f5b2f19244cc9c282f49cb834de12e8Tom Taylor } 2214c93cf90a87725e0b6958f933b20e149e6c074f0Tom Taylor 222d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor setEnabledNotificationsPref(); 223d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor 22490e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor // If needed, migrate vibration setting from the previous tri-state setting stored in 22590e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor // NOTIFICATION_VIBRATE_WHEN to the boolean setting stored in NOTIFICATION_VIBRATE. 2269258283a430fdf030785c96380c2628603ea7e20Jim Shuma SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 22790e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor if (sharedPreferences.contains(NOTIFICATION_VIBRATE_WHEN)) { 22890e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor String vibrateWhen = sharedPreferences. 22990e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor getString(MessagingPreferenceActivity.NOTIFICATION_VIBRATE_WHEN, null); 23090e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor boolean vibrate = "always".equals(vibrateWhen); 23190e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor SharedPreferences.Editor prefsEditor = sharedPreferences.edit(); 23290e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor prefsEditor.putBoolean(NOTIFICATION_VIBRATE, vibrate); 23390e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor prefsEditor.remove(NOTIFICATION_VIBRATE_WHEN); // remove obsolete setting 23490e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor prefsEditor.apply(); 23590e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor mVibratePref.setChecked(vibrate); 2369258283a430fdf030785c96380c2628603ea7e20Jim Shuma } 2379258283a430fdf030785c96380c2628603ea7e20Jim Shuma 23853a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor mSmsRecycler = Recycler.getSmsRecycler(); 23953a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor mMmsRecycler = Recycler.getMmsRecycler(); 24053a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor 2413239889e9a417617b755d4cde22070843e5c070bTom Taylor // Fix up the recycler's summary with the correct values 24253a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor setSmsDisplayLimit(); 24353a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor setMmsDisplayLimit(); 24492bf054558be5898b54bd3c4f098c6924c2f77bbTom Taylor 24590e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor String soundValue = sharedPreferences.getString(NOTIFICATION_RINGTONE, null); 24690e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor setRingtoneSummary(soundValue); 24790e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor } 24890e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor 24990e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor private void setRingtoneSummary(String soundValue) { 25090e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor Uri soundUri = TextUtils.isEmpty(soundValue) ? null : Uri.parse(soundValue); 25190e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor Ringtone tone = soundUri != null ? RingtoneManager.getRingtone(this, soundUri) : null; 25290e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor mRingtonePref.setSummary(tone != null ? tone.getTitle(this) 25390e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor : getResources().getString(R.string.silent_ringtone)); 25453a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor } 25553a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor 256d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor private void setEnabledNotificationsPref() { 257d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor // The "enable notifications" setting is really stored in our own prefs. Read the 258d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor // current value and set the checkbox to match. 259d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor mEnableNotificationsPref.setChecked(getNotificationEnabled(this)); 260d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor } 261d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor 26253a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor private void setSmsDisplayLimit() { 26353a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor mSmsLimitPref.setSummary( 26453a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor getString(R.string.pref_summary_delete_limit, 26553a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor mSmsRecycler.getMessageLimit(this))); 26653a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor } 26753a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor 26853a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor private void setMmsDisplayLimit() { 26953a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor mMmsLimitPref.setSummary( 27053a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor getString(R.string.pref_summary_delete_limit, 27153a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor mMmsRecycler.getMessageLimit(this))); 27272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 27372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 27472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public boolean onCreateOptionsMenu(Menu menu) { 27572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project super.onCreateOptionsMenu(menu); 27672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project menu.clear(); 277991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun if (mIsSmsEnabled) { 278991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun menu.add(0, MENU_RESTORE_DEFAULTS, 0, R.string.restore_default); 279991a1f3a31bd749573b4d780a3e4d01e6c1c293fDavid Braun } 28072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return true; 28172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 28272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 28372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project @Override 28472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public boolean onOptionsItemSelected(MenuItem item) { 28572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project switch (item.getItemId()) { 28672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case MENU_RESTORE_DEFAULTS: 28772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project restoreDefaultPreferences(); 28872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return true; 2893c4edf4c2b63078cb7aae9806b7ed7b2faa50d9eTom Taylor 2903c4edf4c2b63078cb7aae9806b7ed7b2faa50d9eTom Taylor case android.R.id.home: 2913c4edf4c2b63078cb7aae9806b7ed7b2faa50d9eTom Taylor // The user clicked on the Messaging icon in the action bar. Take them back from 2923c4edf4c2b63078cb7aae9806b7ed7b2faa50d9eTom Taylor // wherever they came from 2933c4edf4c2b63078cb7aae9806b7ed7b2faa50d9eTom Taylor finish(); 2943c4edf4c2b63078cb7aae9806b7ed7b2faa50d9eTom Taylor return true; 29572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 29672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return false; 29772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 29853a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor 29953a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor @Override 30053a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, 30153a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor Preference preference) { 30253a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor if (preference == mSmsLimitPref) { 30353a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor new NumberPickerDialog(this, 30453a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor mSmsLimitListener, 30553a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor mSmsRecycler.getMessageLimit(this), 30653a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor mSmsRecycler.getMessageMinLimit(), 30753a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor mSmsRecycler.getMessageMaxLimit(), 30853a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor R.string.pref_title_sms_delete).show(); 30953a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor } else if (preference == mMmsLimitPref) { 31053a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor new NumberPickerDialog(this, 31153a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor mMmsLimitListener, 31253a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor mMmsRecycler.getMessageLimit(this), 31353a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor mMmsRecycler.getMessageMinLimit(), 31453a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor mMmsRecycler.getMessageMaxLimit(), 31553a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor R.string.pref_title_mms_delete).show(); 3164c93cf90a87725e0b6958f933b20e149e6c074f0Tom Taylor } else if (preference == mManageSimPref) { 3174c93cf90a87725e0b6958f933b20e149e6c074f0Tom Taylor startActivity(new Intent(this, ManageSimMessages.class)); 3188447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor } else if (preference == mClearHistoryPref) { 3198447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor showDialog(CONFIRM_CLEAR_SEARCH_HISTORY_DIALOG); 3208447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor return true; 321d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor } else if (preference == mEnableNotificationsPref) { 322d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor // Update the actual "enable notifications" value that is stored in secure settings. 323d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor enableNotifications(mEnableNotificationsPref.isChecked(), this); 32456e8095ef2e82f8db5fd4a04fa0a67c91cc7fbd3Tom Taylor } else if (preference == mMmsAutoRetrievialPref) { 32556e8095ef2e82f8db5fd4a04fa0a67c91cc7fbd3Tom Taylor if (mMmsAutoRetrievialPref.isChecked()) { 32656e8095ef2e82f8db5fd4a04fa0a67c91cc7fbd3Tom Taylor startMmsDownload(); 32756e8095ef2e82f8db5fd4a04fa0a67c91cc7fbd3Tom Taylor } 32853a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor } 32953a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor 33053a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor return super.onPreferenceTreeClick(preferenceScreen, preference); 33153a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor } 33253a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor 33356e8095ef2e82f8db5fd4a04fa0a67c91cc7fbd3Tom Taylor /** 33456e8095ef2e82f8db5fd4a04fa0a67c91cc7fbd3Tom Taylor * Trigger the TransactionService to download any outstanding messages. 33556e8095ef2e82f8db5fd4a04fa0a67c91cc7fbd3Tom Taylor */ 33656e8095ef2e82f8db5fd4a04fa0a67c91cc7fbd3Tom Taylor private void startMmsDownload() { 33756e8095ef2e82f8db5fd4a04fa0a67c91cc7fbd3Tom Taylor startService(new Intent(TransactionService.ACTION_ENABLE_AUTO_RETRIEVE, null, this, 33856e8095ef2e82f8db5fd4a04fa0a67c91cc7fbd3Tom Taylor TransactionService.class)); 33956e8095ef2e82f8db5fd4a04fa0a67c91cc7fbd3Tom Taylor } 34053a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor 34153a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor NumberPickerDialog.OnNumberSetListener mSmsLimitListener = 34253a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor new NumberPickerDialog.OnNumberSetListener() { 34353a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor public void onNumberSet(int limit) { 34453a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor mSmsRecycler.setMessageLimit(MessagingPreferenceActivity.this, limit); 34553a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor setSmsDisplayLimit(); 34653a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor } 34753a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor }; 34853a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor 34953a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor NumberPickerDialog.OnNumberSetListener mMmsLimitListener = 35053a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor new NumberPickerDialog.OnNumberSetListener() { 35153a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor public void onNumberSet(int limit) { 35253a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor mMmsRecycler.setMessageLimit(MessagingPreferenceActivity.this, limit); 35353a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor setMmsDisplayLimit(); 35453a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor } 35553a1dc1c4fed88c20a3ce4c2d37c909dc1e469e2Tom Taylor }; 3568447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor 3578447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor @Override 3588447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor protected Dialog onCreateDialog(int id) { 3598447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor switch (id) { 3608447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor case CONFIRM_CLEAR_SEARCH_HISTORY_DIALOG: 3618447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor return new AlertDialog.Builder(MessagingPreferenceActivity.this) 3628447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor .setTitle(R.string.confirm_clear_search_title) 3638447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor .setMessage(R.string.confirm_clear_search_text) 3648447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor .setPositiveButton(android.R.string.ok, new AlertDialog.OnClickListener() { 3658447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor public void onClick(DialogInterface dialog, int which) { 366f114492537753bc68640d4a0d403861387296bcbMark Wagner SearchRecentSuggestions recent = 367f114492537753bc68640d4a0d403861387296bcbMark Wagner ((MmsApp)getApplication()).getRecentSuggestions(); 368f114492537753bc68640d4a0d403861387296bcbMark Wagner if (recent != null) { 369f114492537753bc68640d4a0d403861387296bcbMark Wagner recent.clearHistory(); 370f114492537753bc68640d4a0d403861387296bcbMark Wagner } 371c4a34a0ccd414e2bba937e8abd105a0383afff35Tom Taylor dialog.dismiss(); 3728447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor } 3738447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor }) 3748447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor .setNegativeButton(android.R.string.cancel, null) 3757ad0a61f99867ac19cabd31b0d8db2ef4c234d24Björn Lundén .setIconAttribute(android.R.attr.alertDialogIcon) 3768447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor .create(); 3778447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor } 3788447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor return super.onCreateDialog(id); 3798447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor } 3808447aa1d84a469e8938b53a60b0763633b08ae98Tom Taylor 381d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor public static boolean getNotificationEnabled(Context context) { 382d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); 383d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor boolean notificationsEnabled = 384d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor prefs.getBoolean(MessagingPreferenceActivity.NOTIFICATION_ENABLED, true); 385d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor return notificationsEnabled; 386d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor } 387d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor 388d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor public static void enableNotifications(boolean enabled, Context context) { 389d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor // Store the value of notifications in SharedPreferences 390d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor SharedPreferences.Editor editor = 391d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor PreferenceManager.getDefaultSharedPreferences(context).edit(); 392d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor 393d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor editor.putBoolean(MessagingPreferenceActivity.NOTIFICATION_ENABLED, enabled); 394d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor 395d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor editor.apply(); 396d83675687b1ef742c33bffe8195d7b1852c2c01dTom Taylor } 39792bf054558be5898b54bd3c4f098c6924c2f77bbTom Taylor 39892bf054558be5898b54bd3c4f098c6924c2f77bbTom Taylor private void registerListeners() { 39990e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor mRingtonePref.setOnPreferenceChangeListener(this); 40092bf054558be5898b54bd3c4f098c6924c2f77bbTom Taylor } 40192bf054558be5898b54bd3c4f098c6924c2f77bbTom Taylor 40292bf054558be5898b54bd3c4f098c6924c2f77bbTom Taylor public boolean onPreferenceChange(Preference preference, Object newValue) { 40392bf054558be5898b54bd3c4f098c6924c2f77bbTom Taylor boolean result = false; 40490e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor if (preference == mRingtonePref) { 40590e32e59610d4a395716b1cfa9c8b041b45e3d4eTom Taylor setRingtoneSummary((String)newValue); 40692bf054558be5898b54bd3c4f098c6924c2f77bbTom Taylor result = true; 40792bf054558be5898b54bd3c4f098c6924c2f77bbTom Taylor } 40892bf054558be5898b54bd3c4f098c6924c2f77bbTom Taylor return result; 40992bf054558be5898b54bd3c4f098c6924c2f77bbTom Taylor } 41092bf054558be5898b54bd3c4f098c6924c2f77bbTom Taylor 41141ae031d70cbb9973d283fa2bff1643f08999e3cTom Taylor // For the group mms feature to be enabled, the following must be true: 41241ae031d70cbb9973d283fa2bff1643f08999e3cTom Taylor // 1. the feature is enabled in mms_config.xml (currently on by default) 41341ae031d70cbb9973d283fa2bff1643f08999e3cTom Taylor // 2. the feature is enabled in the mms settings page 41441ae031d70cbb9973d283fa2bff1643f08999e3cTom Taylor // 3. the SIM knows its own phone number 4159889006f9d29d0509c1c036987ce028de43ac96eTom Taylor public static boolean getIsGroupMmsEnabled(Context context) { 4169889006f9d29d0509c1c036987ce028de43ac96eTom Taylor SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); 4179889006f9d29d0509c1c036987ce028de43ac96eTom Taylor boolean groupMmsPrefOn = prefs.getBoolean( 4189889006f9d29d0509c1c036987ce028de43ac96eTom Taylor MessagingPreferenceActivity.GROUP_MMS_MODE, true); 41941ae031d70cbb9973d283fa2bff1643f08999e3cTom Taylor return MmsConfig.getGroupMmsEnabled() && 42041ae031d70cbb9973d283fa2bff1643f08999e3cTom Taylor groupMmsPrefOn && 42141ae031d70cbb9973d283fa2bff1643f08999e3cTom Taylor !TextUtils.isEmpty(MessageUtils.getLocalNumber()); 4229889006f9d29d0509c1c036987ce028de43ac96eTom Taylor } 42372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project} 424