summaryrefslogtreecommitdiffstats
path: root/src/com/android/messaging/ui/appsettings/PerSubscriptionSettingsActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/messaging/ui/appsettings/PerSubscriptionSettingsActivity.java')
-rw-r--r--src/com/android/messaging/ui/appsettings/PerSubscriptionSettingsActivity.java246
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);
- }
- }
-}