summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/voicemail/settings/VoicemailSettingsFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/voicemail/settings/VoicemailSettingsFragment.java')
-rw-r--r--java/com/android/dialer/voicemail/settings/VoicemailSettingsFragment.java65
1 files changed, 55 insertions, 10 deletions
diff --git a/java/com/android/dialer/voicemail/settings/VoicemailSettingsFragment.java b/java/com/android/dialer/voicemail/settings/VoicemailSettingsFragment.java
index 53c14b795..2e76b70fe 100644
--- a/java/com/android/dialer/voicemail/settings/VoicemailSettingsFragment.java
+++ b/java/com/android/dialer/voicemail/settings/VoicemailSettingsFragment.java
@@ -25,6 +25,7 @@ import android.preference.PreferenceFragment;
import android.preference.PreferenceScreen;
import android.preference.SwitchPreference;
import android.provider.Settings;
+import android.support.annotation.IntDef;
import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;
import android.telecom.PhoneAccount;
@@ -34,14 +35,18 @@ import android.telephony.SubscriptionInfo;
import android.telephony.TelephonyManager;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.preference.SwitchPreferenceWithClickableSummary;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.notification.NotificationChannelManager;
+import com.android.dialer.spannable.ContentWithLearnMoreSpanner;
import com.android.dialer.telecom.TelecomUtil;
import com.android.voicemail.VoicemailClient;
import com.android.voicemail.VoicemailClient.ActivationStateListener;
import com.android.voicemail.VoicemailComponent;
import com.google.common.base.Optional;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
/**
* Fragment for voicemail settings. Requires {@link VoicemailClient#PARAM_PHONE_ACCOUNT_HANDLE} set
@@ -63,19 +68,16 @@ public class VoicemailSettingsFragment extends PreferenceFragment
private static final String TAG = "VmSettingsActivity";
@Nullable private PhoneAccountHandle phoneAccountHandle;
-
private VoicemailClient voicemailClient;
-
// Settings that are independent of the carrier configurations
private Preference voicemailNotificationPreference;
private PreferenceScreen advancedSettingsPreference;
-
// Settings that are supported by dialer only if the carrier configurations are valid.
private SwitchPreference visualVoicemailPreference;
private SwitchPreference voicemailAutoArchivePreference;
private SwitchPreference transcribeVoicemailPreference;
// Voicemail transcription analysis toggle
- private SwitchPreference donateTranscribedVoicemailPreference;
+ private SwitchPreferenceWithClickableSummary donateTranscribedVoicemailPreference;
private Preference voicemailChangePinPreference;
@Override
@@ -98,7 +100,7 @@ public class VoicemailSettingsFragment extends PreferenceFragment
addPreferencesFromResource(R.xml.voicemail_settings);
- initializePreferences();
+ initializeXmlPreferences();
setupVisualVoicemailPreferences();
@@ -163,15 +165,28 @@ public class VoicemailSettingsFragment extends PreferenceFragment
}
private void showTranscriptionDonationEnabledPreferences() {
- donateTranscribedVoicemailPreference.setOnPreferenceChangeListener(this);
+ donateTranscribedVoicemailPreference.setEnabled(true);
donateTranscribedVoicemailPreference.setChecked(
voicemailClient.isVoicemailDonationEnabled(getContext(), phoneAccountHandle));
+ donateTranscribedVoicemailPreference.setOnPreferenceChangeListener(this);
donateTranscribedVoicemailPreference.setSummary(
- R.string.voicemail_donate_preference_summary_info);
- donateTranscribedVoicemailPreference.setEnabled(true);
+ getVoicemailTranscriptionDonationInformationalText());
getPreferenceScreen().addPreference(donateTranscribedVoicemailPreference);
}
+ /**
+ * Builds a spannable string containing the voicemail donation informational text containing the
+ * appropriate "Learn More" urls.
+ *
+ * @return The voicemail donation information text.
+ */
+ private CharSequence getVoicemailTranscriptionDonationInformationalText() {
+ return new ContentWithLearnMoreSpanner(getContext())
+ .create(
+ getContext().getString(R.string.voicemail_donate_preference_summary_info),
+ getContext().getString(R.string.donation_learn_more_url));
+ }
+
private void removeAllTranscriptionPreferences() {
getPreferenceScreen().removePreference(transcribeVoicemailPreference);
getPreferenceScreen().removePreference(donateTranscribedVoicemailPreference);
@@ -196,29 +211,38 @@ public class VoicemailSettingsFragment extends PreferenceFragment
updateVoicemailSummaryMessage();
}
- private void initializePreferences() {
+ /** The preferences that are present in the voicemail_settings.xml file are initialized here. */
+ private void initializeXmlPreferences() {
voicemailNotificationPreference =
findPreference(getString(R.string.voicemail_notifications_key));
+ voicemailNotificationPreference.setOrder(VMSettingOrdering.NOTIFICATIONS);
advancedSettingsPreference =
(PreferenceScreen) findPreference(getString(R.string.voicemail_advanced_settings_key));
+ advancedSettingsPreference.setOrder(VMSettingOrdering.ADVANCED_SETTING);
visualVoicemailPreference =
(SwitchPreference) findPreference(getString(R.string.voicemail_visual_voicemail_key));
+ visualVoicemailPreference.setOrder(VMSettingOrdering.VISUAL_VOICEMAIL);
voicemailAutoArchivePreference =
(SwitchPreference)
findPreference(getString(R.string.voicemail_visual_voicemail_archive_key));
+ voicemailAutoArchivePreference.setOrder(VMSettingOrdering.VOICEMAIL_AUTO_ARCHIVE);
transcribeVoicemailPreference =
(SwitchPreference)
findPreference(getString(R.string.voicemail_visual_voicemail_transcription_key));
+ transcribeVoicemailPreference.setOrder(VMSettingOrdering.VOICEMAIL_TRANSCRIPTION);
donateTranscribedVoicemailPreference =
- (SwitchPreference)
+ (SwitchPreferenceWithClickableSummary)
findPreference(getString(R.string.voicemail_visual_voicemail_donation_key));
+ donateTranscribedVoicemailPreference.setOrder(
+ VMSettingOrdering.VOICEMAIL_TRANSCRIPTION_DONATION);
voicemailChangePinPreference = findPreference(getString(R.string.voicemail_change_pin_key));
+ voicemailChangePinPreference.setOrder(VMSettingOrdering.VOICEMAIL_CHANGE_PIN);
}
/** Removes vvm settings since the carrier setup is not supported by Dialer */
@@ -462,4 +486,25 @@ public class VoicemailSettingsFragment extends PreferenceFragment
builder.setCancelable(true);
builder.show();
}
+
+ /** The ordering in which to show the voicemail settings */
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef({
+ VMSettingOrdering.NOTIFICATIONS,
+ VMSettingOrdering.VISUAL_VOICEMAIL,
+ VMSettingOrdering.VOICEMAIL_TRANSCRIPTION,
+ VMSettingOrdering.VOICEMAIL_TRANSCRIPTION_DONATION,
+ VMSettingOrdering.VOICEMAIL_CHANGE_PIN,
+ VMSettingOrdering.VOICEMAIL_AUTO_ARCHIVE,
+ VMSettingOrdering.ADVANCED_SETTING
+ })
+ private @interface VMSettingOrdering {
+ int NOTIFICATIONS = 1;
+ int VISUAL_VOICEMAIL = 2;
+ int VOICEMAIL_TRANSCRIPTION = 3;
+ int VOICEMAIL_TRANSCRIPTION_DONATION = 4;
+ int VOICEMAIL_CHANGE_PIN = 5;
+ int VOICEMAIL_AUTO_ARCHIVE = 6;
+ int ADVANCED_SETTING = 7;
+ }
}