1d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd/* 2d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Copyright (C) 2015 The Android Open Source Project 3d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 4d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Licensed under the Apache License, Version 2.0 (the "License"); 5d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * you may not use this file except in compliance with the License. 6d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * You may obtain a copy of the License at 7d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 8d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * http://www.apache.org/licenses/LICENSE-2.0 9d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 10d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Unless required by applicable law or agreed to in writing, software 11d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * distributed under the License is distributed on an "AS IS" BASIS, 12d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * See the License for the specific language governing permissions and 14d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * limitations under the License. 15d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 16d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 17d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddpackage com.android.messaging.ui.appsettings; 18d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 19d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.app.FragmentTransaction; 20d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.content.ActivityNotFoundException; 21d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.content.Intent; 22d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.content.SharedPreferences; 23d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.content.SharedPreferences.OnSharedPreferenceChangeListener; 24d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.content.pm.PackageManager; 25d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.os.Bundle; 26d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.preference.Preference; 27d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.preference.Preference.OnPreferenceClickListener; 28d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.preference.PreferenceCategory; 29d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.preference.PreferenceFragment; 30d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.preference.PreferenceScreen; 31d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.support.v4.app.NavUtils; 32d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.text.TextUtils; 33d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.view.MenuItem; 34d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 35d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport com.android.messaging.Factory; 36d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport com.android.messaging.R; 37d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport com.android.messaging.datamodel.ParticipantRefresh; 38d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport com.android.messaging.datamodel.data.ParticipantData; 39d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport com.android.messaging.sms.ApnDatabase; 40d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport com.android.messaging.sms.MmsConfig; 41d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport com.android.messaging.sms.MmsUtils; 42d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport com.android.messaging.ui.BugleActionBarActivity; 43d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport com.android.messaging.ui.UIIntents; 44d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport com.android.messaging.util.Assert; 45d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport com.android.messaging.util.BuglePrefs; 46d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport com.android.messaging.util.LogUtil; 47d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport com.android.messaging.util.PhoneUtils; 48d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 49d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddpublic class PerSubscriptionSettingsActivity extends BugleActionBarActivity { 50d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd @Override 51d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd protected void onCreate(final Bundle savedInstanceState) { 52d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd super.onCreate(savedInstanceState); 53d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 54d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd getSupportActionBar().setDisplayHomeAsUpEnabled(true); 55d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final String title = getIntent().getStringExtra( 56d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd UIIntents.UI_INTENT_EXTRA_PER_SUBSCRIPTION_SETTING_TITLE); 57d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd if (!TextUtils.isEmpty(title)) { 58d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd getSupportActionBar().setTitle(title); 59d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } else { 60d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // This will fall back to the default title, i.e. "Messaging settings," so No-op. 61d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 62d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 63d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final FragmentTransaction ft = getFragmentManager().beginTransaction(); 64d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final PerSubscriptionSettingsFragment fragment = new PerSubscriptionSettingsFragment(); 65d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd ft.replace(android.R.id.content, fragment); 66d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd ft.commit(); 67d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 68d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 69d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd @Override 70d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public boolean onOptionsItemSelected(final MenuItem item) { 71d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd switch (item.getItemId()) { 72d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd case android.R.id.home: 73d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd NavUtils.navigateUpFromSameTask(this); 74d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd return true; 75d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 76d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd return super.onOptionsItemSelected(item); 77d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 78d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 79d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public static class PerSubscriptionSettingsFragment extends PreferenceFragment 80d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd implements OnSharedPreferenceChangeListener { 81d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd private PhoneNumberPreference mPhoneNumberPreference; 82d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd private Preference mGroupMmsPreference; 83d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd private String mGroupMmsPrefKey; 84d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd private String mPhoneNumberKey; 85d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd private int mSubId; 86d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 87d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public PerSubscriptionSettingsFragment() { 88d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // Required empty constructor 89d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 90d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 91d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd @Override 92d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void onCreate(final Bundle savedInstanceState) { 93d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd super.onCreate(savedInstanceState); 94d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 95d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // Get sub id from launch intent 96d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final Intent intent = getActivity().getIntent(); 97d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd Assert.notNull(intent); 98d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mSubId = (intent != null) ? intent.getIntExtra(UIIntents.UI_INTENT_EXTRA_SUB_ID, 99d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd ParticipantData.DEFAULT_SELF_SUB_ID) : ParticipantData.DEFAULT_SELF_SUB_ID; 100d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 101d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final BuglePrefs subPrefs = Factory.get().getSubscriptionPrefs(mSubId); 102d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd getPreferenceManager().setSharedPreferencesName(subPrefs.getSharedPreferencesName()); 103d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd addPreferencesFromResource(R.xml.preferences_per_subscription); 104d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 105d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mPhoneNumberKey = getString(R.string.mms_phone_number_pref_key); 106d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mPhoneNumberPreference = (PhoneNumberPreference) findPreference(mPhoneNumberKey); 107d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final PreferenceCategory advancedCategory = (PreferenceCategory) 108d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd findPreference(getString(R.string.advanced_category_pref_key)); 109d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final PreferenceCategory mmsCategory = (PreferenceCategory) 110d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd findPreference(getString(R.string.mms_messaging_category_pref_key)); 111d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 112d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mPhoneNumberPreference.setDefaultPhoneNumber( 113d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd PhoneUtils.get(mSubId).getCanonicalForSelf(false/*allowOverride*/), mSubId); 114d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 115d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mGroupMmsPrefKey = getString(R.string.group_mms_pref_key); 116d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mGroupMmsPreference = findPreference(mGroupMmsPrefKey); 117d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd if (!MmsConfig.get(mSubId).getGroupMmsEnabled()) { 118d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // Always show group messaging setting even if the SIM has no number 119d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // If broadcast sms is selected, the SIM number is not needed 120d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // If group mms is selected, the phone number dialog will popup when message 121d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // is being sent, making sure we will have a self number for group mms. 122d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mmsCategory.removePreference(mGroupMmsPreference); 123d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } else { 124d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mGroupMmsPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() { 125d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd @Override 126d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public boolean onPreferenceClick(Preference pref) { 127d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd GroupMmsSettingDialog.showDialog(getActivity(), mSubId); 128d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd return true; 129d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 130d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd }); 131d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd updateGroupMmsPrefSummary(); 132d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 133d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 134d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd if (!MmsConfig.get(mSubId).getSMSDeliveryReportsEnabled()) { 135d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final Preference deliveryReportsPref = findPreference( 136d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd getString(R.string.delivery_reports_pref_key)); 137d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mmsCategory.removePreference(deliveryReportsPref); 138d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 139d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final Preference wirelessAlertPref = findPreference(getString( 140d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd R.string.wireless_alerts_key)); 141d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd if (!isCellBroadcastAppLinkEnabled()) { 142d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd advancedCategory.removePreference(wirelessAlertPref); 143d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } else { 144d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd wirelessAlertPref.setOnPreferenceClickListener( 145d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd new Preference.OnPreferenceClickListener() { 146d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd @Override 147d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public boolean onPreferenceClick(final Preference preference) { 148d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd try { 149d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd startActivity(UIIntents.get().getWirelessAlertsIntent()); 150d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } catch (final ActivityNotFoundException e) { 151d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // Handle so we shouldn't crash if the wireless alerts 152d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // implementation is broken. 153d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd LogUtil.e(LogUtil.BUGLE_TAG, 154d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd "Failed to launch wireless alerts activity", e); 155d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 156d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd return true; 157d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 158d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd }); 159d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 160d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 161d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // Access Point Names (APNs) 162d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final Preference apnsPref = findPreference(getString(R.string.sms_apns_key)); 163d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 164d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd if (MmsUtils.useSystemApnTable() && !ApnDatabase.doesDatabaseExist()) { 165d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // Don't remove the ability to edit the local APN prefs if this device lets us 166d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // access the system APN, but we can't find the MCC/MNC in the APN table and we 167d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // created the local APN table in case the MCC/MNC was in there. In other words, 168d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // if the local APN table exists, let the user edit it. 169d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd advancedCategory.removePreference(apnsPref); 170d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } else { 171d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final PreferenceScreen apnsScreen = (PreferenceScreen) findPreference( 172d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd getString(R.string.sms_apns_key)); 173d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd apnsScreen.setIntent(UIIntents.get() 174d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd .getApnSettingsIntent(getPreferenceScreen().getContext(), mSubId)); 175d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 176d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 177d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // We want to disable preferences if we are not the default app, but we do all of the 178d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // above first so that the user sees the correct information on the screen 179d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd if (!PhoneUtils.getDefault().isDefaultSmsApp()) { 180d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mGroupMmsPreference.setEnabled(false); 181d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final Preference autoRetrieveMmsPreference = 182d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd findPreference(getString(R.string.auto_retrieve_mms_pref_key)); 183d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd autoRetrieveMmsPreference.setEnabled(false); 184d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final Preference deliveryReportsPreference = 185d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd findPreference(getString(R.string.delivery_reports_pref_key)); 186d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd deliveryReportsPreference.setEnabled(false); 187d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 188d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 189d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 190d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd private boolean isCellBroadcastAppLinkEnabled() { 191d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd if (!MmsConfig.get(mSubId).getShowCellBroadcast()) { 192d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd return false; 193d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 194d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd try { 195d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final PackageManager pm = getActivity().getPackageManager(); 196d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd return pm.getApplicationEnabledSetting(UIIntents.CMAS_COMPONENT) 197d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd != PackageManager.COMPONENT_ENABLED_STATE_DISABLED; 198d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } catch (final IllegalArgumentException ignored) { 199d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // CMAS app not installed. 200d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 201d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd return false; 202d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 203d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 204d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd private void updateGroupMmsPrefSummary() { 205d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final boolean groupMmsEnabled = getPreferenceScreen().getSharedPreferences().getBoolean( 206d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mGroupMmsPrefKey, getResources().getBoolean(R.bool.group_mms_pref_default)); 207d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mGroupMmsPreference.setSummary(groupMmsEnabled ? 208d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd R.string.enable_group_mms : R.string.disable_group_mms); 209d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 210d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 211d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd @Override 212d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void onResume() { 213d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd super.onResume(); 214d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd getPreferenceScreen().getSharedPreferences() 215d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd .registerOnSharedPreferenceChangeListener(this); 216d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 217d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 218d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd @Override 219d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void onSharedPreferenceChanged(final SharedPreferences sharedPreferences, 220d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final String key) { 221d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd if (key.equals(mGroupMmsPrefKey)) { 222d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd updateGroupMmsPrefSummary(); 223d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } else if (key.equals(mPhoneNumberKey)) { 224d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // Save the changed phone number in preferences specific to the sub id 225d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final String newPhoneNumber = mPhoneNumberPreference.getText(); 226d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final BuglePrefs subPrefs = BuglePrefs.getSubscriptionPrefs(mSubId); 227d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd if (TextUtils.isEmpty(newPhoneNumber)) { 228d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd subPrefs.remove(mPhoneNumberKey); 229d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } else { 230d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd subPrefs.putString(getString(R.string.mms_phone_number_pref_key), 231d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd newPhoneNumber); 232d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 233d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // Update the self participants so the new phone number will be reflected 234d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // everywhere in the UI. 235d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd ParticipantRefresh.refreshSelfParticipants(); 236d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 237d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 238d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 239d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd @Override 240d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void onPause() { 241d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd super.onPause(); 242d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd getPreferenceScreen().getSharedPreferences() 243d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd .unregisterOnSharedPreferenceChangeListener(this); 244d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 245d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 246d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd} 247