diff options
Diffstat (limited to 'src/com/android/messaging/ui/appsettings/PerSubscriptionSettingsActivity.java')
-rw-r--r-- | src/com/android/messaging/ui/appsettings/PerSubscriptionSettingsActivity.java | 246 |
1 files changed, 0 insertions, 246 deletions
diff --git a/src/com/android/messaging/ui/appsettings/PerSubscriptionSettingsActivity.java b/src/com/android/messaging/ui/appsettings/PerSubscriptionSettingsActivity.java deleted file mode 100644 index e02823f..0000000 --- a/src/com/android/messaging/ui/appsettings/PerSubscriptionSettingsActivity.java +++ /dev/null @@ -1,246 +0,0 @@ -/* - * Copyright (C) 2015 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.messaging.ui.appsettings; - -import android.app.FragmentTransaction; -import android.content.ActivityNotFoundException; -import android.content.Intent; -import android.content.SharedPreferences; -import android.content.SharedPreferences.OnSharedPreferenceChangeListener; -import android.content.pm.PackageManager; -import android.os.Bundle; -import android.preference.Preference; -import android.preference.Preference.OnPreferenceClickListener; -import android.preference.PreferenceCategory; -import android.preference.PreferenceFragment; -import android.preference.PreferenceScreen; -import android.support.v4.app.NavUtils; -import android.text.TextUtils; -import android.view.MenuItem; - -import com.android.messaging.Factory; -import com.android.messaging.R; -import com.android.messaging.datamodel.ParticipantRefresh; -import com.android.messaging.datamodel.data.ParticipantData; -import com.android.messaging.sms.ApnDatabase; -import com.android.messaging.sms.MmsConfig; -import com.android.messaging.sms.MmsUtils; -import com.android.messaging.ui.BugleActionBarActivity; -import com.android.messaging.ui.UIIntents; -import com.android.messaging.util.Assert; -import com.android.messaging.util.BuglePrefs; -import com.android.messaging.util.LogUtil; -import com.android.messaging.util.PhoneUtils; - -public class PerSubscriptionSettingsActivity extends BugleActionBarActivity { - @Override - protected void onCreate(final Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - final String title = getIntent().getStringExtra( - UIIntents.UI_INTENT_EXTRA_PER_SUBSCRIPTION_SETTING_TITLE); - if (!TextUtils.isEmpty(title)) { - getSupportActionBar().setTitle(title); - } else { - // This will fall back to the default title, i.e. "Messaging settings," so No-op. - } - - final FragmentTransaction ft = getFragmentManager().beginTransaction(); - final PerSubscriptionSettingsFragment fragment = new PerSubscriptionSettingsFragment(); - ft.replace(android.R.id.content, fragment); - ft.commit(); - } - - @Override - public boolean onOptionsItemSelected(final MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - NavUtils.navigateUpFromSameTask(this); - return true; - } - return super.onOptionsItemSelected(item); - } - - public static class PerSubscriptionSettingsFragment extends PreferenceFragment - implements OnSharedPreferenceChangeListener { - private PhoneNumberPreference mPhoneNumberPreference; - private Preference mGroupMmsPreference; - private String mGroupMmsPrefKey; - private String mPhoneNumberKey; - private int mSubId; - - public PerSubscriptionSettingsFragment() { - // Required empty constructor - } - - @Override - public void onCreate(final Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - // Get sub id from launch intent - final Intent intent = getActivity().getIntent(); - Assert.notNull(intent); - mSubId = (intent != null) ? intent.getIntExtra(UIIntents.UI_INTENT_EXTRA_SUB_ID, - ParticipantData.DEFAULT_SELF_SUB_ID) : ParticipantData.DEFAULT_SELF_SUB_ID; - - final BuglePrefs subPrefs = Factory.get().getSubscriptionPrefs(mSubId); - getPreferenceManager().setSharedPreferencesName(subPrefs.getSharedPreferencesName()); - addPreferencesFromResource(R.xml.preferences_per_subscription); - - mPhoneNumberKey = getString(R.string.mms_phone_number_pref_key); - mPhoneNumberPreference = (PhoneNumberPreference) findPreference(mPhoneNumberKey); - final PreferenceCategory advancedCategory = (PreferenceCategory) - findPreference(getString(R.string.advanced_category_pref_key)); - final PreferenceCategory mmsCategory = (PreferenceCategory) - findPreference(getString(R.string.mms_messaging_category_pref_key)); - - mPhoneNumberPreference.setDefaultPhoneNumber( - PhoneUtils.get(mSubId).getCanonicalForSelf(false/*allowOverride*/), mSubId); - - mGroupMmsPrefKey = getString(R.string.group_mms_pref_key); - mGroupMmsPreference = findPreference(mGroupMmsPrefKey); - if (!MmsConfig.get(mSubId).getGroupMmsEnabled()) { - // Always show group messaging setting even if the SIM has no number - // If broadcast sms is selected, the SIM number is not needed - // If group mms is selected, the phone number dialog will popup when message - // is being sent, making sure we will have a self number for group mms. - mmsCategory.removePreference(mGroupMmsPreference); - } else { - mGroupMmsPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() { - @Override - public boolean onPreferenceClick(Preference pref) { - GroupMmsSettingDialog.showDialog(getActivity(), mSubId); - return true; - } - }); - updateGroupMmsPrefSummary(); - } - - if (!MmsConfig.get(mSubId).getSMSDeliveryReportsEnabled()) { - final Preference deliveryReportsPref = findPreference( - getString(R.string.delivery_reports_pref_key)); - mmsCategory.removePreference(deliveryReportsPref); - } - final Preference wirelessAlertPref = findPreference(getString( - R.string.wireless_alerts_key)); - if (!isCellBroadcastAppLinkEnabled()) { - advancedCategory.removePreference(wirelessAlertPref); - } else { - wirelessAlertPref.setOnPreferenceClickListener( - new Preference.OnPreferenceClickListener() { - @Override - public boolean onPreferenceClick(final Preference preference) { - try { - startActivity(UIIntents.get().getWirelessAlertsIntent()); - } catch (final ActivityNotFoundException e) { - // Handle so we shouldn't crash if the wireless alerts - // implementation is broken. - LogUtil.e(LogUtil.BUGLE_TAG, - "Failed to launch wireless alerts activity", e); - } - return true; - } - }); - } - - // Access Point Names (APNs) - final Preference apnsPref = findPreference(getString(R.string.sms_apns_key)); - - if (MmsUtils.useSystemApnTable() && !ApnDatabase.doesDatabaseExist()) { - // Don't remove the ability to edit the local APN prefs if this device lets us - // access the system APN, but we can't find the MCC/MNC in the APN table and we - // created the local APN table in case the MCC/MNC was in there. In other words, - // if the local APN table exists, let the user edit it. - advancedCategory.removePreference(apnsPref); - } else { - final PreferenceScreen apnsScreen = (PreferenceScreen) findPreference( - getString(R.string.sms_apns_key)); - apnsScreen.setIntent(UIIntents.get() - .getApnSettingsIntent(getPreferenceScreen().getContext(), mSubId)); - } - - // We want to disable preferences if we are not the default app, but we do all of the - // above first so that the user sees the correct information on the screen - if (!PhoneUtils.getDefault().isDefaultSmsApp()) { - mGroupMmsPreference.setEnabled(false); - final Preference autoRetrieveMmsPreference = - findPreference(getString(R.string.auto_retrieve_mms_pref_key)); - autoRetrieveMmsPreference.setEnabled(false); - final Preference deliveryReportsPreference = - findPreference(getString(R.string.delivery_reports_pref_key)); - deliveryReportsPreference.setEnabled(false); - } - } - - private boolean isCellBroadcastAppLinkEnabled() { - if (!MmsConfig.get(mSubId).getShowCellBroadcast()) { - return false; - } - try { - final PackageManager pm = getActivity().getPackageManager(); - return pm.getApplicationEnabledSetting(UIIntents.CMAS_COMPONENT) - != PackageManager.COMPONENT_ENABLED_STATE_DISABLED; - } catch (final IllegalArgumentException ignored) { - // CMAS app not installed. - } - return false; - } - - private void updateGroupMmsPrefSummary() { - final boolean groupMmsEnabled = getPreferenceScreen().getSharedPreferences().getBoolean( - mGroupMmsPrefKey, getResources().getBoolean(R.bool.group_mms_pref_default)); - mGroupMmsPreference.setSummary(groupMmsEnabled ? - R.string.enable_group_mms : R.string.disable_group_mms); - } - - @Override - public void onResume() { - super.onResume(); - getPreferenceScreen().getSharedPreferences() - .registerOnSharedPreferenceChangeListener(this); - } - - @Override - public void onSharedPreferenceChanged(final SharedPreferences sharedPreferences, - final String key) { - if (key.equals(mGroupMmsPrefKey)) { - updateGroupMmsPrefSummary(); - } else if (key.equals(mPhoneNumberKey)) { - // Save the changed phone number in preferences specific to the sub id - final String newPhoneNumber = mPhoneNumberPreference.getText(); - final BuglePrefs subPrefs = BuglePrefs.getSubscriptionPrefs(mSubId); - if (TextUtils.isEmpty(newPhoneNumber)) { - subPrefs.remove(mPhoneNumberKey); - } else { - subPrefs.putString(getString(R.string.mms_phone_number_pref_key), - newPhoneNumber); - } - // Update the self participants so the new phone number will be reflected - // everywhere in the UI. - ParticipantRefresh.refreshSelfParticipants(); - } - } - - @Override - public void onPause() { - super.onPause(); - getPreferenceScreen().getSharedPreferences() - .unregisterOnSharedPreferenceChangeListener(this); - } - } -} |