summaryrefslogtreecommitdiffstats
path: root/java/com/android/dialer/app
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/app')
-rw-r--r--java/com/android/dialer/app/DialtactsActivity.java3
-rw-r--r--java/com/android/dialer/app/calllog/CallLogAdapter.java7
-rw-r--r--java/com/android/dialer/app/calllog/CallLogFragment.java17
-rw-r--r--java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java42
-rw-r--r--java/com/android/dialer/app/calllog/CallLogNotificationsActivity.java2
-rw-r--r--java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java5
-rw-r--r--java/com/android/dialer/app/calllog/CallLogNotificationsService.java89
-rw-r--r--java/com/android/dialer/app/calllog/CallLogReceiver.java6
-rw-r--r--java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java61
-rw-r--r--java/com/android/dialer/app/calllog/MissedCallNotificationReceiver.java38
-rw-r--r--java/com/android/dialer/app/calllog/MissedCallNotifier.java23
-rw-r--r--java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java41
-rw-r--r--java/com/android/dialer/app/calllog/VoicemailQueryHandler.java15
-rw-r--r--java/com/android/dialer/app/dialpad/DialpadFragment.java2
-rw-r--r--java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java2
-rw-r--r--java/com/android/dialer/app/list/ListsFragment.java14
-rw-r--r--java/com/android/dialer/app/list/OldSpeedDialFragment.java4
-rw-r--r--java/com/android/dialer/app/list/SearchFragment.java2
-rw-r--r--java/com/android/dialer/app/res/values-af/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-am/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-ar/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-az/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-be/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-bg/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-bn/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-bs/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-ca/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-cs/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-da/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-de/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-el/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-en-rAU/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-en-rGB/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-en-rIN/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-es-rUS/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-es/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-et/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-eu/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-fa/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-fi/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-fr-rCA/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-fr/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-gl/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-gu/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-hi/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-hr/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-hu/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-hy/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-in/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-is/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-it/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-iw/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-ja/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-ka/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-kk/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-km/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-kn/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-ko/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-ky/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-lo/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-lt/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-lv/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-mk/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-ml/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-mn/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-mr/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-ms/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-my/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-nb/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-ne/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-nl/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-no/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-pa/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-pl/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-pt-rBR/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-pt-rPT/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-pt/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-ro/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-ru/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-si/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-sk/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-sl/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-sq/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-sr/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-sv/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-sw/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-ta/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-te/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-th/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-tl/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-tr/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-uk/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-ur/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-uz/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-vi/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-zh-rCN/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-zh-rHK/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-zh-rTW/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values-zu/strings.xml2
-rw-r--r--java/com/android/dialer/app/res/values/strings.xml3
-rw-r--r--java/com/android/dialer/app/settings/DialerSettingsActivity.java6
-rw-r--r--java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java67
-rw-r--r--java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java5
104 files changed, 413 insertions, 205 deletions
diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java
index 3318c506d..6e2c6be7d 100644
--- a/java/com/android/dialer/app/DialtactsActivity.java
+++ b/java/com/android/dialer/app/DialtactsActivity.java
@@ -162,7 +162,6 @@ public class DialtactsActivity extends TransactionSafeActivity
private static final int ACTIVITY_REQUEST_CODE_VOICE_SEARCH = 1;
public static final int ACTIVITY_REQUEST_CODE_CALL_COMPOSE = 2;
- public static final int ACTIVITY_REQUEST_CODE_LIGHTBRINGER = 3;
private static final int FAB_SCALE_IN_DELAY_MS = 300;
@@ -1489,7 +1488,7 @@ public class DialtactsActivity extends TransactionSafeActivity
Menu menu = getMenu();
MenuItem clearFrequents = menu.findItem(R.id.menu_clear_frequents);
clearFrequents.setVisible(
- PermissionsUtil.hasContactsPermissions(DialtactsActivity.this)
+ PermissionsUtil.hasContactsReadPermissions(DialtactsActivity.this)
&& mListsFragment != null
&& mListsFragment.hasFrequents());
diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java
index b433e6529..2f8a58c8a 100644
--- a/java/com/android/dialer/app/calllog/CallLogAdapter.java
+++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java
@@ -108,6 +108,9 @@ public class CallLogAdapter extends GroupingListAdapter
public static final String LOAD_DATA_TASK_IDENTIFIER = "load_data";
+ public static final String ENABLE_CALL_LOG_MULTI_SELECT = "enable_call_log_multiselect";
+ public static final boolean ENABLE_CALL_LOG_MULTI_SELECT_FLAG = false;
+
protected final Activity mActivity;
protected final VoicemailPlaybackPresenter mVoicemailPlaybackPresenter;
/** Cache for repeated requests to Telecom/Telephony. */
@@ -228,7 +231,7 @@ public class CallLogAdapter extends GroupingListAdapter
@Override
public boolean onLongClick(View v) {
if (ConfigProviderBindings.get(v.getContext())
- .getBoolean("enable_call_log_multiselect", true)
+ .getBoolean(ENABLE_CALL_LOG_MULTI_SELECT, ENABLE_CALL_LOG_MULTI_SELECT_FLAG)
&& mVoicemailPlaybackPresenter != null) {
if (v.getId() == R.id.primary_action_view || v.getId() == R.id.quick_contact_photo) {
if (mActionMode == null) {
@@ -373,7 +376,7 @@ public class CallLogAdapter extends GroupingListAdapter
mContactInfoCache = contactInfoCache;
- if (!PermissionsUtil.hasContactsPermissions(activity)) {
+ if (!PermissionsUtil.hasContactsReadPermissions(activity)) {
mContactInfoCache.disableRequestProcessing();
}
diff --git a/java/com/android/dialer/app/calllog/CallLogFragment.java b/java/com/android/dialer/app/calllog/CallLogFragment.java
index 874aeeac8..6e4b23fc1 100644
--- a/java/com/android/dialer/app/calllog/CallLogFragment.java
+++ b/java/com/android/dialer/app/calllog/CallLogFragment.java
@@ -200,9 +200,18 @@ public class CallLogFragment extends Fragment
final ContentResolver resolver = activity.getContentResolver();
mCallLogQueryHandler = new CallLogQueryHandler(activity, resolver, this, mLogLimit);
mKeyguardManager = (KeyguardManager) activity.getSystemService(Context.KEYGUARD_SERVICE);
- resolver.registerContentObserver(CallLog.CONTENT_URI, true, mCallLogObserver);
- resolver.registerContentObserver(
- ContactsContract.Contacts.CONTENT_URI, true, mContactsObserver);
+
+ if (PermissionsUtil.hasCallLogReadPermissions(getContext())) {
+ resolver.registerContentObserver(CallLog.CONTENT_URI, true, mCallLogObserver);
+ } else {
+ LogUtil.w("CallLogFragment.onCreate", "call log permission not available");
+ }
+ if (PermissionsUtil.hasContactsReadPermissions(getContext())) {
+ resolver.registerContentObserver(
+ ContactsContract.Contacts.CONTENT_URI, true, mContactsObserver);
+ } else {
+ LogUtil.w("CallLogFragment.onCreate", "contacts permission not available.");
+ }
setHasOptionsMenu(true);
}
@@ -494,7 +503,7 @@ public class CallLogFragment extends Fragment
if (mKeyguardManager != null
&& !mKeyguardManager.inKeyguardRestrictedInputMode()
&& mCallTypeFilter == Calls.VOICEMAIL_TYPE) {
- CallLogNotificationsQueryHelper.updateVoicemailNotifications(getActivity());
+ CallLogNotificationsService.markNewVoicemailsAsOld(getActivity(), null);
}
}
diff --git a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
index 278caba92..1daccd1a4 100644
--- a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
+++ b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
@@ -17,7 +17,6 @@
package com.android.dialer.app.calllog;
import android.app.Activity;
-import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
@@ -45,7 +44,6 @@ import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.QuickContactBadge;
import android.widget.TextView;
-import android.widget.Toast;
import com.android.contacts.common.ClipboardUtils;
import com.android.contacts.common.ContactPhotoManager;
import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
@@ -62,6 +60,7 @@ import com.android.dialer.blocking.FilteredNumbersUtil;
import com.android.dialer.callcomposer.CallComposerActivity;
import com.android.dialer.callcomposer.CallComposerContact;
import com.android.dialer.calldetails.CallDetailsEntries;
+import com.android.dialer.common.ConfigProviderBindings;
import com.android.dialer.common.LogUtil;
import com.android.dialer.compat.CompatUtils;
import com.android.dialer.lightbringer.Lightbringer;
@@ -258,7 +257,11 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
}
primaryActionButtonView.setOnClickListener(this);
primaryActionView.setOnClickListener(mExpandCollapseListener);
- if (mVoicemailPlaybackPresenter != null) {
+ if (mVoicemailPlaybackPresenter != null
+ && ConfigProviderBindings.get(mContext)
+ .getBoolean(
+ CallLogAdapter.ENABLE_CALL_LOG_MULTI_SELECT,
+ CallLogAdapter.ENABLE_CALL_LOG_MULTI_SELECT_FLAG)) {
primaryActionView.setOnLongClickListener(longPressListener);
quickContactView.setOnLongClickListener(longPressListener);
} else {
@@ -792,38 +795,17 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
mVoicemailPlaybackPresenter.shareVoicemail();
} else {
logCallLogAction(view.getId());
-
final IntentProvider intentProvider = (IntentProvider) view.getTag();
- if (intentProvider == null) {
- return;
- }
-
- final Intent intent = intentProvider.getIntent(mContext);
- // See IntentProvider.getCallDetailIntentProvider() for why this may be null.
- if (intent == null) {
- return;
- }
-
- // We check to see if we are starting a Lightbringer intent. The reason is Lightbringer
- // intents need to be started using startActivityForResult instead of the usual startActivity
- String packageName = intent.getPackage();
- if (packageName != null && packageName.equals(getLightbringer().getPackageName(mContext))) {
- startLightbringerActivity(intent);
- } else {
- DialerUtils.startActivityWithErrorToast(mContext, intent);
+ if (intentProvider != null) {
+ final Intent intent = intentProvider.getIntent(mContext);
+ // See IntentProvider.getCallDetailIntentProvider() for why this may be null.
+ if (intent != null) {
+ DialerUtils.startActivityWithErrorToast(mContext, intent);
+ }
}
}
}
- private void startLightbringerActivity(Intent intent) {
- try {
- Activity activity = (Activity) mContext;
- activity.startActivityForResult(intent, DialtactsActivity.ACTIVITY_REQUEST_CODE_LIGHTBRINGER);
- } catch (ActivityNotFoundException e) {
- Toast.makeText(mContext, R.string.activity_not_available, Toast.LENGTH_SHORT).show();
- }
- }
-
private CallComposerContact buildContact() {
CallComposerContact.Builder contact = CallComposerContact.newBuilder();
contact.setPhotoId(info.photoId);
diff --git a/java/com/android/dialer/app/calllog/CallLogNotificationsActivity.java b/java/com/android/dialer/app/calllog/CallLogNotificationsActivity.java
index c08d2c02b..0b4da7521 100644
--- a/java/com/android/dialer/app/calllog/CallLogNotificationsActivity.java
+++ b/java/com/android/dialer/app/calllog/CallLogNotificationsActivity.java
@@ -57,7 +57,7 @@ public class CallLogNotificationsActivity extends AppCompatActivity {
String action = intent.getAction();
switch (action) {
case ACTION_SEND_SMS_FROM_MISSED_CALL_NOTIFICATION:
- MissedCallNotifier.getInstance(this)
+ MissedCallNotifier.getIstance(this)
.sendSmsFromMissedCall(
intent.getStringExtra(EXTRA_MISSED_CALL_NUMBER), intent.getData());
break;
diff --git a/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java b/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java
index 4127d1f0b..e169b8de9 100644
--- a/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java
+++ b/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java
@@ -114,11 +114,6 @@ public class CallLogNotificationsQueryHelper {
MissedCallNotifier.NOTIFICATION_TAG);
}
- /** Update the voice mail notifications. */
- public static void updateVoicemailNotifications(Context context) {
- CallLogNotificationsService.updateVoicemailNotifications(context);
- }
-
/** Create a new instance of {@link NewCallsQuery}. */
public static NewCallsQuery createNewCallsQuery(
Context context, ContentResolver contentResolver) {
diff --git a/java/com/android/dialer/app/calllog/CallLogNotificationsService.java b/java/com/android/dialer/app/calllog/CallLogNotificationsService.java
index f67837f8a..7dfd2cb69 100644
--- a/java/com/android/dialer/app/calllog/CallLogNotificationsService.java
+++ b/java/com/android/dialer/app/calllog/CallLogNotificationsService.java
@@ -26,7 +26,6 @@ import android.support.annotation.Nullable;
import com.android.dialer.common.LogUtil;
import com.android.dialer.telecom.TelecomUtil;
import com.android.dialer.util.PermissionsUtil;
-import me.leolin.shortcutbadger.ShortcutBadger;
/**
* Provides operations for managing call-related notifications.
@@ -47,17 +46,6 @@ public class CallLogNotificationsService extends IntentService {
/** Action to mark all the new voicemails as old. */
public static final String ACTION_MARK_NEW_VOICEMAILS_AS_OLD =
"com.android.dialer.calllog.ACTION_MARK_NEW_VOICEMAILS_AS_OLD";
- /** Action to update voicemail notifications. */
- public static final String ACTION_UPDATE_VOICEMAIL_NOTIFICATIONS =
- "com.android.dialer.calllog.UPDATE_VOICEMAIL_NOTIFICATIONS";
- /**
- * Action to update the missed call notifications.
- *
- * <p>Includes optional extras {@link #EXTRA_MISSED_CALL_NUMBER} and {@link
- * #EXTRA_MISSED_CALL_COUNT}.
- */
- public static final String ACTION_UPDATE_MISSED_CALL_NOTIFICATIONS =
- "com.android.dialer.calllog.UPDATE_MISSED_CALL_NOTIFICATIONS";
/** Action to mark all the new missed calls as old. */
public static final String ACTION_MARK_NEW_MISSED_CALLS_AS_OLD =
@@ -72,22 +60,6 @@ public class CallLogNotificationsService extends IntentService {
"com.android.dialer.calllog.CALL_BACK_FROM_MISSED_CALL_NOTIFICATION";
/**
- * Extra to be included with {@link #ACTION_UPDATE_MISSED_CALL_NOTIFICATIONS} and {@link
- * #ACTION_CALL_BACK_FROM_MISSED_CALL_NOTIFICATION} to identify the number to display, call or
- * text back.
- *
- * <p>It must be a {@link String}.
- */
- public static final String EXTRA_MISSED_CALL_NUMBER = "MISSED_CALL_NUMBER";
- /**
- * Extra to be included with {@link #ACTION_UPDATE_MISSED_CALL_NOTIFICATIONS} to represent the
- * number of missed calls.
- *
- * <p>It must be a {@link Integer}
- */
- public static final String EXTRA_MISSED_CALL_COUNT = "MISSED_CALL_COUNT";
-
- /**
* Extra to be included with {@link #ACTION_INCOMING_POST_CALL} to represent a post call note.
*
* <p>It must be a {@link String}
@@ -109,40 +81,6 @@ public class CallLogNotificationsService extends IntentService {
super("CallLogNotificationsService");
}
- /**
- * Updates notifications for any new voicemails.
- *
- * @param context a valid context.
- */
- public static void updateVoicemailNotifications(Context context) {
- if (!TelecomUtil.isDefaultDialer(context)) {
- LogUtil.i(
- "CallLogNotificationsService.updateVoicemailNotifications",
- "not default dialer, ignoring voicemail notifications");
- return;
- }
- if (TelecomUtil.hasReadWriteVoicemailPermissions(context)) {
- Intent serviceIntent = new Intent(context, CallLogNotificationsService.class);
- serviceIntent.setAction(CallLogNotificationsService.ACTION_UPDATE_VOICEMAIL_NOTIFICATIONS);
- context.startService(serviceIntent);
- }
- }
-
- /**
- * Updates notifications for any new missed calls.
- *
- * @param context A valid context.
- * @param count The number of new missed calls.
- * @param number The phone number of the newest missed call.
- */
- public static void updateMissedCallNotifications(Context context, int count, String number) {
- Intent serviceIntent = new Intent(context, CallLogNotificationsService.class);
- serviceIntent.setAction(CallLogNotificationsService.ACTION_UPDATE_MISSED_CALL_NOTIFICATIONS);
- serviceIntent.putExtra(EXTRA_MISSED_CALL_COUNT, count);
- serviceIntent.putExtra(EXTRA_MISSED_CALL_NUMBER, number);
- context.startService(serviceIntent);
- }
-
public static void insertPostCallNote(Context context, String number, String postCallNote) {
Intent serviceIntent = new Intent(context, CallLogNotificationsService.class);
serviceIntent.setAction(ACTION_INCOMING_POST_CALL);
@@ -165,16 +103,6 @@ public class CallLogNotificationsService extends IntentService {
context.startService(serviceIntent);
}
- public static boolean updateBadgeCount(Context context, int count) {
- boolean success = ShortcutBadger.applyCount(context, count);
- LogUtil.i(
- "CallLogNotificationsService.updateBadgeCount",
- "update badge count: %d success: %b",
- count,
- success);
- return success;
- }
-
@Override
protected void onHandleIntent(Intent intent) {
if (intent == null) {
@@ -200,28 +128,21 @@ public class CallLogNotificationsService extends IntentService {
mVoicemailQueryHandler.markNewVoicemailsAsOld(intent.getData());
});
break;
- case ACTION_UPDATE_VOICEMAIL_NOTIFICATIONS:
- DefaultVoicemailNotifier.getInstance(this).updateNotification();
- break;
- case ACTION_UPDATE_MISSED_CALL_NOTIFICATIONS:
- int count = intent.getIntExtra(EXTRA_MISSED_CALL_COUNT, UNKNOWN_MISSED_CALL_COUNT);
- String number = intent.getStringExtra(EXTRA_MISSED_CALL_NUMBER);
- MissedCallNotifier.getInstance(this).updateMissedCallNotification(count, number);
- updateBadgeCount(this, count);
- break;
case ACTION_INCOMING_POST_CALL:
String note = intent.getStringExtra(EXTRA_POST_CALL_NOTE);
String phoneNumber = intent.getStringExtra(EXTRA_POST_CALL_NUMBER);
- MissedCallNotifier.getInstance(this).insertPostCallNotification(phoneNumber, note);
+ MissedCallNotifier.getIstance(this).insertPostCallNotification(phoneNumber, note);
break;
case ACTION_MARK_NEW_MISSED_CALLS_AS_OLD:
CallLogNotificationsQueryHelper.removeMissedCallNotifications(this, intent.getData());
TelecomUtil.cancelMissedCallsNotification(this);
break;
case ACTION_CALL_BACK_FROM_MISSED_CALL_NOTIFICATION:
- MissedCallNotifier.getInstance(this)
+ MissedCallNotifier.getIstance(this)
.callBackFromMissedCall(
- intent.getStringExtra(EXTRA_MISSED_CALL_NUMBER), intent.getData());
+ intent.getStringExtra(
+ MissedCallNotificationReceiver.EXTRA_NOTIFICATION_PHONE_NUMBER),
+ intent.getData());
break;
default:
LogUtil.d("CallLogNotificationsService.onHandleIntent", "could not handle: " + intent);
diff --git a/java/com/android/dialer/app/calllog/CallLogReceiver.java b/java/com/android/dialer/app/calllog/CallLogReceiver.java
index 8fd1502bc..172d00100 100644
--- a/java/com/android/dialer/app/calllog/CallLogReceiver.java
+++ b/java/com/android/dialer/app/calllog/CallLogReceiver.java
@@ -38,9 +38,11 @@ public class CallLogReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
if (VoicemailContract.ACTION_NEW_VOICEMAIL.equals(intent.getAction())) {
checkVoicemailStatus(context);
- CallLogNotificationsService.updateVoicemailNotifications(context);
+ PendingResult pendingResult = goAsync();
+ DefaultVoicemailNotifier.updateVoicemailNotifications(context, pendingResult::finish);
} else if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
- CallLogNotificationsService.updateVoicemailNotifications(context);
+ PendingResult pendingResult = goAsync();
+ DefaultVoicemailNotifier.updateVoicemailNotifications(context, pendingResult::finish);
} else {
LogUtil.w("CallLogReceiver.onReceive", "could not handle: " + intent);
}
diff --git a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
index d67f12266..58fe6fa2c 100644
--- a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
+++ b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
@@ -54,17 +54,20 @@ import com.android.dialer.blocking.FilteredNumbersUtil;
import com.android.dialer.calllogutils.PhoneAccountUtils;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.concurrent.DialerExecutor.Worker;
+import com.android.dialer.common.concurrent.DialerExecutors;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.notification.NotificationChannelManager;
import com.android.dialer.notification.NotificationChannelManager.Channel;
import com.android.dialer.phonenumbercache.ContactInfo;
+import com.android.dialer.telecom.TelecomUtil;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/** Shows a voicemail notification in the status bar. */
-public class DefaultVoicemailNotifier {
+public class DefaultVoicemailNotifier implements Worker<Void, Void> {
public static final String TAG = "VoicemailNotifier";
@@ -90,14 +93,20 @@ public class DefaultVoicemailNotifier {
this.filteredNumberAsyncQueryHandler = filteredNumberAsyncQueryHandler;
}
- /** Returns an instance of {@link DefaultVoicemailNotifier}. */
- public static DefaultVoicemailNotifier getInstance(Context context) {
- return new DefaultVoicemailNotifier(
+ public DefaultVoicemailNotifier(Context context) {
+ this(
context,
CallLogNotificationsQueryHelper.getInstance(context),
new FilteredNumberAsyncQueryHandler(context));
}
+ @Nullable
+ @Override
+ public Void doInBackground(@Nullable Void input) throws Throwable {
+ updateNotification();
+ return null;
+ }
+
/**
* Updates the notification and notifies of the call with the given URI.
*
@@ -106,8 +115,9 @@ public class DefaultVoicemailNotifier {
*
* <p>It is not safe to call this method from the main thread.
*/
+ @VisibleForTesting
@WorkerThread
- public void updateNotification() {
+ void updateNotification() {
Assert.isWorkerThread();
// Lookup the list of new voicemails to include in the notification.
final List<NewCall> newCalls = queryHelper.getNewVoicemails();
@@ -178,6 +188,10 @@ public class DefaultVoicemailNotifier {
.setGroupSummary(true)
.setContentIntent(newVoicemailIntent(null));
+ if (BuildCompat.isAtLeastO()) {
+ groupSummary.setGroupAlertBehavior(Notification.GROUP_ALERT_CHILDREN);
+ }
+
NotificationChannelManager.applyChannel(
groupSummary,
context,
@@ -392,4 +406,41 @@ public class DefaultVoicemailNotifier {
intent.putExtra(DialtactsActivity.EXTRA_CLEAR_NEW_VOICEMAILS, true);
return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
+
+ /**
+ * Updates the voicemail notifications displayed.
+ *
+ * @param runnable Called when the async update task completes no matter if it succeeds or fails.
+ * May be null.
+ */
+ static void updateVoicemailNotifications(Context context, Runnable runnable) {
+ if (!TelecomUtil.isDefaultDialer(context)) {
+ LogUtil.i(
+ "DefaultVoicemailNotifier.updateVoicemailNotifications",
+ "not default dialer, not scheduling update to voicemail notifications");
+ return;
+ }
+
+ DialerExecutors.createNonUiTaskBuilder(new DefaultVoicemailNotifier(context))
+ .onSuccess(
+ output -> {
+ LogUtil.i(
+ "DefaultVoicemailNotifier.updateVoicemailNotifications",
+ "update voicemail notifications successful");
+ if (runnable != null) {
+ runnable.run();
+ }
+ })
+ .onFailure(
+ throwable -> {
+ LogUtil.i(
+ "DefaultVoicemailNotifier.updateVoicemailNotifications",
+ "update voicemail notifications failed");
+ if (runnable != null) {
+ runnable.run();
+ }
+ })
+ .build()
+ .executeParallel(null);
+ }
}
diff --git a/java/com/android/dialer/app/calllog/MissedCallNotificationReceiver.java b/java/com/android/dialer/app/calllog/MissedCallNotificationReceiver.java
index 3a202034e..65bb6fa57 100644
--- a/java/com/android/dialer/app/calllog/MissedCallNotificationReceiver.java
+++ b/java/com/android/dialer/app/calllog/MissedCallNotificationReceiver.java
@@ -13,11 +13,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package com.android.dialer.app.calllog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
+import android.support.v4.util.Pair;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.concurrent.DialerExecutors;
+import me.leolin.shortcutbadger.ShortcutBadger;
/**
* Receives broadcasts that should trigger a refresh of the missed call notification. This includes
@@ -44,7 +49,36 @@ public class MissedCallNotificationReceiver extends BroadcastReceiver {
int count =
intent.getIntExtra(
EXTRA_NOTIFICATION_COUNT, CallLogNotificationsService.UNKNOWN_MISSED_CALL_COUNT);
- String number = intent.getStringExtra(EXTRA_NOTIFICATION_PHONE_NUMBER);
- CallLogNotificationsService.updateMissedCallNotifications(context, count, number);
+ String phoneNumber = intent.getStringExtra(EXTRA_NOTIFICATION_PHONE_NUMBER);
+
+ PendingResult pendingResult = goAsync();
+
+ DialerExecutors.createNonUiTaskBuilder(MissedCallNotifier.getIstance(context))
+ .onSuccess(
+ output -> {
+ LogUtil.i(
+ "MissedCallNotificationReceiver.onReceive",
+ "update missed call notifications successful");
+ updateBadgeCount(context, count);
+ pendingResult.finish();
+ })
+ .onFailure(
+ throwable -> {
+ LogUtil.i(
+ "MissedCallNotificationReceiver.onReceive",
+ "update missed call notifications failed");
+ pendingResult.finish();
+ })
+ .build()
+ .executeParallel(new Pair<>(count, phoneNumber));
+ }
+
+ private static void updateBadgeCount(Context context, int count) {
+ boolean success = ShortcutBadger.applyCount(context, count);
+ LogUtil.i(
+ "MissedCallNotificationReceiver.updateBadgeCount",
+ "update badge count: %d success: %b",
+ count,
+ success);
}
}
diff --git a/java/com/android/dialer/app/calllog/MissedCallNotifier.java b/java/com/android/dialer/app/calllog/MissedCallNotifier.java
index de07bb437..dd13298bc 100644
--- a/java/com/android/dialer/app/calllog/MissedCallNotifier.java
+++ b/java/com/android/dialer/app/calllog/MissedCallNotifier.java
@@ -31,6 +31,7 @@ import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;
import android.support.annotation.WorkerThread;
import android.support.v4.os.UserManagerCompat;
+import android.support.v4.util.Pair;
import android.text.BidiFormatter;
import android.text.TextDirectionHeuristics;
import android.text.TextUtils;
@@ -44,6 +45,7 @@ import com.android.dialer.app.list.DialtactsPagerAdapter;
import com.android.dialer.callintent.CallInitiationType;
import com.android.dialer.callintent.CallIntentBuilder;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.concurrent.DialerExecutor.Worker;
import com.android.dialer.notification.NotificationChannelManager;
import com.android.dialer.notification.NotificationChannelManager.Channel;
import com.android.dialer.phonenumbercache.ContactInfo;
@@ -55,7 +57,7 @@ import java.util.List;
import java.util.Set;
/** Creates a notification for calls that the user missed (neither answered nor rejected). */
-public class MissedCallNotifier {
+public class MissedCallNotifier implements Worker<Pair<Integer, String>, Void> {
/** The tag used to identify notifications from this class. */
static final String NOTIFICATION_TAG = "MissedCallNotifier";
@@ -72,11 +74,15 @@ public class MissedCallNotifier {
this.callLogNotificationsQueryHelper = callLogNotificationsQueryHelper;
}
- /** Returns an instance of {@link MissedCallNotifier}. */
- public static MissedCallNotifier getInstance(Context context) {
- CallLogNotificationsQueryHelper callLogNotificationsQueryHelper =
- CallLogNotificationsQueryHelper.getInstance(context);
- return new MissedCallNotifier(context, callLogNotificationsQueryHelper);
+ static MissedCallNotifier getIstance(Context context) {
+ return new MissedCallNotifier(context, CallLogNotificationsQueryHelper.getInstance(context));
+ }
+
+ @Nullable
+ @Override
+ public Void doInBackground(@Nullable Pair<Integer, String> input) throws Throwable {
+ updateMissedCallNotification(input.first, input.second);
+ return null;
}
/**
@@ -88,8 +94,9 @@ public class MissedCallNotifier {
* @param number the phone number of the most recent call to display if the call log cannot be
* accessed. May be null if unknown.
*/
+ @VisibleForTesting
@WorkerThread
- public void updateMissedCallNotification(int count, @Nullable String number) {
+ void updateMissedCallNotification(int count, @Nullable String number) {
final int titleResId;
CharSequence expandedText; // The text in the notification's line 1 and 2.
@@ -375,7 +382,7 @@ public class MissedCallNotifier {
private PendingIntent createCallBackPendingIntent(String number, @NonNull Uri callUri) {
Intent intent = new Intent(context, CallLogNotificationsService.class);
intent.setAction(CallLogNotificationsService.ACTION_CALL_BACK_FROM_MISSED_CALL_NOTIFICATION);
- intent.putExtra(CallLogNotificationsService.EXTRA_MISSED_CALL_NUMBER, number);
+ intent.putExtra(MissedCallNotificationReceiver.EXTRA_NOTIFICATION_PHONE_NUMBER, number);
intent.setData(callUri);
// Use FLAG_UPDATE_CURRENT to make sure any previous pending intent is updated with the new
// extra.
diff --git a/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java b/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java
index 1440218fb..893d6bed9 100644
--- a/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java
+++ b/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java
@@ -33,6 +33,7 @@ import com.android.dialer.app.voicemail.VoicemailPlaybackPresenter;
import com.android.dialer.common.LogUtil;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
+import com.android.dialer.util.PermissionsUtil;
public class VisualVoicemailCallLogFragment extends CallLogFragment {
@@ -54,19 +55,35 @@ public class VisualVoicemailCallLogFragment extends CallLogFragment {
public void onActivityCreated(Bundle savedInstanceState) {
mVoicemailPlaybackPresenter =
VoicemailPlaybackPresenter.getInstance(getActivity(), savedInstanceState);
- getActivity()
- .getContentResolver()
- .registerContentObserver(
- VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver);
+
+ if (PermissionsUtil.hasReadVoicemailPermissions(getContext())
+ && PermissionsUtil.hasAddVoicemailPermissions(getContext())) {
+ getActivity()
+ .getContentResolver()
+ .registerContentObserver(
+ VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver);
+ } else {
+ LogUtil.w(
+ "VisualVoicemailCallLogFragment.onActivityCreated",
+ "read voicemail permission unavailable.");
+ }
super.onActivityCreated(savedInstanceState);
mVoicemailErrorManager =
new VoicemailErrorManager(getContext(), getAdapter().getAlertManager(), mModalAlertManager);
- getActivity()
- .getContentResolver()
- .registerContentObserver(
- VoicemailContract.Status.CONTENT_URI,
- true,
- mVoicemailErrorManager.getContentObserver());
+
+ if (PermissionsUtil.hasReadVoicemailPermissions(getContext())
+ && PermissionsUtil.hasAddVoicemailPermissions(getContext())) {
+ getActivity()
+ .getContentResolver()
+ .registerContentObserver(
+ VoicemailContract.Status.CONTENT_URI,
+ true,
+ mVoicemailErrorManager.getContentObserver());
+ } else {
+ LogUtil.w(
+ "VisualVoicemailCallLogFragment.onActivityCreated",
+ "read voicemail permission unavailable.");
+ }
}
@Override
@@ -118,7 +135,9 @@ public class VisualVoicemailCallLogFragment extends CallLogFragment {
LogUtil.enterBlock("VisualVoicemailCallLogFragment.onPageSelected");
super.onVisible();
if (getActivity() != null) {
- getActivity().sendBroadcast(new Intent(VoicemailContract.ACTION_SYNC_VOICEMAIL));
+ Intent intent = new Intent(VoicemailContract.ACTION_SYNC_VOICEMAIL);
+ intent.setPackage(getActivity().getPackageName());
+ getActivity().sendBroadcast(intent);
Logger.get(getActivity()).logImpression(DialerImpression.Type.VVM_TAB_VIEWED);
getActivity().setVolumeControlStream(VoicemailAudioManager.PLAYBACK_STREAM);
}
diff --git a/java/com/android/dialer/app/calllog/VoicemailQueryHandler.java b/java/com/android/dialer/app/calllog/VoicemailQueryHandler.java
index 024394728..777f4c79f 100644
--- a/java/com/android/dialer/app/calllog/VoicemailQueryHandler.java
+++ b/java/com/android/dialer/app/calllog/VoicemailQueryHandler.java
@@ -20,14 +20,12 @@ import android.content.AsyncQueryHandler;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
-import android.content.Intent;
import android.net.Uri;
import android.provider.CallLog.Calls;
import android.support.annotation.MainThread;
import android.support.annotation.Nullable;
import com.android.dialer.app.R;
import com.android.dialer.common.Assert;
-import com.android.dialer.common.LogUtil;
import com.android.dialer.notification.GroupedNotificationUtil;
/** Handles asynchronous queries to the call log for voicemail. */
@@ -79,17 +77,4 @@ public class VoicemailQueryHandler extends AsyncQueryHandler {
R.id.notification_visual_voicemail,
DefaultVoicemailNotifier.VISUAL_VOICEMAIL_NOTIFICATION_TAG);
}
-
- @Override
- protected void onUpdateComplete(int token, Object cookie, int result) {
- if (token == UPDATE_MARK_VOICEMAILS_AS_OLD_TOKEN) {
- if (mContext != null) {
- Intent serviceIntent = new Intent(mContext, CallLogNotificationsService.class);
- serviceIntent.setAction(CallLogNotificationsService.ACTION_UPDATE_VOICEMAIL_NOTIFICATIONS);
- mContext.startService(serviceIntent);
- } else {
- LogUtil.w(TAG, "Unknown update completed: ignoring: " + token);
- }
- }
- }
}
diff --git a/java/com/android/dialer/app/dialpad/DialpadFragment.java b/java/com/android/dialer/app/dialpad/DialpadFragment.java
index a0c348424..e9d57b399 100644
--- a/java/com/android/dialer/app/dialpad/DialpadFragment.java
+++ b/java/com/android/dialer/app/dialpad/DialpadFragment.java
@@ -447,7 +447,7 @@ public class DialpadFragment extends Fragment
setFormattedDigits(converted, null);
return true;
} else {
- if (!PermissionsUtil.hasContactsPermissions(getActivity())) {
+ if (!PermissionsUtil.hasContactsReadPermissions(getActivity())) {
return false;
}
String type = intent.getType();
diff --git a/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java b/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java
index 175360c2d..a0c8b18d3 100644
--- a/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java
+++ b/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java
@@ -77,7 +77,7 @@ public class SmartDialCursorLoader extends AsyncTaskLoader<Cursor> {
LogUtil.v(TAG, "Load in background " + mQuery);
}
- if (!PermissionsUtil.hasContactsPermissions(mContext)) {
+ if (!PermissionsUtil.hasContactsReadPermissions(mContext)) {
return new MatrixCursor(PhoneQuery.PROJECTION_PRIMARY);
}
diff --git a/java/com/android/dialer/app/list/ListsFragment.java b/java/com/android/dialer/app/list/ListsFragment.java
index 02498939c..8dd52a9d4 100644
--- a/java/com/android/dialer/app/list/ListsFragment.java
+++ b/java/com/android/dialer/app/list/ListsFragment.java
@@ -48,6 +48,7 @@ import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.logging.ScreenEvent;
import com.android.dialer.speeddial.SpeedDialFragment;
+import com.android.dialer.util.PermissionsUtil;
import com.android.dialer.voicemailstatus.VisualVoicemailEnabledChecker;
import com.android.dialer.voicemailstatus.VoicemailStatusHelper;
import java.util.ArrayList;
@@ -183,10 +184,15 @@ public class ListsFragment extends Fragment
mRemoveView = (RemoveView) parentView.findViewById(R.id.remove_view);
mRemoveViewContent = parentView.findViewById(R.id.remove_view_content);
- getActivity()
- .getContentResolver()
- .registerContentObserver(
- VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver);
+ if (PermissionsUtil.hasReadVoicemailPermissions(getContext())
+ && PermissionsUtil.hasAddVoicemailPermissions(getContext())) {
+ getActivity()
+ .getContentResolver()
+ .registerContentObserver(
+ VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver);
+ } else {
+ LogUtil.w("ListsFragment.onCreateView", "no voicemail read/add permissions");
+ }
Trace.endSection();
Trace.endSection();
diff --git a/java/com/android/dialer/app/list/OldSpeedDialFragment.java b/java/com/android/dialer/app/list/OldSpeedDialFragment.java
index 4ae84b6d9..40fe74565 100644
--- a/java/com/android/dialer/app/list/OldSpeedDialFragment.java
+++ b/java/com/android/dialer/app/list/OldSpeedDialFragment.java
@@ -123,7 +123,7 @@ public class OldSpeedDialFragment extends Fragment
if (mContactTileAdapter != null) {
mContactTileAdapter.refreshContactsPreferences();
}
- if (PermissionsUtil.hasContactsPermissions(getActivity())) {
+ if (PermissionsUtil.hasContactsReadPermissions(getActivity())) {
if (getLoaderManager().getLoader(LOADER_ID_CONTACT_TILE) == null) {
getLoaderManager().initLoader(LOADER_ID_CONTACT_TILE, null, mContactTileLoaderListener);
@@ -235,7 +235,7 @@ public class OldSpeedDialFragment extends Fragment
// Use initLoader() instead of restartLoader() to refraining unnecessary reload.
// This method call implicitly assures ContactTileLoaderListener's onLoadFinished() will
// be called, on which we'll check if "all" contacts should be reloaded again or not.
- if (PermissionsUtil.hasContactsPermissions(activity)) {
+ if (PermissionsUtil.hasContactsReadPermissions(activity)) {
getLoaderManager().initLoader(LOADER_ID_CONTACT_TILE, null, mContactTileLoaderListener);
} else {
setEmptyViewVisibility(true);
diff --git a/java/com/android/dialer/app/list/SearchFragment.java b/java/com/android/dialer/app/list/SearchFragment.java
index 264bdf81b..fcf8236e3 100644
--- a/java/com/android/dialer/app/list/SearchFragment.java
+++ b/java/com/android/dialer/app/list/SearchFragment.java
@@ -380,7 +380,7 @@ public class SearchFragment extends PhoneNumberPickerFragment {
return;
}
- if (PermissionsUtil.hasContactsPermissions(getActivity())) {
+ if (PermissionsUtil.hasContactsReadPermissions(getActivity())) {
super.startLoading();
} else if (TextUtils.isEmpty(getQueryString())) {
// Clear out any existing call shortcuts.
diff --git a/java/com/android/dialer/app/res/values-af/strings.xml b/java/com/android/dialer/app/res/values-af/strings.xml
index 2cd688023..7eaa7cb94 100644
--- a/java/com/android/dialer/app/res/values-af/strings.xml
+++ b/java/com/android/dialer/app/res/values-af/strings.xml
@@ -230,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Deblokkeer nommer"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Strooipos"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> is vanlyn en kan nie bereik word nie"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-am/strings.xml b/java/com/android/dialer/app/res/values-am/strings.xml
index 760099d26..dd20b3119 100644
--- a/java/com/android/dialer/app/res/values-am/strings.xml
+++ b/java/com/android/dialer/app/res/values-am/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"ቁጥርን አታግድ"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"አይፈለጌ መልዕክት"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ከመስመር ውጭ ነው እና ሊደረስበት አይችልም"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ar/strings.xml b/java/com/android/dialer/app/res/values-ar/strings.xml
index 6e387b490..c24d313c4 100644
--- a/java/com/android/dialer/app/res/values-ar/strings.xml
+++ b/java/com/android/dialer/app/res/values-ar/strings.xml
@@ -238,4 +238,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"إلغاء حظر الرقم"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"تعليق غير مرغوب فيه"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> غير متصل ولا يمكن الوصول إليه"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-az/strings.xml b/java/com/android/dialer/app/res/values-az/strings.xml
index 9522764aa..70e926cbe 100644
--- a/java/com/android/dialer/app/res/values-az/strings.xml
+++ b/java/com/android/dialer/app/res/values-az/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Nömrəni blokdan çıxarın"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> oflayn olduğu üçün əlaqə saxlamaq mümkün deyil"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml
index c046d94aa..7ca2e56ec 100644
--- a/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml
@@ -233,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Deblokiraj broj"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Nepoželjan"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> je oflajn i ne možete da ga/je kontaktirate"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-be/strings.xml b/java/com/android/dialer/app/res/values-be/strings.xml
index 552e6ac17..effc7e025 100644
--- a/java/com/android/dialer/app/res/values-be/strings.xml
+++ b/java/com/android/dialer/app/res/values-be/strings.xml
@@ -235,4 +235,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Разблакіраваць нумар"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Карыстальнік <xliff:g id="NAME">%1$s</xliff:g> па-за сеткай і не даступны"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-bg/strings.xml b/java/com/android/dialer/app/res/values-bg/strings.xml
index 277cb63a7..d3d1a9974 100644
--- a/java/com/android/dialer/app/res/values-bg/strings.xml
+++ b/java/com/android/dialer/app/res/values-bg/strings.xml
@@ -230,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Отблокиране на номера"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"С <xliff:g id="NAME">%1$s</xliff:g> не може да се установи връзка, тъй като е офлайн"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-bn/strings.xml b/java/com/android/dialer/app/res/values-bn/strings.xml
index 0a5569234..4b7354c00 100644
--- a/java/com/android/dialer/app/res/values-bn/strings.xml
+++ b/java/com/android/dialer/app/res/values-bn/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"নম্বর অবরোধ মুক্ত করুন"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"স্প্যাম"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> এখন অফলাইনে থাকায় যোগাযোগ করা যাবে না"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-bs/strings.xml b/java/com/android/dialer/app/res/values-bs/strings.xml
index 834d29609..4e028461a 100644
--- a/java/com/android/dialer/app/res/values-bs/strings.xml
+++ b/java/com/android/dialer/app/res/values-bs/strings.xml
@@ -233,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Deblokiraj broj"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Neželjena pošta"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Osoba <xliff:g id="NAME">%1$s</xliff:g> je van mreže i ne možete je kontaktirati"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ca/strings.xml b/java/com/android/dialer/app/res/values-ca/strings.xml
index 6afd86b6b..e18256d5a 100644
--- a/java/com/android/dialer/app/res/values-ca/strings.xml
+++ b/java/com/android/dialer/app/res/values-ca/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloqueja el número"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Contingut brossa"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> no té connexió i no s\'hi pot contactar"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-cs/strings.xml b/java/com/android/dialer/app/res/values-cs/strings.xml
index 97f43319c..bb7e3c5fb 100644
--- a/java/com/android/dialer/app/res/values-cs/strings.xml
+++ b/java/com/android/dialer/app/res/values-cs/strings.xml
@@ -235,4 +235,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Zrušit blokování čísla"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Uživatel <xliff:g id="NAME">%1$s</xliff:g> je offline a není možné se s ním spojit"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-da/strings.xml b/java/com/android/dialer/app/res/values-da/strings.xml
index 7f162b9db..498817652 100644
--- a/java/com/android/dialer/app/res/values-da/strings.xml
+++ b/java/com/android/dialer/app/res/values-da/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Ophæv blokering af nummer"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> er offline og kan ikke nås"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-de/strings.xml b/java/com/android/dialer/app/res/values-de/strings.xml
index eaa798694..ab12c1f4f 100644
--- a/java/com/android/dialer/app/res/values-de/strings.xml
+++ b/java/com/android/dialer/app/res/values-de/strings.xml
@@ -233,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Blockierung der Nummer aufheben"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ist offline und nicht erreichbar"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-el/strings.xml b/java/com/android/dialer/app/res/values-el/strings.xml
index 6996817d8..2a00c46f7 100644
--- a/java/com/android/dialer/app/res/values-el/strings.xml
+++ b/java/com/android/dialer/app/res/values-el/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Κατάργηση αποκλεισμού αριθμού"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Ανεπιθύμητα"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Ο χρήστης <xliff:g id="NAME">%1$s</xliff:g> είναι εκτός σύνδεσης και δεν μπορείτε να έρθετε σε επικοινωνία μαζί του"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-en-rAU/strings.xml b/java/com/android/dialer/app/res/values-en-rAU/strings.xml
index 967c74158..9229be690 100644
--- a/java/com/android/dialer/app/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/app/res/values-en-rAU/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Unblock number"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> is offline and can\'t be reached"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-en-rGB/strings.xml b/java/com/android/dialer/app/res/values-en-rGB/strings.xml
index 967c74158..9229be690 100644
--- a/java/com/android/dialer/app/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/app/res/values-en-rGB/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Unblock number"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> is offline and can\'t be reached"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-en-rIN/strings.xml b/java/com/android/dialer/app/res/values-en-rIN/strings.xml
index 967c74158..9229be690 100644
--- a/java/com/android/dialer/app/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/app/res/values-en-rIN/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Unblock number"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> is offline and can\'t be reached"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-es-rUS/strings.xml b/java/com/android/dialer/app/res/values-es-rUS/strings.xml
index 4a39f3418..17a1b1438 100644
--- a/java/com/android/dialer/app/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/app/res/values-es-rUS/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloquear número"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> está sin conexión y no se lo puede contactar"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-es/strings.xml b/java/com/android/dialer/app/res/values-es/strings.xml
index f3ebe5d9b..15c129972 100644
--- a/java/com/android/dialer/app/res/values-es/strings.xml
+++ b/java/com/android/dialer/app/res/values-es/strings.xml
@@ -230,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloquear número"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> no tiene conexión y no se puede contactar"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-et/strings.xml b/java/com/android/dialer/app/res/values-et/strings.xml
index e880e3d5e..3dd4ebc04 100644
--- a/java/com/android/dialer/app/res/values-et/strings.xml
+++ b/java/com/android/dialer/app/res/values-et/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Numbri deblokeerimine"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Rämpspost"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ei ole võrgus ja temaga ei saa ühendust"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-eu/strings.xml b/java/com/android/dialer/app/res/values-eu/strings.xml
index 079e5c75b..e2701f965 100644
--- a/java/com/android/dialer/app/res/values-eu/strings.xml
+++ b/java/com/android/dialer/app/res/values-eu/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desblokeatu zenbakia"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spama"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ez dago konektatuta, eta ezin zara jarri harremanetan berarekin"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-fa/strings.xml b/java/com/android/dialer/app/res/values-fa/strings.xml
index 67f58a04e..fb1fa8b31 100644
--- a/java/com/android/dialer/app/res/values-fa/strings.xml
+++ b/java/com/android/dialer/app/res/values-fa/strings.xml
@@ -233,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"رفع انسداد شماره"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"هرزنامه"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> آفلاین است و در دسترس نمی‌باشد"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-fi/strings.xml b/java/com/android/dialer/app/res/values-fi/strings.xml
index 417305b69..3a03c8e55 100644
--- a/java/com/android/dialer/app/res/values-fi/strings.xml
+++ b/java/com/android/dialer/app/res/values-fi/strings.xml
@@ -230,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Poista numeron esto"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Roskaposti"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> on offline-tilassa, eikä siihen saada yhteyttä."</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-fr-rCA/strings.xml b/java/com/android/dialer/app/res/values-fr-rCA/strings.xml
index 0429a767f..4610e6048 100644
--- a/java/com/android/dialer/app/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/app/res/values-fr-rCA/strings.xml
@@ -230,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Débloquer le numéro"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Pourriel"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> est hors connexion et injoignable"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-fr/strings.xml b/java/com/android/dialer/app/res/values-fr/strings.xml
index 933acc130..e1eda7243 100644
--- a/java/com/android/dialer/app/res/values-fr/strings.xml
+++ b/java/com/android/dialer/app/res/values-fr/strings.xml
@@ -230,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Débloquer le numéro"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> est injoignable, car non connecté"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-gl/strings.xml b/java/com/android/dialer/app/res/values-gl/strings.xml
index df162bffd..2a79835c2 100644
--- a/java/com/android/dialer/app/res/values-gl/strings.xml
+++ b/java/com/android/dialer/app/res/values-gl/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloquear número"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Non se pode contactar con <xliff:g id="NAME">%1$s</xliff:g> porque está sen conexión"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-gu/strings.xml b/java/com/android/dialer/app/res/values-gu/strings.xml
index ad5cd0776..940dea028 100644
--- a/java/com/android/dialer/app/res/values-gu/strings.xml
+++ b/java/com/android/dialer/app/res/values-gu/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"નંબર અનાવરોધિત કરો"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"સ્પામ"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ઑફલાઇન છે અને તેના સુધી પહોંચી શકતાં નથી"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-hi/strings.xml b/java/com/android/dialer/app/res/values-hi/strings.xml
index 320baa559..c4f135b16 100644
--- a/java/com/android/dialer/app/res/values-hi/strings.xml
+++ b/java/com/android/dialer/app/res/values-hi/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"नंबर अनवरोधित करें"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"स्पैम"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ऑफ़लाइन हैं और उन तक नहीं पहुंचा जा सकता"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-hr/strings.xml b/java/com/android/dialer/app/res/values-hr/strings.xml
index ee2df5495..fb96256f5 100644
--- a/java/com/android/dialer/app/res/values-hr/strings.xml
+++ b/java/com/android/dialer/app/res/values-hr/strings.xml
@@ -235,4 +235,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Deblokiranje broja"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Neželjena pošta"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> nije online i nije dostupan"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-hu/strings.xml b/java/com/android/dialer/app/res/values-hu/strings.xml
index 9660b0c47..a39c5846f 100644
--- a/java/com/android/dialer/app/res/values-hu/strings.xml
+++ b/java/com/android/dialer/app/res/values-hu/strings.xml
@@ -233,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Szám tiltásának feloldása"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> offline, és nem érhető el."</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-hy/strings.xml b/java/com/android/dialer/app/res/values-hy/strings.xml
index 58a8e9a35..362c57048 100644
--- a/java/com/android/dialer/app/res/values-hy/strings.xml
+++ b/java/com/android/dialer/app/res/values-hy/strings.xml
@@ -230,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Արգելաբացել համարը"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Լցոն"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> օգտատերը միացած չէ ցանցին և անհասանելի է"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-in/strings.xml b/java/com/android/dialer/app/res/values-in/strings.xml
index 3b9fcbeca..ca7341ae3 100644
--- a/java/com/android/dialer/app/res/values-in/strings.xml
+++ b/java/com/android/dialer/app/res/values-in/strings.xml
@@ -233,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Bebaskan nomor"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> sedang offline dan tidak dapat dijangkau"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-is/strings.xml b/java/com/android/dialer/app/res/values-is/strings.xml
index e08471203..a8a9ae15d 100644
--- a/java/com/android/dialer/app/res/values-is/strings.xml
+++ b/java/com/android/dialer/app/res/values-is/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Taka númer af bannlista"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Ruslnúmer"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> er án nettengingar og ekki er hægt að ná í viðkomandi"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-it/strings.xml b/java/com/android/dialer/app/res/values-it/strings.xml
index 341d49771..7fc581115 100644
--- a/java/com/android/dialer/app/res/values-it/strings.xml
+++ b/java/com/android/dialer/app/res/values-it/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Sblocca numero"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> è offline e non può essere raggiunto"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-iw/strings.xml b/java/com/android/dialer/app/res/values-iw/strings.xml
index 9b61af74b..743d45505 100644
--- a/java/com/android/dialer/app/res/values-iw/strings.xml
+++ b/java/com/android/dialer/app/res/values-iw/strings.xml
@@ -234,4 +234,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"בטל חסימת מספר"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"ספאם"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"לא ניתן להתקשר כי המכשיר של <xliff:g id="NAME">%1$s</xliff:g> לא מחובר כרגע"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ja/strings.xml b/java/com/android/dialer/app/res/values-ja/strings.xml
index 22cfd4831..72bc2debb 100644
--- a/java/com/android/dialer/app/res/values-ja/strings.xml
+++ b/java/com/android/dialer/app/res/values-ja/strings.xml
@@ -230,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"番号のブロックを解除"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"スパム"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> さんはオフラインのため、通話を受信できません"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ka/strings.xml b/java/com/android/dialer/app/res/values-ka/strings.xml
index 06bc726a6..befdd3aca 100644
--- a/java/com/android/dialer/app/res/values-ka/strings.xml
+++ b/java/com/android/dialer/app/res/values-ka/strings.xml
@@ -233,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"ნომრის განბლოკვა"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"სპამი"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ხაზგარეშეა და ვერ დაუკავშირდებით"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-kk/strings.xml b/java/com/android/dialer/app/res/values-kk/strings.xml
index 409217a77..8ed666109 100644
--- a/java/com/android/dialer/app/res/values-kk/strings.xml
+++ b/java/com/android/dialer/app/res/values-kk/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Нөмірді бөгеуден шығару"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> желіден тыс және байланысу мүмкін емес"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-km/strings.xml b/java/com/android/dialer/app/res/values-km/strings.xml
index 7ebe85d5b..298070806 100644
--- a/java/com/android/dialer/app/res/values-km/strings.xml
+++ b/java/com/android/dialer/app/res/values-km/strings.xml
@@ -230,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"ឈប់ទប់ស្កាត់លេខ"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"សារ​ឥតបានការ"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> មិន​នៅ​លើ​អ៊ីនធឺណិត និង​មិន​អាច​ទាក់ទង​បាន​ទេ"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-kn/strings.xml b/java/com/android/dialer/app/res/values-kn/strings.xml
index 3e70c8819..ff780f99c 100644
--- a/java/com/android/dialer/app/res/values-kn/strings.xml
+++ b/java/com/android/dialer/app/res/values-kn/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"ಸಂಖ್ಯೆಯನ್ನು ಅನಿರ್ಬಂಧಿಸು"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"ಸ್ಪ್ಯಾಮ್"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ಆಫ್‌ಲೈನ್ ಆಗಿದ್ದಾರೆ ಮತ್ತು ಅವರನ್ನು ತಲುಪಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ko/strings.xml b/java/com/android/dialer/app/res/values-ko/strings.xml
index 0f6abdf59..cdd0d5205 100644
--- a/java/com/android/dialer/app/res/values-ko/strings.xml
+++ b/java/com/android/dialer/app/res/values-ko/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"번호 차단 해제"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"스팸"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g>님은 오프라인 상태이며 연락할 수 없습니다."</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ky/strings.xml b/java/com/android/dialer/app/res/values-ky/strings.xml
index 4a2ccf3f7..0784a3e07 100644
--- a/java/com/android/dialer/app/res/values-ky/strings.xml
+++ b/java/com/android/dialer/app/res/values-ky/strings.xml
@@ -233,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Номерди бөгөттөн чыгаруу"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> оффлайн режиминде болгондуктан, байланышууга болбойт"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-lo/strings.xml b/java/com/android/dialer/app/res/values-lo/strings.xml
index 315534639..d7b8f3207 100644
--- a/java/com/android/dialer/app/res/values-lo/strings.xml
+++ b/java/com/android/dialer/app/res/values-lo/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"ປົດ​ບ​ລັອກ​ໝາຍ​ເລກ"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"ສະແປມ"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ອອບລາຍຢູ່ ແລະ ບໍ່ສາມາດຕິດຕໍ່ຫາໄດ້"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-lt/strings.xml b/java/com/android/dialer/app/res/values-lt/strings.xml
index 6ac7e4d2b..eaa11cbc7 100644
--- a/java/com/android/dialer/app/res/values-lt/strings.xml
+++ b/java/com/android/dialer/app/res/values-lt/strings.xml
@@ -235,4 +235,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Panaikinti numerio blokavimą"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Šlamštas"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> yra neprisijungęs (-usi) ir su juo (ja) negalima susisiekti"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-lv/strings.xml b/java/com/android/dialer/app/res/values-lv/strings.xml
index df51e60a4..3c73cd580 100644
--- a/java/com/android/dialer/app/res/values-lv/strings.xml
+++ b/java/com/android/dialer/app/res/values-lv/strings.xml
@@ -233,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Atbloķēt numuru"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Nevēlami zvani"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Lietotājs <xliff:g id="NAME">%1$s</xliff:g> ir bezsaistē un nav sasniedzams"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-mk/strings.xml b/java/com/android/dialer/app/res/values-mk/strings.xml
index 1086e34fb..016821d96 100644
--- a/java/com/android/dialer/app/res/values-mk/strings.xml
+++ b/java/com/android/dialer/app/res/values-mk/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Одблокирај го бројот"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Контактот <xliff:g id="NAME">%1$s</xliff:g> е офлајн и недостапен"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ml/strings.xml b/java/com/android/dialer/app/res/values-ml/strings.xml
index 7a43a2dfd..081a05a04 100644
--- a/java/com/android/dialer/app/res/values-ml/strings.xml
+++ b/java/com/android/dialer/app/res/values-ml/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"നമ്പർ അൺബ്ലോക്കുചെയ്യുക"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"സ്‌പാം"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ഓഫ്‌ലൈനായതിനാൽ കോൾ ചെയ്യാനാവില്ല"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-mn/strings.xml b/java/com/android/dialer/app/res/values-mn/strings.xml
index 0dda88e18..16f7e1ad1 100644
--- a/java/com/android/dialer/app/res/values-mn/strings.xml
+++ b/java/com/android/dialer/app/res/values-mn/strings.xml
@@ -230,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Дугаар блокноос гаргах"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> офлайн, холбогдох боломжгүй байна"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-mr/strings.xml b/java/com/android/dialer/app/res/values-mr/strings.xml
index 505dae72c..eb374b9e0 100644
--- a/java/com/android/dialer/app/res/values-mr/strings.xml
+++ b/java/com/android/dialer/app/res/values-mr/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"नंबर अनावरोधित करा"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"स्पॅम"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ऑफलाइन आहे आणि त्यांच्याशी संपर्क साधू शकत नाही"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ms/strings.xml b/java/com/android/dialer/app/res/values-ms/strings.xml
index 74d9b051a..c471ce922 100644
--- a/java/com/android/dialer/app/res/values-ms/strings.xml
+++ b/java/com/android/dialer/app/res/values-ms/strings.xml
@@ -233,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Nyahsekat nombor"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> di luar talian dan tidak dapat dihubungi"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-my/strings.xml b/java/com/android/dialer/app/res/values-my/strings.xml
index 88f5bd394..dd81dee5f 100644
--- a/java/com/android/dialer/app/res/values-my/strings.xml
+++ b/java/com/android/dialer/app/res/values-my/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"နံပါတ်ကို ဖွင့်မည်"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"စပမ်း"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> သည် အော့ဖ်လိုင်းဖြစ်နေသောကြောင့် ဆက်သွယ်၍ မရနိုင်ပါ"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-nb/strings.xml b/java/com/android/dialer/app/res/values-nb/strings.xml
index 7a8528e2e..8f83c949d 100644
--- a/java/com/android/dialer/app/res/values-nb/strings.xml
+++ b/java/com/android/dialer/app/res/values-nb/strings.xml
@@ -230,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Opphev blokkeringen av nummeret"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Nettsøppel"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> er frakoblet og kan ikke nås"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ne/strings.xml b/java/com/android/dialer/app/res/values-ne/strings.xml
index 8595062d3..f9524637a 100644
--- a/java/com/android/dialer/app/res/values-ne/strings.xml
+++ b/java/com/android/dialer/app/res/values-ne/strings.xml
@@ -230,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"नम्बरमाथिको रोक हटाउनुहोस्"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"स्प्याम"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> अफलाइन हुनुहुन्छ र वहाँलाई भेट्न सकिँदैन"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-nl/strings.xml b/java/com/android/dialer/app/res/values-nl/strings.xml
index 54d784b91..498436897 100644
--- a/java/com/android/dialer/app/res/values-nl/strings.xml
+++ b/java/com/android/dialer/app/res/values-nl/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Blokkeren van nummer opheffen"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> is offline en kan niet worden bereikt"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-no/strings.xml b/java/com/android/dialer/app/res/values-no/strings.xml
index 7a8528e2e..8f83c949d 100644
--- a/java/com/android/dialer/app/res/values-no/strings.xml
+++ b/java/com/android/dialer/app/res/values-no/strings.xml
@@ -230,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Opphev blokkeringen av nummeret"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Nettsøppel"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> er frakoblet og kan ikke nås"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-pa/strings.xml b/java/com/android/dialer/app/res/values-pa/strings.xml
index 880eecccd..88e3aa718 100644
--- a/java/com/android/dialer/app/res/values-pa/strings.xml
+++ b/java/com/android/dialer/app/res/values-pa/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"ਨੰਬਰ ਨੂੰ ਅਨਬਲੌਕ ਕਰੋ"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"ਸਪੈਮ"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ਔਫਲਾਈਨ ਹੈ ਅਤੇ ਉਸ \'ਤੇ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-pl/strings.xml b/java/com/android/dialer/app/res/values-pl/strings.xml
index b36d09628..f408ed353 100644
--- a/java/com/android/dialer/app/res/values-pl/strings.xml
+++ b/java/com/android/dialer/app/res/values-pl/strings.xml
@@ -235,4 +235,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Odblokuj numer"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Użytkownik <xliff:g id="NAME">%1$s</xliff:g> jest offline i nie można się z nim skontaktować"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-pt-rBR/strings.xml b/java/com/android/dialer/app/res/values-pt-rBR/strings.xml
index 9e0eab854..0fc1da7ac 100644
--- a/java/com/android/dialer/app/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/app/res/values-pt-rBR/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloquear número"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> está off-line e não é possível entrar em contato"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-pt-rPT/strings.xml b/java/com/android/dialer/app/res/values-pt-rPT/strings.xml
index 669d66065..f12e25456 100644
--- a/java/com/android/dialer/app/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/app/res/values-pt-rPT/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloquear número"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> está offline e não pode ser contactado"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-pt/strings.xml b/java/com/android/dialer/app/res/values-pt/strings.xml
index 9e0eab854..0fc1da7ac 100644
--- a/java/com/android/dialer/app/res/values-pt/strings.xml
+++ b/java/com/android/dialer/app/res/values-pt/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloquear número"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> está off-line e não é possível entrar em contato"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ro/strings.xml b/java/com/android/dialer/app/res/values-ro/strings.xml
index 007199d3a..d07dbed87 100644
--- a/java/com/android/dialer/app/res/values-ro/strings.xml
+++ b/java/com/android/dialer/app/res/values-ro/strings.xml
@@ -233,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Deblocați numărul"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> este offline și nu poate fi contactat(ă)"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ru/strings.xml b/java/com/android/dialer/app/res/values-ru/strings.xml
index 6744592e8..e98622de8 100644
--- a/java/com/android/dialer/app/res/values-ru/strings.xml
+++ b/java/com/android/dialer/app/res/values-ru/strings.xml
@@ -235,4 +235,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Разблокировать номер"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> сейчас офлайн и не ответит на вызов"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-si/strings.xml b/java/com/android/dialer/app/res/values-si/strings.xml
index 4340c0edf..c4ae1736d 100644
--- a/java/com/android/dialer/app/res/values-si/strings.xml
+++ b/java/com/android/dialer/app/res/values-si/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"අංකය අවහිර නොකරන්න"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"අයාචිත තැපෑල"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> නොබැඳි අතර ළඟා වීමට නොහැකිය"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-sk/strings.xml b/java/com/android/dialer/app/res/values-sk/strings.xml
index 25b8d74c5..b5f426938 100644
--- a/java/com/android/dialer/app/res/values-sk/strings.xml
+++ b/java/com/android/dialer/app/res/values-sk/strings.xml
@@ -235,4 +235,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Zrušiť blokovanie čísla"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> je offline a nedá sa zastihnúť"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-sl/strings.xml b/java/com/android/dialer/app/res/values-sl/strings.xml
index d5a22d5be..51ac390de 100644
--- a/java/com/android/dialer/app/res/values-sl/strings.xml
+++ b/java/com/android/dialer/app/res/values-sl/strings.xml
@@ -235,4 +235,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Odblokiranje telefonske številke"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Vsiljena pošta"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Oseba <xliff:g id="NAME">%1$s</xliff:g> nima vzpostavljene povezave in ni dosegljiva"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-sq/strings.xml b/java/com/android/dialer/app/res/values-sq/strings.xml
index cfa84436f..8bc3e85be 100644
--- a/java/com/android/dialer/app/res/values-sq/strings.xml
+++ b/java/com/android/dialer/app/res/values-sq/strings.xml
@@ -233,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Zhblloko numrin"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"E bezdisshme"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> është jashtë linje dhe nuk mund të kontaktohet"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-sr/strings.xml b/java/com/android/dialer/app/res/values-sr/strings.xml
index d8222da95..e7f7f912d 100644
--- a/java/com/android/dialer/app/res/values-sr/strings.xml
+++ b/java/com/android/dialer/app/res/values-sr/strings.xml
@@ -233,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Деблокирај број"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Непожељан"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> је офлајн и не можете да га/је контактирате"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-sv/strings.xml b/java/com/android/dialer/app/res/values-sv/strings.xml
index 47b215136..36616ce83 100644
--- a/java/com/android/dialer/app/res/values-sv/strings.xml
+++ b/java/com/android/dialer/app/res/values-sv/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Häv blockeringen av numret"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> är offline och går inte att nå"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-sw/strings.xml b/java/com/android/dialer/app/res/values-sw/strings.xml
index 1516b9a9c..fdbdd7d02 100644
--- a/java/com/android/dialer/app/res/values-sw/strings.xml
+++ b/java/com/android/dialer/app/res/values-sw/strings.xml
@@ -233,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Ondolea nambari kizuizi"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Taka"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> hayuko mtandaoni na hapatikani"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ta/strings.xml b/java/com/android/dialer/app/res/values-ta/strings.xml
index 5a80a2b4a..f7e1d19c4 100644
--- a/java/com/android/dialer/app/res/values-ta/strings.xml
+++ b/java/com/android/dialer/app/res/values-ta/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"எண்ணை அனுமதி"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"ஸ்பேம்"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ஆஃப்லைனில் உள்ளதால், தொடர்புகொள்ள முடியாது"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-te/strings.xml b/java/com/android/dialer/app/res/values-te/strings.xml
index aea962527..babfb9a1e 100644
--- a/java/com/android/dialer/app/res/values-te/strings.xml
+++ b/java/com/android/dialer/app/res/values-te/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"నంబర్‌ను అన్‌బ్లాక్ చేయి"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"స్పామ్"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ఆఫ్‌లైన్‌లో ఉన్నందున వారిని చేరుకోవడం సాధ్యపడదు"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-th/strings.xml b/java/com/android/dialer/app/res/values-th/strings.xml
index cecf217a1..4c2fd37b2 100644
--- a/java/com/android/dialer/app/res/values-th/strings.xml
+++ b/java/com/android/dialer/app/res/values-th/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"เลิกบล็อกหมายเลข"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"สแปม"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ออฟไลน์อยู่และไม่สามารถติดต่อได้"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-tl/strings.xml b/java/com/android/dialer/app/res/values-tl/strings.xml
index d7408cb01..6afb11c1d 100644
--- a/java/com/android/dialer/app/res/values-tl/strings.xml
+++ b/java/com/android/dialer/app/res/values-tl/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Alisin sa pagkaka-block ang numero"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Offline si <xliff:g id="NAME">%1$s</xliff:g> at hindi makontak"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-tr/strings.xml b/java/com/android/dialer/app/res/values-tr/strings.xml
index 3c92206df..8b30d4bff 100644
--- a/java/com/android/dialer/app/res/values-tr/strings.xml
+++ b/java/com/android/dialer/app/res/values-tr/strings.xml
@@ -233,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Numaranın engellemesini kaldır"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> çevrimdışı olduğundan ulaşılamıyor"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-uk/strings.xml b/java/com/android/dialer/app/res/values-uk/strings.xml
index 5a1dfcc59..f1c5b3f37 100644
--- a/java/com/android/dialer/app/res/values-uk/strings.xml
+++ b/java/com/android/dialer/app/res/values-uk/strings.xml
@@ -235,4 +235,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Розблокувати номер"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> не в мережі, неможливо встановити зв’язок"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ur/strings.xml b/java/com/android/dialer/app/res/values-ur/strings.xml
index eec7db062..b21281288 100644
--- a/java/com/android/dialer/app/res/values-ur/strings.xml
+++ b/java/com/android/dialer/app/res/values-ur/strings.xml
@@ -233,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"نمبر غیر مسدود کریں"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"سپام"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> آف لائن ہے اور اس تک پہنچا نہیں جا سکتا"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-uz/strings.xml b/java/com/android/dialer/app/res/values-uz/strings.xml
index 2a2b7afba..e52d2bdf7 100644
--- a/java/com/android/dialer/app/res/values-uz/strings.xml
+++ b/java/com/android/dialer/app/res/values-uz/strings.xml
@@ -233,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Raqamni blokdan chiqarish"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> hozir oflayn va u bilan bog‘lanishning imkoni yo‘q"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-vi/strings.xml b/java/com/android/dialer/app/res/values-vi/strings.xml
index 9def34a1e..66b346854 100644
--- a/java/com/android/dialer/app/res/values-vi/strings.xml
+++ b/java/com/android/dialer/app/res/values-vi/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Bỏ chặn số"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ngoại tuyến và không liên hệ được"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-zh-rCN/strings.xml b/java/com/android/dialer/app/res/values-zh-rCN/strings.xml
index c1b802979..c64234e22 100644
--- a/java/com/android/dialer/app/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/app/res/values-zh-rCN/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"取消屏蔽号码"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"骚扰电话号码"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g>不在线,无法接通"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-zh-rHK/strings.xml b/java/com/android/dialer/app/res/values-zh-rHK/strings.xml
index 95b72f2b5..693e56caa 100644
--- a/java/com/android/dialer/app/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/app/res/values-zh-rHK/strings.xml
@@ -230,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"解除封鎖號碼"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"垃圾號碼"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g>已離線,無法取得聯繫"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-zh-rTW/strings.xml b/java/com/android/dialer/app/res/values-zh-rTW/strings.xml
index c846980c1..3675d3f09 100644
--- a/java/com/android/dialer/app/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/app/res/values-zh-rTW/strings.xml
@@ -233,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"解除封鎖號碼"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"騷擾/廣告電話"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g>已離線,無法接聽來電"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-zu/strings.xml b/java/com/android/dialer/app/res/values-zu/strings.xml
index 07aa68d24..0d9957dda 100644
--- a/java/com/android/dialer/app/res/values-zu/strings.xml
+++ b/java/com/android/dialer/app/res/values-zu/strings.xml
@@ -231,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Vulela inombolo"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Ugaxekile"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"U-<xliff:g id="NAME">%1$s</xliff:g> akaxhunyiwe kwi-inthanethi futhi akakwazi ukufinyelelwa"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values/strings.xml b/java/com/android/dialer/app/res/values/strings.xml
index 174bbe17a..9e1fdeb5a 100644
--- a/java/com/android/dialer/app/res/values/strings.xml
+++ b/java/com/android/dialer/app/res/values/strings.xml
@@ -897,4 +897,7 @@
<!-- Shown as a message that notifies the user enriched calling isn't working -->
<string name="call_composer_connection_failed"><xliff:g id="name">%1$s</xliff:g> is offline and can\'t be reached</string>
+ <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
+ <string name="about_phone_label">About</string>
+
</resources>
diff --git a/java/com/android/dialer/app/settings/DialerSettingsActivity.java b/java/com/android/dialer/app/settings/DialerSettingsActivity.java
index fae5ff3ee..f1c270ca9 100644
--- a/java/com/android/dialer/app/settings/DialerSettingsActivity.java
+++ b/java/com/android/dialer/app/settings/DialerSettingsActivity.java
@@ -32,6 +32,7 @@ import android.telephony.TelephonyManager;
import android.view.MenuItem;
import android.widget.Toast;
import com.android.contacts.common.compat.TelephonyManagerCompat;
+import com.android.dialer.about.AboutPhoneFragment;
import com.android.dialer.app.R;
import com.android.dialer.blocking.FilteredNumberCompat;
import com.android.dialer.common.LogUtil;
@@ -136,6 +137,11 @@ public class DialerSettingsActivity extends AppCompatPreferenceActivity {
accessibilitySettingsHeader.intent = accessibilitySettingsIntent;
target.add(accessibilitySettingsHeader);
}
+
+ Header aboutPhoneHeader = new Header();
+ aboutPhoneHeader.titleRes = R.string.about_phone_label;
+ aboutPhoneHeader.fragment = AboutPhoneFragment.class.getName();
+ target.add(aboutPhoneHeader);
}
private void addVoicemailSettings(List<Header> target, boolean isPrimaryUser) {
diff --git a/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java b/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
index a7ef4f43a..9d07ec561 100644
--- a/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
+++ b/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
@@ -52,39 +52,32 @@ public class LegacyVoicemailNotificationReceiver extends BroadcastReceiver {
PhoneAccountHandle phoneAccountHandle =
Assert.isNotNull(intent.getParcelableExtra(TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE));
- // Carrier might not send voicemail count. Missing extra means there are unknown numbers of
- // voicemails (One or more). Treat it as 1 so the generic version will be shown. ("Voicemail"
- // instead of "X voicemails")
- int count = intent.getIntExtra(TelephonyManager.EXTRA_NOTIFICATION_COUNT, 1);
+ int count = intent.getIntExtra(TelephonyManager.EXTRA_NOTIFICATION_COUNT, -1);
- // Need credential encrypted storage to access preferences.
- if (UserManagerCompat.isUserUnlocked(context)) {
- PerAccountSharedPreferences preferences =
- new PerAccountSharedPreferences(
- context, phoneAccountHandle, PreferenceManager.getDefaultSharedPreferences(context));
- // Carriers may send multiple notifications for the same voicemail.
- if (count != 0 && count == preferences.getInt(LEGACY_VOICEMAIL_COUNT, -1)) {
- LogUtil.i(
- "LegacyVoicemailNotificationReceiver.onReceive",
- "voicemail count hasn't changed, ignoring");
- return;
- }
- preferences.edit().putInt(LEGACY_VOICEMAIL_COUNT, count).apply();
- } else {
+ if (!hasVoicemailCountChanged(context, phoneAccountHandle, count)) {
LogUtil.i(
"LegacyVoicemailNotificationReceiver.onReceive",
- "User locked, bypassing voicemail count check");
+ "voicemail count hasn't changed, ignoring");
+ return;
+ }
+
+ if (count == -1) {
+ // Carrier might not send voicemail count. Missing extra means there are unknown numbers of
+ // voicemails (One or more). Treat it as 1 so the generic version will be shown. ("Voicemail"
+ // instead of "X voicemails")
+ count = 1;
}
if (count == 0) {
LogUtil.i("LegacyVoicemailNotificationReceiver.onReceive", "clearing notification");
- DefaultVoicemailNotifier.getInstance(context).cancelLegacyNotification();
+ new DefaultVoicemailNotifier(context).cancelLegacyNotification();
return;
}
- if (VoicemailComponent.get(context)
- .getVoicemailClient()
- .isActivated(context, phoneAccountHandle)) {
+ if (UserManagerCompat.isUserUnlocked(context)
+ && VoicemailComponent.get(context)
+ .getVoicemailClient()
+ .isActivated(context, phoneAccountHandle)) {
LogUtil.i(
"LegacyVoicemailNotificationReceiver.onReceive",
"visual voicemail is activated, ignoring notification");
@@ -98,7 +91,7 @@ public class LegacyVoicemailNotificationReceiver extends BroadcastReceiver {
intent.getParcelableExtra(TelephonyManager.EXTRA_LAUNCH_VOICEMAIL_SETTINGS_INTENT);
LogUtil.i("LegacyVoicemailNotificationReceiver.onReceive", "sending notification");
- DefaultVoicemailNotifier.getInstance(context)
+ new DefaultVoicemailNotifier(context)
.notifyLegacyVoicemail(
phoneAccountHandle,
count,
@@ -106,4 +99,30 @@ public class LegacyVoicemailNotificationReceiver extends BroadcastReceiver {
callVoicemailIntent,
voicemailSettingIntent);
}
+
+ private static boolean hasVoicemailCountChanged(
+ Context context, PhoneAccountHandle phoneAccountHandle, int newCount) {
+ // Need credential encrypted storage to access preferences.
+ if (!UserManagerCompat.isUserUnlocked(context)) {
+ LogUtil.i(
+ "LegacyVoicemailNotificationReceiver.onReceive",
+ "User locked, bypassing voicemail count check");
+ return true;
+ }
+
+ if (newCount == -1) {
+ // Carrier does not report voicemail count
+ return true;
+ }
+
+ PerAccountSharedPreferences preferences =
+ new PerAccountSharedPreferences(
+ context, phoneAccountHandle, PreferenceManager.getDefaultSharedPreferences(context));
+ // Carriers may send multiple notifications for the same voicemail.
+ if (newCount != 0 && newCount == preferences.getInt(LEGACY_VOICEMAIL_COUNT, -1)) {
+ return false;
+ }
+ preferences.edit().putInt(LEGACY_VOICEMAIL_COUNT, newCount).apply();
+ return true;
+ }
}
diff --git a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
index 524873f6d..ea48c8321 100644
--- a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
+++ b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
@@ -57,6 +57,7 @@ import com.android.dialer.constants.Constants;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.phonenumbercache.CallLogQuery;
+import com.android.dialer.util.PermissionsUtil;
import com.google.common.io.ByteStreams;
import java.io.File;
import java.io.IOException;
@@ -1051,7 +1052,9 @@ public class VoicemailPlaybackPresenter
mFetchResultHandler = handler;
mVoicemailUri = uri;
if (mContext != null) {
- mContext.getContentResolver().registerContentObserver(mVoicemailUri, false, this);
+ if (PermissionsUtil.hasReadVoicemailPermissions(mContext)) {
+ mContext.getContentResolver().registerContentObserver(mVoicemailUri, false, this);
+ }
mFetchResultHandler.postDelayed(this, FETCH_CONTENT_TIMEOUT_MS);
}
}