diff options
Diffstat (limited to 'java/com/android/voicemail/impl/settings/VoicemailSettingsFragment.java')
-rw-r--r-- | java/com/android/voicemail/impl/settings/VoicemailSettingsFragment.java | 282 |
1 files changed, 0 insertions, 282 deletions
diff --git a/java/com/android/voicemail/impl/settings/VoicemailSettingsFragment.java b/java/com/android/voicemail/impl/settings/VoicemailSettingsFragment.java deleted file mode 100644 index 465223811..000000000 --- a/java/com/android/voicemail/impl/settings/VoicemailSettingsFragment.java +++ /dev/null @@ -1,282 +0,0 @@ -/** - * Copyright (C) 2017 The Android Open Source Project - * - * <p>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 - * - * <p>http://www.apache.org/licenses/LICENSE-2.0 - * - * <p>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.voicemail.impl.settings; - -import android.annotation.TargetApi; -import android.content.Intent; -import android.os.Build.VERSION_CODES; -import android.os.Bundle; -import android.preference.Preference; -import android.preference.Preference.OnPreferenceClickListener; -import android.preference.PreferenceFragment; -import android.preference.PreferenceScreen; -import android.preference.SwitchPreference; -import android.provider.Settings; -import android.support.annotation.Nullable; -import android.telecom.PhoneAccountHandle; -import android.telephony.TelephonyManager; -import com.android.dialer.common.Assert; -import com.android.dialer.logging.DialerImpression; -import com.android.dialer.logging.Logger; -import com.android.dialer.notification.NotificationChannelManager; -import com.android.voicemail.VoicemailClient; -import com.android.voicemail.VoicemailComponent; -import com.android.voicemail.impl.OmtpVvmCarrierConfigHelper; -import com.android.voicemail.impl.R; -import com.android.voicemail.impl.VvmLog; -import com.android.voicemail.impl.sync.VvmAccountManager; - -/** - * Fragment for voicemail settings. Requires {@link VoicemailClient#PARAM_PHONE_ACCOUNT_HANDLE} set - * in arguments. - */ -@TargetApi(VERSION_CODES.O) -public class VoicemailSettingsFragment extends PreferenceFragment - implements Preference.OnPreferenceChangeListener, VvmAccountManager.Listener { - - private static final String TAG = "VmSettingsActivity"; - - @Nullable private PhoneAccountHandle phoneAccountHandle; - private OmtpVvmCarrierConfigHelper omtpVvmCarrierConfigHelper; - - private Preference voicemailNotificationPreference; - private SwitchPreference voicemailVisualVoicemail; - private SwitchPreference autoArchiveSwitchPreference; - private SwitchPreference donateVoicemailSwitchPreference; - private Preference voicemailChangePinPreference; - private PreferenceScreen advancedSettings; - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - - phoneAccountHandle = - Assert.isNotNull(getArguments().getParcelable(VoicemailClient.PARAM_PHONE_ACCOUNT_HANDLE)); - - omtpVvmCarrierConfigHelper = new OmtpVvmCarrierConfigHelper(getContext(), phoneAccountHandle); - } - - @Override - public void onResume() { - super.onResume(); - Logger.get(getContext()).logImpression(DialerImpression.Type.VVM_SETTINGS_VIEWED); - VvmAccountManager.addListener(this); - PreferenceScreen preferenceScreen = getPreferenceScreen(); - if (preferenceScreen != null) { - preferenceScreen.removeAll(); - } - - addPreferencesFromResource(R.xml.voicemail_settings); - - PreferenceScreen prefSet = getPreferenceScreen(); - - voicemailNotificationPreference = - findPreference(getString(R.string.voicemail_notifications_key)); - voicemailNotificationPreference.setIntent(getNotificationSettingsIntent()); - - voicemailNotificationPreference.setOnPreferenceClickListener( - new OnPreferenceClickListener() { - @Override - public boolean onPreferenceClick(Preference preference) { - Logger.get(getContext()) - .logImpression(DialerImpression.Type.VVM_CHANGE_RINGTONE_CLICKED); - // Let the preference handle the click. - return false; - } - }); - - voicemailVisualVoicemail = - (SwitchPreference) findPreference(getString(R.string.voicemail_visual_voicemail_key)); - - autoArchiveSwitchPreference = - (SwitchPreference) - findPreference(getString(R.string.voicemail_visual_voicemail_archive_key)); - - donateVoicemailSwitchPreference = - (SwitchPreference) - findPreference(getString(R.string.voicemail_visual_voicemail_donation_key)); - - if (!VoicemailComponent.get(getContext()) - .getVoicemailClient() - .isVoicemailArchiveAvailable(getContext())) { - getPreferenceScreen().removePreference(autoArchiveSwitchPreference); - } - - if (!VoicemailComponent.get(getContext()) - .getVoicemailClient() - .isVoicemailDonationEnabled(getContext(), phoneAccountHandle)) { - getPreferenceScreen().removePreference(donateVoicemailSwitchPreference); - } - - voicemailChangePinPreference = findPreference(getString(R.string.voicemail_change_pin_key)); - - if (omtpVvmCarrierConfigHelper.isValid()) { - Assert.isNotNull(phoneAccountHandle); - Intent changePinIntent = - new Intent(new Intent(getContext(), VoicemailChangePinActivity.class)); - changePinIntent.putExtra( - VoicemailChangePinActivity.EXTRA_PHONE_ACCOUNT_HANDLE, phoneAccountHandle); - - voicemailChangePinPreference.setIntent(changePinIntent); - voicemailChangePinPreference.setOnPreferenceClickListener( - new OnPreferenceClickListener() { - @Override - public boolean onPreferenceClick(Preference preference) { - Logger.get(getContext()).logImpression(DialerImpression.Type.VVM_CHANGE_PIN_CLICKED); - // Let the preference handle the click. - return false; - } - }); - if (VoicemailChangePinActivity.isDefaultOldPinSet(getContext(), phoneAccountHandle)) { - voicemailChangePinPreference.setTitle(R.string.voicemail_set_pin_preference_title); - } else { - voicemailChangePinPreference.setTitle(R.string.voicemail_change_pin_preference_title); - } - updateChangePin(); - - voicemailVisualVoicemail.setOnPreferenceChangeListener(this); - voicemailVisualVoicemail.setChecked( - VisualVoicemailSettingsUtil.isEnabled(getContext(), phoneAccountHandle)); - - autoArchiveSwitchPreference.setOnPreferenceChangeListener(this); - autoArchiveSwitchPreference.setChecked( - VisualVoicemailSettingsUtil.isArchiveEnabled(getContext(), phoneAccountHandle)); - - donateVoicemailSwitchPreference.setOnPreferenceChangeListener(this); - donateVoicemailSwitchPreference.setChecked( - VisualVoicemailSettingsUtil.isVoicemailDonationEnabled(getContext(), phoneAccountHandle)); - updateDonateVoicemail(); - } else { - prefSet.removePreference(voicemailVisualVoicemail); - prefSet.removePreference(autoArchiveSwitchPreference); - prefSet.removePreference(donateVoicemailSwitchPreference); - prefSet.removePreference(voicemailChangePinPreference); - } - - advancedSettings = - (PreferenceScreen) findPreference(getString(R.string.voicemail_advanced_settings_key)); - Intent advancedSettingsIntent = new Intent(TelephonyManager.ACTION_CONFIGURE_VOICEMAIL); - advancedSettingsIntent.putExtra(TelephonyManager.EXTRA_HIDE_PUBLIC_SETTINGS, true); - advancedSettingsIntent.putExtra( - TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE, phoneAccountHandle); - advancedSettings.setIntent(advancedSettingsIntent); - voicemailChangePinPreference.setOnPreferenceClickListener( - new OnPreferenceClickListener() { - @Override - public boolean onPreferenceClick(Preference preference) { - Logger.get(getContext()) - .logImpression(DialerImpression.Type.VVM_ADVANCED_SETINGS_CLICKED); - // Let the preference handle the click. - return false; - } - }); - } - - @Override - public void onPause() { - VvmAccountManager.removeListener(this); - super.onPause(); - } - - /** - * Implemented to support onPreferenceChangeListener to look for preference changes. - * - * @param preference is the preference to be changed - * @param objValue should be the value of the selection, NOT its localized display value. - */ - @Override - public boolean onPreferenceChange(Preference preference, Object objValue) { - VvmLog.d(TAG, "onPreferenceChange: \"" + preference + "\" changed to \"" + objValue + "\""); - if (preference.getKey().equals(voicemailVisualVoicemail.getKey())) { - boolean isEnabled = (boolean) objValue; - VisualVoicemailSettingsUtil.setEnabled(getContext(), phoneAccountHandle, isEnabled); - - if (isEnabled) { - Logger.get(getContext()).logImpression(DialerImpression.Type.VVM_USER_ENABLED_IN_SETTINGS); - } else { - Logger.get(getContext()).logImpression(DialerImpression.Type.VVM_USER_DISABLED_IN_SETTINGS); - } - - updateChangePin(); - updateDonateVoicemail(); - } else if (preference.getKey().equals(autoArchiveSwitchPreference.getKey())) { - logArchiveToggle((boolean) objValue); - VisualVoicemailSettingsUtil.setArchiveEnabled( - getContext(), phoneAccountHandle, (boolean) objValue); - } else if (preference.getKey().equals(donateVoicemailSwitchPreference.getKey())) { - logArchiveToggle((boolean) objValue); - VisualVoicemailSettingsUtil.setVoicemailDonationEnabled( - getContext(), phoneAccountHandle, (boolean) objValue); - } - - // Always let the preference setting proceed. - return true; - } - - private void updateChangePin() { - if (!VisualVoicemailSettingsUtil.isEnabled(getContext(), phoneAccountHandle)) { - voicemailChangePinPreference.setSummary( - R.string.voicemail_change_pin_preference_summary_disable); - voicemailChangePinPreference.setEnabled(false); - } else if (!VvmAccountManager.isAccountActivated(getContext(), phoneAccountHandle)) { - voicemailChangePinPreference.setSummary( - R.string.voicemail_change_pin_preference_summary_not_activated); - voicemailChangePinPreference.setEnabled(false); - } else { - voicemailChangePinPreference.setSummary(null); - voicemailChangePinPreference.setEnabled(true); - } - } - - private void updateDonateVoicemail() { - if (!VisualVoicemailSettingsUtil.isEnabled(getContext(), phoneAccountHandle)) { - donateVoicemailSwitchPreference.setSummary( - R.string.voicemail_donate_preference_summary_disable); - donateVoicemailSwitchPreference.setEnabled(false); - } else if (!VvmAccountManager.isAccountActivated(getContext(), phoneAccountHandle)) { - donateVoicemailSwitchPreference.setSummary( - R.string.voicemail_donate_preference_summary_not_activated); - donateVoicemailSwitchPreference.setEnabled(false); - } else { - donateVoicemailSwitchPreference.setSummary(R.string.voicemail_donate_preference_summary_info); - donateVoicemailSwitchPreference.setEnabled(true); - } - } - - private void logArchiveToggle(boolean userTurnedOn) { - if (userTurnedOn) { - Logger.get(getContext()) - .logImpression(DialerImpression.Type.VVM_USER_TURNED_ARCHIVE_ON_FROM_SETTINGS); - } else { - Logger.get(getContext()) - .logImpression(DialerImpression.Type.VVM_USER_TURNED_ARCHIVE_OFF_FROM_SETTINGS); - } - } - - @Override - public void onActivationStateChanged(PhoneAccountHandle phoneAccountHandle, boolean isActivated) { - if (this.phoneAccountHandle.equals(phoneAccountHandle)) { - updateChangePin(); - updateDonateVoicemail(); - } - } - - private Intent getNotificationSettingsIntent() { - String channelId = - NotificationChannelManager.getVoicemailChannelId(getContext(), phoneAccountHandle); - return new Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS) - .putExtra(Settings.EXTRA_CHANNEL_ID, channelId) - .putExtra(Settings.EXTRA_APP_PACKAGE, getContext().getPackageName()); - } -} |