Merge "Import translations. DO NOT MERGE" into oc-dev
diff --git a/res/values/strings.xml b/res/values/strings.xml
index f8cb957..b0aae34 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -172,6 +172,12 @@
<string name="voicemail_settings_with_label">Voicemail (<xliff:g id="subscriptionlabel" example="Mock Carrier">%s</xliff:g>)</string>
<!-- Call forwarding dialog box, voicemail number prefix -->
<string name="voicemail_abbreviated">VM:</string>
+ <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
+ <string name="voicemail_notifications_key" translatable="false">voicemail_notification_key</string>
+
+ <!-- Voicemail notifications title. The user clicks on this preference navigate to the system settings screen for that channel
+ .[CHAR LIMIT=30] -->
+ <string name="voicemail_notifications_preference_title">Notifications</string>
<!-- Mobile network settings screen, setting option name -->
<string name="networks">Network operators</string>
<!-- Cell Broadcast settings title. [CHAR LIMIT=50] -->
@@ -1261,11 +1267,6 @@
-->
<string name="description_dial_button">dial</string>
- <!-- Title for the vibration settings for voicemail notifications [CHAR LIMIT=40] -->
- <string name="voicemail_notification_vibrate_when_title" msgid="8731372580674292759">Vibrate</string>
- <!-- Dialog title for the vibration settings for voice mail notifications [CHAR LIMIT=40]-->
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="8995274609647451109">Vibrate</string>
-
<!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
<string name="voicemail_visual_voicemail_switch_title">Visual Voicemail</string>
@@ -1274,21 +1275,6 @@
<!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
<string name="voicemail_change_pin_dialog_title">Change PIN</string>
- <!-- Voicemail ringtone title. The user clicks on this preference to select
- which sound to play when a voicemail notification is received.
- [CHAR LIMIT=30] -->
- <string name="voicemail_notification_ringtone_title">Sound</string>
-
- <!-- The default value value for voicemail notification. -->
- <string name="voicemail_notification_vibrate_when_default" translatable="false">never</string>
-
- <!-- Actual values used in our code for voicemail notifications. DO NOT TRANSLATE -->
- <string-array name="voicemail_notification_vibrate_when_values" translatable="false">
- <item>always</item>
- <item>silent</item>
- <item>never</item>
- </string-array>
-
<!-- Title for the category "ringtone", which is shown above ringtone and vibration
related settings.
[CHAR LIMIT=30] -->
@@ -1335,10 +1321,6 @@
<!-- Status hint label for a call being made over a wifi network. [CHAR LIMIT=25] -->
<string name="status_hint_label_wifi_call">Wi-Fi call</string>
- <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
- <string name="voicemail_notification_ringtone_key">voicemail_notification_ringtone_key</string>
- <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
- <string name="voicemail_notification_vibrate_key">voicemail_notification_vibrate_key</string>
<!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
<string name="voicemail_visual_voicemail_key">voicemail_visual_voicemail_key</string>
<!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
diff --git a/res/xml/voicemail_settings.xml b/res/xml/voicemail_settings.xml
index 1fc1fe1..021a764 100644
--- a/res/xml/voicemail_settings.xml
+++ b/res/xml/voicemail_settings.xml
@@ -50,14 +50,7 @@
</PreferenceScreen>
- <com.android.phone.settings.VoicemailRingtonePreference
- android:key="@string/voicemail_notification_ringtone_key"
- android:title="@string/voicemail_notification_ringtone_title"
- android:persistent="false"
- android:ringtoneType="notification" />
-
- <SwitchPreference
- android:key="@string/voicemail_notification_vibrate_key"
- android:title="@string/voicemail_notification_vibrate_when_title"
- android:persistent="true" />
+ <Preference
+ android:key="@string/voicemail_notifications_key"
+ android:title="@string/voicemail_notifications_preference_title"/>
</PreferenceScreen>
diff --git a/src/com/android/phone/NotificationMgr.java b/src/com/android/phone/NotificationMgr.java
index 07b1b10..69c0871 100644
--- a/src/com/android/phone/NotificationMgr.java
+++ b/src/com/android/phone/NotificationMgr.java
@@ -55,7 +55,6 @@
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.TelephonyCapabilities;
import com.android.internal.telephony.util.NotificationChannelController;
-import com.android.phone.settings.VoicemailNotificationSettingsUtil;
import com.android.phone.settings.VoicemailSettingsActivity;
import java.util.Iterator;
@@ -333,11 +332,6 @@
PendingIntent pendingIntent =
PendingIntent.getActivity(mContext, subId /* requestCode */, intent, 0);
- Uri ringtoneUri = null;
-
- if (enableNotificationSound) {
- ringtoneUri = VoicemailNotificationSettingsUtil.getRingtoneUri(phone);
- }
Resources res = mContext.getResources();
PersistableBundle carrierConfig = PhoneGlobals.getInstance().getCarrierConfigForSubId(
@@ -349,16 +343,11 @@
.setContentTitle(notificationTitle)
.setContentText(notificationText)
.setContentIntent(pendingIntent)
- .setSound(ringtoneUri)
.setColor(res.getColor(R.color.dialer_theme_color))
.setOngoing(carrierConfig.getBoolean(
CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL))
.setChannel(NotificationChannelController.CHANNEL_ID_VOICE_MAIL);
- if (VoicemailNotificationSettingsUtil.isVibrationEnabled(phone)) {
- builder.setDefaults(Notification.DEFAULT_VIBRATE);
- }
-
final Notification notification = builder.build();
List<UserInfo> users = mUserManager.getUsers(true);
for (int i = 0; i < users.size(); i++) {
diff --git a/src/com/android/phone/settings/VoicemailNotificationSettingsUtil.java b/src/com/android/phone/settings/VoicemailNotificationSettingsUtil.java
index 9654ea7..fb7baf5 100644
--- a/src/com/android/phone/settings/VoicemailNotificationSettingsUtil.java
+++ b/src/com/android/phone/settings/VoicemailNotificationSettingsUtil.java
@@ -16,15 +16,14 @@
package com.android.phone.settings;
-import android.content.Context;
+import android.app.NotificationChannel;
import android.content.SharedPreferences;
import android.net.Uri;
import android.preference.PreferenceManager;
-import android.provider.Settings;
import android.telephony.TelephonyManager;
-import android.text.TextUtils;
import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.util.NotificationChannelController;
import com.android.phone.R;
public class VoicemailNotificationSettingsUtil {
@@ -53,9 +52,9 @@
}
public static boolean isVibrationEnabled(Phone phone) {
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(phone.getContext());
- migrateVoicemailVibrationSettingsIfNeeded(phone, prefs);
- return prefs.getBoolean(getVoicemailVibrationSharedPrefsKey(phone), false /* defValue */);
+ final NotificationChannel channel = NotificationChannelController.getChannel(
+ NotificationChannelController.CHANNEL_ID_VOICE_MAIL, phone.getContext());
+ return (channel != null) ? channel.shouldVibrate() : false;
}
public static void setRingtoneUri(Phone phone, Uri ringtoneUri) {
@@ -68,12 +67,9 @@
}
public static Uri getRingtoneUri(Phone phone) {
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(phone.getContext());
- migrateVoicemailRingtoneSettingsIfNeeded(phone, prefs);
- String uriString = prefs.getString(
- getVoicemailRingtoneSharedPrefsKey(phone),
- Settings.System.DEFAULT_NOTIFICATION_URI.toString());
- return !TextUtils.isEmpty(uriString) ? Uri.parse(uriString) : null;
+ final NotificationChannel channel = NotificationChannelController.getChannel(
+ NotificationChannelController.CHANNEL_ID_VOICE_MAIL, phone.getContext());
+ return (channel != null) ? channel.getSound() : null;
}
/**
diff --git a/src/com/android/phone/settings/VoicemailRingtonePreference.java b/src/com/android/phone/settings/VoicemailRingtonePreference.java
deleted file mode 100644
index bb82d4f..0000000
--- a/src/com/android/phone/settings/VoicemailRingtonePreference.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package com.android.phone.settings;
-
-import android.content.Context;
-import android.media.RingtoneManager;
-import android.net.Uri;
-import android.os.Handler;
-import android.os.Message;
-import android.preference.Preference;
-import android.preference.RingtonePreference;
-import android.util.AttributeSet;
-
-import com.android.internal.telephony.Phone;
-import com.android.phone.common.util.SettingsUtil;
-
-/**
- * Looks up the voicemail ringtone's name asynchronously and updates the preference's summary when
- * it is created or updated.
- */
-public class VoicemailRingtonePreference extends RingtonePreference {
- public interface VoicemailRingtoneNameChangeListener {
- void onVoicemailRingtoneNameChanged(CharSequence name);
- }
-
- private static final int MSG_UPDATE_VOICEMAIL_RINGTONE_SUMMARY = 1;
-
- private VoicemailRingtoneNameChangeListener mVoicemailRingtoneNameChangeListener;
- private Runnable mVoicemailRingtoneLookupRunnable;
- private Handler mVoicemailRingtoneLookupComplete;
-
- private Phone mPhone;
-
- public VoicemailRingtonePreference(Context context, AttributeSet attrs) {
- super(context, attrs);
-
- mVoicemailRingtoneLookupComplete = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case MSG_UPDATE_VOICEMAIL_RINGTONE_SUMMARY:
- if (mVoicemailRingtoneNameChangeListener != null) {
- mVoicemailRingtoneNameChangeListener.onVoicemailRingtoneNameChanged(
- (CharSequence) msg.obj);
- }
- setSummary((CharSequence) msg.obj);
- break;
- }
- }
- };
- }
-
- public void init(Phone phone, CharSequence oldRingtoneName) {
- mPhone = phone;
-
- // Requesting the ringtone will trigger migration if necessary.
- VoicemailNotificationSettingsUtil.getRingtoneUri(phone);
-
- final Preference preference = this;
- final String preferenceKey =
- VoicemailNotificationSettingsUtil.getVoicemailRingtoneSharedPrefsKey(mPhone);
- setSummary(oldRingtoneName);
- mVoicemailRingtoneLookupRunnable = new Runnable() {
- @Override
- public void run() {
- SettingsUtil.updateRingtoneName(
- preference.getContext(),
- mVoicemailRingtoneLookupComplete,
- RingtoneManager.TYPE_NOTIFICATION,
- preferenceKey,
- MSG_UPDATE_VOICEMAIL_RINGTONE_SUMMARY);
- }
- };
-
- updateRingtoneName();
- }
-
- public void setVoicemailRingtoneNameChangeListener(VoicemailRingtoneNameChangeListener l) {
- mVoicemailRingtoneNameChangeListener = l;
- }
-
- @Override
- protected Uri onRestoreRingtone() {
- return VoicemailNotificationSettingsUtil.getRingtoneUri(mPhone);
- }
-
- @Override
- protected void onSaveRingtone(Uri ringtoneUri) {
- // Don't call superclass method because it uses the pref key as the SharedPreferences key.
- // Delegate to the voicemail notification utility to save the ringtone instead.
- VoicemailNotificationSettingsUtil.setRingtoneUri(mPhone, ringtoneUri);
-
- updateRingtoneName();
- }
-
- private void updateRingtoneName() {
- new Thread(mVoicemailRingtoneLookupRunnable).start();
- }
-}
diff --git a/src/com/android/phone/settings/VoicemailSettingsActivity.java b/src/com/android/phone/settings/VoicemailSettingsActivity.java
index d0e0656..04e8bf5 100644
--- a/src/com/android/phone/settings/VoicemailSettingsActivity.java
+++ b/src/com/android/phone/settings/VoicemailSettingsActivity.java
@@ -30,6 +30,7 @@
import android.preference.PreferenceScreen;
import android.preference.SwitchPreference;
import android.provider.ContactsContract.CommonDataKinds;
+import android.provider.Settings;
import android.telephony.TelephonyManager;
import android.text.BidiFormatter;
import android.text.TextDirectionHeuristics;
@@ -42,6 +43,7 @@
import com.android.internal.telephony.CallForwardInfo;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.util.NotificationChannelController;
import com.android.phone.EditPhoneNumberPreference;
import com.android.phone.PhoneGlobals;
import com.android.phone.R;
@@ -57,8 +59,7 @@
implements DialogInterface.OnClickListener,
Preference.OnPreferenceChangeListener,
EditPhoneNumberPreference.OnDialogClosedListener,
- EditPhoneNumberPreference.GetDefaultNumberListener,
- VoicemailRingtonePreference.VoicemailRingtoneNameChangeListener {
+ EditPhoneNumberPreference.GetDefaultNumberListener{
private static final String LOG_TAG = VoicemailSettingsActivity.class.getSimpleName();
private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
@@ -185,8 +186,6 @@
private CallForwardInfo[] mNewFwdSettings;
private String mNewVMNumber;
- private CharSequence mOldVmRingtoneName = "";
-
/**
* Used to indicate that the voicemail preference should be shown.
*/
@@ -199,8 +198,7 @@
private EditPhoneNumberPreference mSubMenuVoicemailSettings = null;
private VoicemailProviderListPreference mVoicemailProviders;
private PreferenceScreen mVoicemailSettings;
- private VoicemailRingtonePreference mVoicemailNotificationRingtone;
- private SwitchPreference mVoicemailNotificationVibrate;
+ private Preference mVoicemailNotificationPreference;
//*********************************************************************************************
// Preference Activity Methods
@@ -227,6 +225,14 @@
getActionBar(), getResources(), R.string.voicemail_settings_with_label);
mPhone = mSubscriptionInfoHelper.getPhone();
addPreferencesFromResource(R.xml.voicemail_settings);
+
+ mVoicemailNotificationPreference =
+ findPreference(getString(R.string.voicemail_notifications_key));
+ final Intent intent = new Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS);
+ intent.putExtra(Settings.EXTRA_CHANNEL_ID,
+ NotificationChannelController.CHANNEL_ID_VOICE_MAIL);
+ intent.putExtra(Settings.EXTRA_APP_PACKAGE, mPhone.getContext().getPackageName());
+ mVoicemailNotificationPreference.setIntent(intent);
}
@Override
@@ -254,15 +260,6 @@
mVoicemailSettings = (PreferenceScreen) findPreference(BUTTON_VOICEMAIL_SETTING_KEY);
- mVoicemailNotificationRingtone = (VoicemailRingtonePreference) findPreference(
- getResources().getString(R.string.voicemail_notification_ringtone_key));
- mVoicemailNotificationRingtone.setVoicemailRingtoneNameChangeListener(this);
- mVoicemailNotificationRingtone.init(mPhone, mOldVmRingtoneName);
-
- mVoicemailNotificationVibrate = (SwitchPreference) findPreference(
- getResources().getString(R.string.voicemail_notification_vibrate_key));
- mVoicemailNotificationVibrate.setOnPreferenceChangeListener(this);
-
maybeHidePublicSettings();
updateVMPreferenceWidgets(mVoicemailProviders.getValue());
@@ -286,9 +283,6 @@
updateVoiceNumberField();
mVMProviderSettingsForced = false;
-
- mVoicemailNotificationVibrate.setChecked(
- VoicemailNotificationSettingsUtil.isVibrationEnabled(mPhone));
}
/**
@@ -304,8 +298,7 @@
log("maybeHidePublicSettings: settings hidden by EXTRA_HIDE_PUBLIC_SETTINGS");
}
PreferenceScreen preferenceScreen = getPreferenceScreen();
- preferenceScreen.removePreference(mVoicemailNotificationRingtone);
- preferenceScreen.removePreference(mVoicemailNotificationVibrate);
+ preferenceScreen.removePreference(mVoicemailNotificationPreference);
}
@Override
@@ -401,12 +394,6 @@
mChangingVMorFwdDueToProviderChange = true;
saveVoiceMailAndForwardingNumber(newProviderKey, newProviderSettings);
}
- } else if (preference.getKey().equals(mVoicemailNotificationVibrate.getKey())) {
- // Check key instead of comparing reference because closing the voicemail notification
- // ringtone dialog invokes onResume(), but leaves the old preference screen up,
- // TODO: Revert to checking reference after migrating voicemail to its own activity.
- VoicemailNotificationSettingsUtil.setVibrationEnabled(
- mPhone, Boolean.TRUE.equals(objValue));
}
// Always let the preference setting proceed.
return true;
@@ -539,11 +526,6 @@
super.onActivityResult(requestCode, resultCode, data);
}
- @Override
- public void onVoicemailRingtoneNameChanged(CharSequence name) {
- mOldVmRingtoneName = name;
- }
-
/**
* Simulates user clicking on a passed preference.
* Usually needed when the preference is a dialog preference and we want to invoke
@@ -1012,7 +994,6 @@
mVoicemailProviders.setSummary(getString(R.string.sum_voicemail_choose_provider));
mVoicemailSettings.setEnabled(false);
mVoicemailSettings.setIntent(null);
- mVoicemailNotificationVibrate.setEnabled(false);
} else {
if (DBG) log("updateVMPreferenceWidget: key: " + key + " -> " + provider.toString());
@@ -1020,7 +1001,6 @@
mVoicemailProviders.setSummary(providerName);
mVoicemailSettings.setEnabled(true);
mVoicemailSettings.setIntent(provider.intent);
- mVoicemailNotificationVibrate.setEnabled(true);
}
}