diff --git a/java/com/android/contacts/common/ClipboardUtils.java b/java/com/android/contacts/common/ClipboardUtils.java
index 3d76839..9345b0f 100644
--- a/java/com/android/contacts/common/ClipboardUtils.java
+++ b/java/com/android/contacts/common/ClipboardUtils.java
@@ -24,6 +24,8 @@
 
 public class ClipboardUtils {
 
+  private static final String TAG = "ClipboardUtils";
+
   private ClipboardUtils() {}
 
   /**
diff --git a/java/com/android/contacts/common/ContactPhotoManager.java b/java/com/android/contacts/common/ContactPhotoManager.java
index 3e1a78f..169348b 100644
--- a/java/com/android/contacts/common/ContactPhotoManager.java
+++ b/java/com/android/contacts/common/ContactPhotoManager.java
@@ -36,6 +36,14 @@
 /** Asynchronously loads contact photos and maintains a cache of photos. */
 public abstract class ContactPhotoManager implements ComponentCallbacks2 {
 
+  /** Contact type constants used for default letter images */
+  public static final int TYPE_PERSON = LetterTileDrawable.TYPE_PERSON;
+
+  public static final int TYPE_SPAM = LetterTileDrawable.TYPE_SPAM;
+  public static final int TYPE_BUSINESS = LetterTileDrawable.TYPE_BUSINESS;
+  public static final int TYPE_VOICEMAIL = LetterTileDrawable.TYPE_VOICEMAIL;
+  public static final int TYPE_DEFAULT = LetterTileDrawable.TYPE_DEFAULT;
+  public static final int TYPE_GENERIC_AVATAR = LetterTileDrawable.TYPE_GENERIC_AVATAR;
   /** Scale and offset default constants used for default letter images */
   public static final float SCALE_DEFAULT = 1.0f;
 
@@ -80,7 +88,7 @@
       if (!TextUtils.isEmpty(request.identifier)) {
         builder.appendQueryParameter(IDENTIFIER_PARAM_KEY, request.identifier);
       }
-      if (request.contactType != LetterTileDrawable.TYPE_DEFAULT) {
+      if (request.contactType != TYPE_DEFAULT) {
         builder.appendQueryParameter(CONTACT_TYPE_PARAM_KEY, String.valueOf(request.contactType));
       }
       if (request.scale != SCALE_DEFAULT) {
@@ -106,7 +114,7 @@
   public static String appendBusinessContactType(String photoUrl) {
     Uri uri = Uri.parse(photoUrl);
     Builder builder = uri.buildUpon();
-    builder.encodedFragment(String.valueOf(LetterTileDrawable.TYPE_BUSINESS));
+    builder.encodedFragment(String.valueOf(TYPE_BUSINESS));
     return builder.build().toString();
   }
 
@@ -139,7 +147,7 @@
 
     String encodedFragment = photoUri.getEncodedFragment();
     return !TextUtils.isEmpty(encodedFragment)
-        && encodedFragment.equals(String.valueOf(LetterTileDrawable.TYPE_BUSINESS));
+        && encodedFragment.equals(String.valueOf(TYPE_BUSINESS));
   }
 
   protected static DefaultImageRequest getDefaultImageRequestFromUri(Uri uri) {
@@ -370,7 +378,7 @@
      * be returned.
      */
     public static final DefaultImageRequest EMPTY_DEFAULT_BUSINESS_IMAGE_REQUEST =
-        new DefaultImageRequest(null, null, LetterTileDrawable.TYPE_BUSINESS, false);
+        new DefaultImageRequest(null, null, TYPE_BUSINESS, false);
     /**
      * Used to indicate that a circular drawable that represents a contact without any contact
      * details should be returned.
@@ -382,7 +390,7 @@
      * should be returned.
      */
     public static final DefaultImageRequest EMPTY_CIRCULAR_BUSINESS_IMAGE_REQUEST =
-        new DefaultImageRequest(null, null, LetterTileDrawable.TYPE_BUSINESS, true);
+        new DefaultImageRequest(null, null, TYPE_BUSINESS, true);
     /** The contact's display name. The display name is used to */
     public String displayName;
     /**
@@ -395,9 +403,10 @@
     /**
      * The type of this contact. This contact type may be used to decide the kind of image to use in
      * the case where a unique letter cannot be generated from the contact's display name and
-     * identifier.
+     * identifier. See: {@link #TYPE_PERSON} {@link #TYPE_BUSINESS} {@link #TYPE_PERSON} {@link
+     * #TYPE_DEFAULT}
      */
-    public @LetterTileDrawable.ContactType int contactType = LetterTileDrawable.TYPE_DEFAULT;
+    public int contactType = TYPE_DEFAULT;
     /**
      * The amount to scale the letter or bitmap to, as a ratio of its default size (from a range of
      * 0.0f to 2.0f). The default value is 1.0f.
@@ -420,13 +429,7 @@
     public DefaultImageRequest() {}
 
     public DefaultImageRequest(String displayName, String identifier, boolean isCircular) {
-      this(
-          displayName,
-          identifier,
-          LetterTileDrawable.TYPE_DEFAULT,
-          SCALE_DEFAULT,
-          OFFSET_DEFAULT,
-          isCircular);
+      this(displayName, identifier, TYPE_DEFAULT, SCALE_DEFAULT, OFFSET_DEFAULT, isCircular);
     }
 
     public DefaultImageRequest(
diff --git a/java/com/android/contacts/common/ContactPhotoManagerImpl.java b/java/com/android/contacts/common/ContactPhotoManagerImpl.java
index 28ecf34..2e6ff9f 100644
--- a/java/com/android/contacts/common/ContactPhotoManagerImpl.java
+++ b/java/com/android/contacts/common/ContactPhotoManagerImpl.java
@@ -53,9 +53,9 @@
 import android.view.ViewGroup;
 import android.widget.ImageView;
 import com.android.contacts.common.util.BitmapUtil;
+import com.android.contacts.common.util.TrafficStatsTags;
 import com.android.contacts.common.util.UriUtils;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.constants.TrafficStatsTags;
 import com.android.dialer.util.PermissionsUtil;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -634,9 +634,8 @@
           }
           return true;
         }
-      default:
-        return false;
     }
+    return false;
   }
 
   public void ensureLoaderThread() {
diff --git a/java/com/android/contacts/common/ContactStatusUtil.java b/java/com/android/contacts/common/ContactStatusUtil.java
index c5347e7..97d84c8 100644
--- a/java/com/android/contacts/common/ContactStatusUtil.java
+++ b/java/com/android/contacts/common/ContactStatusUtil.java
@@ -23,6 +23,8 @@
 /** Provides static function to get default contact status message. */
 public class ContactStatusUtil {
 
+  private static final String TAG = "ContactStatusUtil";
+
   public static String getStatusString(Context context, int presence) {
     Resources resources = context.getResources();
     switch (presence) {
diff --git a/java/com/android/contacts/common/ContactsUtils.java b/java/com/android/contacts/common/ContactsUtils.java
index 66ccc90..60af44b 100644
--- a/java/com/android/contacts/common/ContactsUtils.java
+++ b/java/com/android/contacts/common/ContactsUtils.java
@@ -16,17 +16,184 @@
 
 package com.android.contacts.common;
 
-import android.provider.ContactsContract.Contacts;
+import android.content.Context;
+import android.content.Intent;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.ContactsContract.CommonDataKinds.Im;
+import android.provider.ContactsContract.DisplayPhoto;
 import android.support.annotation.IntDef;
+import android.text.TextUtils;
+import android.util.Pair;
+import com.android.contacts.common.compat.ContactsCompat;
 import com.android.contacts.common.compat.DirectoryCompat;
+import com.android.contacts.common.model.AccountTypeManager;
+import com.android.contacts.common.model.account.AccountWithDataSet;
+import com.android.contacts.common.model.dataitem.ImDataItem;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
+import java.util.List;
 
 public class ContactsUtils {
 
   // Telecomm related schemes are in CallUtil
+  public static final String SCHEME_IMTO = "imto";
+  public static final String SCHEME_MAILTO = "mailto";
+  public static final String SCHEME_SMSTO = "smsto";
   public static final long USER_TYPE_CURRENT = 0;
   public static final long USER_TYPE_WORK = 1;
+  private static final String TAG = "ContactsUtils";
+  private static final int DEFAULT_THUMBNAIL_SIZE = 96;
+  private static int sThumbnailSize = -1;
+
+  /**
+   * This looks up the provider name defined in ProviderNames from the predefined IM protocol id.
+   * This is used for interacting with the IM application.
+   *
+   * @param protocol the protocol ID
+   * @return the provider name the IM app uses for the given protocol, or null if no provider is
+   *     defined for the given protocol
+   * @hide
+   */
+  public static String lookupProviderNameFromId(int protocol) {
+    switch (protocol) {
+      case Im.PROTOCOL_GOOGLE_TALK:
+        return ProviderNames.GTALK;
+      case Im.PROTOCOL_AIM:
+        return ProviderNames.AIM;
+      case Im.PROTOCOL_MSN:
+        return ProviderNames.MSN;
+      case Im.PROTOCOL_YAHOO:
+        return ProviderNames.YAHOO;
+      case Im.PROTOCOL_ICQ:
+        return ProviderNames.ICQ;
+      case Im.PROTOCOL_JABBER:
+        return ProviderNames.JABBER;
+      case Im.PROTOCOL_SKYPE:
+        return ProviderNames.SKYPE;
+      case Im.PROTOCOL_QQ:
+        return ProviderNames.QQ;
+    }
+    return null;
+  }
+
+  /**
+   * Test if the given {@link CharSequence} contains any graphic characters, first checking {@link
+   * TextUtils#isEmpty(CharSequence)} to handle null.
+   */
+  public static boolean isGraphic(CharSequence str) {
+    return !TextUtils.isEmpty(str) && TextUtils.isGraphic(str);
+  }
+
+  /** Returns true if two objects are considered equal. Two null references are equal here. */
+  public static boolean areObjectsEqual(Object a, Object b) {
+    return a == b || (a != null && a.equals(b));
+  }
+
+  /** Returns true if two {@link Intent}s are both null, or have the same action. */
+  public static final boolean areIntentActionEqual(Intent a, Intent b) {
+    if (a == b) {
+      return true;
+    }
+    if (a == null || b == null) {
+      return false;
+    }
+    return TextUtils.equals(a.getAction(), b.getAction());
+  }
+
+  public static boolean areGroupWritableAccountsAvailable(Context context) {
+    final List<AccountWithDataSet> accounts =
+        AccountTypeManager.getInstance(context).getGroupWritableAccounts();
+    return !accounts.isEmpty();
+  }
+
+  /**
+   * Returns the size (width and height) of thumbnail pictures as configured in the provider. This
+   * can safely be called from the UI thread, as the provider can serve this without performing a
+   * database access
+   */
+  public static int getThumbnailSize(Context context) {
+    if (sThumbnailSize == -1) {
+      final Cursor c =
+          context
+              .getContentResolver()
+              .query(
+                  DisplayPhoto.CONTENT_MAX_DIMENSIONS_URI,
+                  new String[] {DisplayPhoto.THUMBNAIL_MAX_DIM},
+                  null,
+                  null,
+                  null);
+      if (c != null) {
+        try {
+          if (c.moveToFirst()) {
+            sThumbnailSize = c.getInt(0);
+          }
+        } finally {
+          c.close();
+        }
+      }
+    }
+    return sThumbnailSize != -1 ? sThumbnailSize : DEFAULT_THUMBNAIL_SIZE;
+  }
+
+  private static Intent getCustomImIntent(ImDataItem im, int protocol) {
+    String host = im.getCustomProtocol();
+    final String data = im.getData();
+    if (TextUtils.isEmpty(data)) {
+      return null;
+    }
+    if (protocol != Im.PROTOCOL_CUSTOM) {
+      // Try bringing in a well-known host for specific protocols
+      host = ContactsUtils.lookupProviderNameFromId(protocol);
+    }
+    if (TextUtils.isEmpty(host)) {
+      return null;
+    }
+    final String authority = host.toLowerCase();
+    final Uri imUri =
+        new Uri.Builder().scheme(SCHEME_IMTO).authority(authority).appendPath(data).build();
+    final Intent intent = new Intent(Intent.ACTION_SENDTO, imUri);
+    return intent;
+  }
+
+  /**
+   * Returns the proper Intent for an ImDatItem. If available, a secondary intent is stored in the
+   * second Pair slot
+   */
+  public static Pair<Intent, Intent> buildImIntent(Context context, ImDataItem im) {
+    Intent intent = null;
+    Intent secondaryIntent = null;
+    final boolean isEmail = im.isCreatedFromEmail();
+
+    if (!isEmail && !im.isProtocolValid()) {
+      return new Pair<>(null, null);
+    }
+
+    final String data = im.getData();
+    if (TextUtils.isEmpty(data)) {
+      return new Pair<>(null, null);
+    }
+
+    final int protocol = isEmail ? Im.PROTOCOL_GOOGLE_TALK : im.getProtocol();
+
+    if (protocol == Im.PROTOCOL_GOOGLE_TALK) {
+      final int chatCapability = im.getChatCapability();
+      if ((chatCapability & Im.CAPABILITY_HAS_CAMERA) != 0) {
+        intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message"));
+        secondaryIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?call"));
+      } else if ((chatCapability & Im.CAPABILITY_HAS_VOICE) != 0) {
+        // Allow Talking and Texting
+        intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message"));
+        secondaryIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?call"));
+      } else {
+        intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message"));
+      }
+    } else {
+      // Build an IM Intent
+      intent = getCustomImIntent(im, protocol);
+    }
+    return new Pair<>(intent, secondaryIntent);
+  }
 
   /**
    * Determine UserType from directory id and contact id.
@@ -65,13 +232,27 @@
           : USER_TYPE_CURRENT;
     }
     // Only check contact id if directory id is null
-    if (contactId != null && contactId != 0L && Contacts.isEnterpriseContactId(contactId)) {
+    if (contactId != null && contactId != 0L && ContactsCompat.isEnterpriseContactId(contactId)) {
       return USER_TYPE_WORK;
     } else {
       return USER_TYPE_CURRENT;
     }
   }
 
+  // TODO find a proper place for the canonical version of these
+  public interface ProviderNames {
+
+    String YAHOO = "Yahoo";
+    String GTALK = "GTalk";
+    String MSN = "MSN";
+    String ICQ = "ICQ";
+    String AIM = "AIM";
+    String XMPP = "XMPP";
+    String JABBER = "JABBER";
+    String SKYPE = "SKYPE";
+    String QQ = "QQ";
+  }
+
   /**
    * UserType indicates the user type of the contact. If the contact is from Work User (Work Profile
    * in Android Multi-User System), it's {@link #USER_TYPE_WORK}, otherwise, {@link
diff --git a/java/com/android/contacts/common/GeoUtil.java b/java/com/android/contacts/common/GeoUtil.java
new file mode 100644
index 0000000..50b0cd9
--- /dev/null
+++ b/java/com/android/contacts/common/GeoUtil.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.contacts.common;
+
+import android.app.Application;
+import android.content.Context;
+import com.android.contacts.common.location.CountryDetector;
+import com.google.i18n.phonenumbers.NumberParseException;
+import com.google.i18n.phonenumbers.PhoneNumberUtil;
+import com.google.i18n.phonenumbers.Phonenumber;
+import com.google.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder;
+import java.util.Locale;
+
+/** Static methods related to Geo. */
+public class GeoUtil {
+
+  /**
+   * Returns the country code of the country the user is currently in. Before calling this method,
+   * make sure that {@link CountryDetector#initialize(Context)} has already been called in {@link
+   * Application#onCreate()}.
+   *
+   * @return The ISO 3166-1 two letters country code of the country the user is in.
+   */
+  public static String getCurrentCountryIso(Context context) {
+    // The {@link CountryDetector} should never return null so this is safe to return as-is.
+    return CountryDetector.getInstance(context).getCurrentCountryIso();
+  }
+
+  public static String getGeocodedLocationFor(Context context, String phoneNumber) {
+    final PhoneNumberOfflineGeocoder geocoder = PhoneNumberOfflineGeocoder.getInstance();
+    final PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
+    try {
+      final Phonenumber.PhoneNumber structuredPhoneNumber =
+          phoneNumberUtil.parse(phoneNumber, getCurrentCountryIso(context));
+      final Locale locale = context.getResources().getConfiguration().locale;
+      return geocoder.getDescriptionForNumber(structuredPhoneNumber, locale);
+    } catch (NumberParseException e) {
+      return null;
+    }
+  }
+}
diff --git a/java/com/android/contacts/common/MoreContactUtils.java b/java/com/android/contacts/common/MoreContactUtils.java
index 26241b3..028f899 100644
--- a/java/com/android/contacts/common/MoreContactUtils.java
+++ b/java/com/android/contacts/common/MoreContactUtils.java
@@ -16,6 +16,7 @@
 
 package com.android.contacts.common;
 
+import android.content.Context;
 import android.content.Intent;
 import android.graphics.Rect;
 import android.net.Uri;
@@ -23,6 +24,7 @@
 import android.telephony.PhoneNumberUtils;
 import android.text.TextUtils;
 import android.view.View;
+import android.widget.TextView;
 import com.android.contacts.common.model.account.AccountType;
 import com.google.i18n.phonenumbers.NumberParseException;
 import com.google.i18n.phonenumbers.PhoneNumberUtil;
@@ -192,6 +194,40 @@
   }
 
   /**
+   * Returns a header view based on the R.layout.list_separator, where the containing {@link
+   * android.widget.TextView} is set using the given textResourceId.
+   */
+  public static TextView createHeaderView(Context context, int textResourceId) {
+    final TextView textView = (TextView) View.inflate(context, R.layout.list_separator, null);
+    textView.setText(context.getString(textResourceId));
+    return textView;
+  }
+
+  /**
+   * Set the top padding on the header view dynamically, based on whether the header is in the first
+   * row or not.
+   */
+  public static void setHeaderViewBottomPadding(
+      Context context, TextView textView, boolean isFirstRow) {
+    final int topPadding;
+    if (isFirstRow) {
+      topPadding =
+          (int)
+              context
+                  .getResources()
+                  .getDimension(R.dimen.frequently_contacted_title_top_margin_when_first_row);
+    } else {
+      topPadding =
+          (int) context.getResources().getDimension(R.dimen.frequently_contacted_title_top_margin);
+    }
+    textView.setPaddingRelative(
+        textView.getPaddingStart(),
+        topPadding,
+        textView.getPaddingEnd(),
+        textView.getPaddingBottom());
+  }
+
+  /**
    * Returns the intent to launch for the given invitable account type and contact lookup URI. This
    * will return null if the account type is not invitable (i.e. there is no {@link
    * AccountType#getInviteContactActivityClassName()} or {@link
diff --git a/java/com/android/contacts/common/compat/ContactsCompat.java b/java/com/android/contacts/common/compat/ContactsCompat.java
index e0c9b7e..39d0b55 100644
--- a/java/com/android/contacts/common/compat/ContactsCompat.java
+++ b/java/com/android/contacts/common/compat/ContactsCompat.java
@@ -21,6 +21,7 @@
 import android.os.Build.VERSION_CODES;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.Contacts;
+import com.android.dialer.compat.CompatUtils;
 
 /** Compatibility class for {@link ContactsContract.Contacts} */
 public class ContactsCompat {
@@ -28,6 +29,8 @@
   // TODO: Use N APIs
   private static final Uri ENTERPRISE_CONTENT_FILTER_URI =
       Uri.withAppendedPath(Contacts.CONTENT_URI, "filter_enterprise");
+  // Copied from ContactsContract.Contacts#ENTERPRISE_CONTACT_ID_BASE, which is hidden.
+  private static final long ENTERPRISE_CONTACT_ID_BASE = 1000000000;
 
   /** Not instantiable. */
   private ContactsCompat() {}
@@ -38,4 +41,17 @@
     }
     return Contacts.CONTENT_FILTER_URI;
   }
+
+  /**
+   * Return {@code true} if a contact ID is from the contacts provider on the enterprise profile.
+   */
+  public static boolean isEnterpriseContactId(long contactId) {
+    if (CompatUtils.isLollipopCompatible()) {
+      return Contacts.isEnterpriseContactId(contactId);
+    } else {
+      // copied from ContactsContract.Contacts.isEnterpriseContactId
+      return (contactId >= ENTERPRISE_CONTACT_ID_BASE)
+          && (contactId < ContactsContract.Profile.MIN_ID);
+    }
+  }
 }
diff --git a/java/com/android/contacts/common/compat/PhoneAccountCompat.java b/java/com/android/contacts/common/compat/PhoneAccountCompat.java
index aa22c68..6a24ec0 100644
--- a/java/com/android/contacts/common/compat/PhoneAccountCompat.java
+++ b/java/com/android/contacts/common/compat/PhoneAccountCompat.java
@@ -20,10 +20,33 @@
 import android.graphics.drawable.Icon;
 import android.support.annotation.Nullable;
 import android.telecom.PhoneAccount;
+import android.util.Log;
+import com.android.dialer.compat.CompatUtils;
 
 /** Compatiblity class for {@link android.telecom.PhoneAccount} */
 public class PhoneAccountCompat {
 
+  private static final String TAG = PhoneAccountCompat.class.getSimpleName();
+
+  /**
+   * Gets the {@link Icon} associated with the given {@link PhoneAccount}
+   *
+   * @param phoneAccount the PhoneAccount from which to retrieve the Icon
+   * @return the Icon, or null
+   */
+  @Nullable
+  public static Icon getIcon(@Nullable PhoneAccount phoneAccount) {
+    if (phoneAccount == null) {
+      return null;
+    }
+
+    if (CompatUtils.isMarshmallowCompatible()) {
+      return phoneAccount.getIcon();
+    }
+
+    return null;
+  }
+
   /**
    * Builds and returns an icon {@code Drawable} to represent this {@code PhoneAccount} in a user
    * interface.
@@ -38,16 +61,44 @@
     if (phoneAccount == null || context == null) {
       return null;
     }
-    return createIconDrawableMarshmallow(phoneAccount, context);
+
+    if (CompatUtils.isMarshmallowCompatible()) {
+      return createIconDrawableMarshmallow(phoneAccount, context);
+    }
+
+    if (CompatUtils.isLollipopMr1Compatible()) {
+      return createIconDrawableLollipopMr1(phoneAccount, context);
+    }
+    return null;
   }
 
   @Nullable
   private static Drawable createIconDrawableMarshmallow(
       PhoneAccount phoneAccount, Context context) {
-    Icon accountIcon = phoneAccount.getIcon();
+    Icon accountIcon = getIcon(phoneAccount);
     if (accountIcon == null) {
       return null;
     }
     return accountIcon.loadDrawable(context);
   }
+
+  @Nullable
+  private static Drawable createIconDrawableLollipopMr1(
+      PhoneAccount phoneAccount, Context context) {
+    try {
+      return (Drawable)
+          PhoneAccount.class
+              .getMethod("createIconDrawable", Context.class)
+              .invoke(phoneAccount, context);
+    } catch (ReflectiveOperationException e) {
+      return null;
+    } catch (Throwable t) {
+      Log.e(
+          TAG,
+          "Unexpected exception when attempting to call "
+              + "android.telecom.PhoneAccount#createIconDrawable",
+          t);
+      return null;
+    }
+  }
 }
diff --git a/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java b/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java
index a6cfe07..960b340 100644
--- a/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java
+++ b/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java
@@ -17,7 +17,13 @@
 package com.android.contacts.common.compat;
 
 import android.telephony.PhoneNumberUtils;
+import android.text.Spannable;
+import android.text.TextUtils;
 import android.text.style.TtsSpan;
+import com.android.dialer.compat.CompatUtils;
+import com.google.i18n.phonenumbers.NumberParseException;
+import com.google.i18n.phonenumbers.PhoneNumberUtil;
+import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;
 
 /**
  * This class contains static utility methods extracted from PhoneNumberUtils, and the methods were
@@ -31,16 +37,138 @@
   /** Not instantiable. */
   private PhoneNumberUtilsCompat() {}
 
+  public static String normalizeNumber(String phoneNumber) {
+    if (CompatUtils.isLollipopCompatible()) {
+      return PhoneNumberUtils.normalizeNumber(phoneNumber);
+    } else {
+      return normalizeNumberInternal(phoneNumber);
+    }
+  }
+
+  /** Implementation copied from {@link PhoneNumberUtils#normalizeNumber} */
+  private static String normalizeNumberInternal(String phoneNumber) {
+    if (TextUtils.isEmpty(phoneNumber)) {
+      return "";
+    }
+    StringBuilder sb = new StringBuilder();
+    int len = phoneNumber.length();
+    for (int i = 0; i < len; i++) {
+      char c = phoneNumber.charAt(i);
+      // Character.digit() supports ASCII and Unicode digits (fullwidth, Arabic-Indic, etc.)
+      int digit = Character.digit(c, 10);
+      if (digit != -1) {
+        sb.append(digit);
+      } else if (sb.length() == 0 && c == '+') {
+        sb.append(c);
+      } else if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
+        return normalizeNumber(PhoneNumberUtils.convertKeypadLettersToDigits(phoneNumber));
+      }
+    }
+    return sb.toString();
+  }
+
   public static String formatNumber(
       String phoneNumber, String phoneNumberE164, String defaultCountryIso) {
+    if (CompatUtils.isLollipopCompatible()) {
       return PhoneNumberUtils.formatNumber(phoneNumber, phoneNumberE164, defaultCountryIso);
+    } else {
+      // This method was deprecated in API level 21, so it's only used on pre-L SDKs.
+      return PhoneNumberUtils.formatNumber(phoneNumber);
+    }
   }
 
   public static CharSequence createTtsSpannable(CharSequence phoneNumber) {
-    return PhoneNumberUtils.createTtsSpannable(phoneNumber);
+    if (CompatUtils.isMarshmallowCompatible()) {
+      return PhoneNumberUtils.createTtsSpannable(phoneNumber);
+    } else {
+      return createTtsSpannableInternal(phoneNumber);
+    }
   }
 
   public static TtsSpan createTtsSpan(String phoneNumber) {
-    return PhoneNumberUtils.createTtsSpan(phoneNumber);
+    if (CompatUtils.isMarshmallowCompatible()) {
+      return PhoneNumberUtils.createTtsSpan(phoneNumber);
+    } else if (CompatUtils.isLollipopCompatible()) {
+      return createTtsSpanLollipop(phoneNumber);
+    } else {
+      return null;
+    }
+  }
+
+  /** Copied from {@link PhoneNumberUtils#createTtsSpannable} */
+  private static CharSequence createTtsSpannableInternal(CharSequence phoneNumber) {
+    if (phoneNumber == null) {
+      return null;
+    }
+    Spannable spannable = Spannable.Factory.getInstance().newSpannable(phoneNumber);
+    addTtsSpanInternal(spannable, 0, spannable.length());
+    return spannable;
+  }
+
+  /** Compat method for addTtsSpan, see {@link PhoneNumberUtils#addTtsSpan} */
+  public static void addTtsSpan(Spannable s, int start, int endExclusive) {
+    if (CompatUtils.isMarshmallowCompatible()) {
+      PhoneNumberUtils.addTtsSpan(s, start, endExclusive);
+    } else {
+      addTtsSpanInternal(s, start, endExclusive);
+    }
+  }
+
+  /** Copied from {@link PhoneNumberUtils#addTtsSpan} */
+  private static void addTtsSpanInternal(Spannable s, int start, int endExclusive) {
+    s.setSpan(
+        createTtsSpan(s.subSequence(start, endExclusive).toString()),
+        start,
+        endExclusive,
+        Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+  }
+
+  /** Copied from {@link PhoneNumberUtils#createTtsSpan} */
+  private static TtsSpan createTtsSpanLollipop(String phoneNumberString) {
+    if (phoneNumberString == null) {
+      return null;
+    }
+
+    // Parse the phone number
+    final PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
+    PhoneNumber phoneNumber = null;
+    try {
+      // Don't supply a defaultRegion so this fails for non-international numbers because
+      // we don't want to TalkBalk to read a country code (e.g. +1) if it is not already
+      // present
+      phoneNumber = phoneNumberUtil.parse(phoneNumberString, /* defaultRegion */ null);
+    } catch (NumberParseException ignored) {
+    }
+
+    // Build a telephone tts span
+    final TtsSpan.TelephoneBuilder builder = new TtsSpan.TelephoneBuilder();
+    if (phoneNumber == null) {
+      // Strip separators otherwise TalkBack will be silent
+      // (this behavior was observed with TalkBalk 4.0.2 from their alpha channel)
+      builder.setNumberParts(splitAtNonNumerics(phoneNumberString));
+    } else {
+      if (phoneNumber.hasCountryCode()) {
+        builder.setCountryCode(Integer.toString(phoneNumber.getCountryCode()));
+      }
+      builder.setNumberParts(Long.toString(phoneNumber.getNationalNumber()));
+    }
+    return builder.build();
+  }
+
+  /**
+   * Split a phone number using spaces, ignoring anything that is not a digit
+   *
+   * @param number A {@code CharSequence} before splitting, e.g., "+20(123)-456#"
+   * @return A {@code String} after splitting, e.g., "20 123 456".
+   */
+  private static String splitAtNonNumerics(CharSequence number) {
+    StringBuilder sb = new StringBuilder(number.length());
+    for (int i = 0; i < number.length(); i++) {
+      sb.append(PhoneNumberUtils.isISODigit(number.charAt(i)) ? number.charAt(i) : " ");
+    }
+    // It is very important to remove extra spaces. At time of writing, any leading or trailing
+    // spaces, or any sequence of more than one space, will confuse TalkBack and cause the TTS
+    // span to be non-functional!
+    return sb.toString().replaceAll(" +", " ").trim();
   }
 }
diff --git a/java/com/android/contacts/common/compat/TelephonyManagerCompat.java b/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
index 4a16fb8..7e4803c 100644
--- a/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
+++ b/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
@@ -27,6 +27,7 @@
 import android.telephony.TelephonyManager;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.compat.CompatUtils;
 import java.lang.reflect.InvocationTargetException;
 
 public class TelephonyManagerCompat {
@@ -48,6 +49,31 @@
   private static final String SECRET_CODE_ACTION = "android.provider.Telephony.SECRET_CODE";
 
   /**
+   * @param telephonyManager The telephony manager instance to use for method calls.
+   * @return true if the current device is "voice capable".
+   *     <p>"Voice capable" means that this device supports circuit-switched (i.e. voice) phone
+   *     calls over the telephony network, and is allowed to display the in-call UI while a cellular
+   *     voice call is active. This will be false on "data only" devices which can't make voice
+   *     calls and don't support any in-call UI.
+   *     <p>Note: the meaning of this flag is subtly different from the
+   *     PackageManager.FEATURE_TELEPHONY system feature, which is available on any device with a
+   *     telephony radio, even if the device is data-only.
+   */
+  public static boolean isVoiceCapable(@Nullable TelephonyManager telephonyManager) {
+    if (telephonyManager == null) {
+      return false;
+    }
+    if (CompatUtils.isLollipopMr1Compatible()
+        || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "isVoiceCapable")) {
+      // isVoiceCapable was unhidden in L-MR1
+      return telephonyManager.isVoiceCapable();
+    }
+    final int phoneType = telephonyManager.getPhoneType();
+    return phoneType == TelephonyManager.PHONE_TYPE_CDMA
+        || phoneType == TelephonyManager.PHONE_TYPE_GSM;
+  }
+
+  /**
    * Returns the number of phones available. Returns 1 for Single standby mode (Single SIM
    * functionality) Returns 2 for Dual standby mode.(Dual SIM functionality)
    *
@@ -59,7 +85,31 @@
     if (telephonyManager == null) {
       return 1;
     }
-    return telephonyManager.getPhoneCount();
+    if (CompatUtils.isMarshmallowCompatible()
+        || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "getPhoneCount")) {
+      return telephonyManager.getPhoneCount();
+    }
+    return 1;
+  }
+
+  /**
+   * Returns the unique device ID of a subscription, for example, the IMEI for GSM and the MEID for
+   * CDMA phones. Return null if device ID is not available.
+   *
+   * <p>Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
+   *
+   * @param telephonyManager The telephony manager instance to use for method calls.
+   * @param slotId of which deviceID is returned
+   */
+  public static String getDeviceId(@Nullable TelephonyManager telephonyManager, int slotId) {
+    if (telephonyManager == null) {
+      return null;
+    }
+    if (CompatUtils.isMarshmallowCompatible()
+        || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "getDeviceId", Integer.class)) {
+      return telephonyManager.getDeviceId(slotId);
+    }
+    return null;
   }
 
   /**
@@ -69,7 +119,14 @@
    * @return {@code true} if the device supports TTY mode, and {@code false} otherwise.
    */
   public static boolean isTtyModeSupported(@Nullable TelephonyManager telephonyManager) {
-    return telephonyManager != null && telephonyManager.isTtyModeSupported();
+    if (telephonyManager == null) {
+      return false;
+    }
+    if (CompatUtils.isMarshmallowCompatible()
+        || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "isTtyModeSupported")) {
+      return telephonyManager.isTtyModeSupported();
+    }
+    return false;
   }
 
   /**
@@ -81,7 +138,15 @@
    */
   public static boolean isHearingAidCompatibilitySupported(
       @Nullable TelephonyManager telephonyManager) {
-    return telephonyManager != null && telephonyManager.isHearingAidCompatibilitySupported();
+    if (telephonyManager == null) {
+      return false;
+    }
+    if (CompatUtils.isMarshmallowCompatible()
+        || CompatUtils.isMethodAvailable(
+            TELEPHONY_MANAGER_CLASS, "isHearingAidCompatibilitySupported")) {
+      return telephonyManager.isHearingAidCompatibilitySupported();
+    }
+    return false;
   }
 
   /**
diff --git a/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java b/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java
index 43eae58..5687f6f 100644
--- a/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java
+++ b/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java
@@ -15,19 +15,275 @@
  */
 package com.android.contacts.common.compat.telecom;
 
+import android.app.Activity;
+import android.content.Intent;
+import android.net.Uri;
 import android.support.annotation.Nullable;
+import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
+import android.telephony.PhoneNumberUtils;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+import com.android.dialer.compat.CompatUtils;
+import java.util.ArrayList;
+import java.util.List;
 
 /** Compatibility class for {@link android.telecom.TelecomManager}. */
 public class TelecomManagerCompat {
 
+  public static final String TELECOM_MANAGER_CLASS = "android.telecom.TelecomManager";
+
   // TODO: remove once this is available in android.telecom.Call
   // b/33779976
   public static final String EXTRA_LAST_EMERGENCY_CALLBACK_TIME_MILLIS =
       "android.telecom.extra.LAST_EMERGENCY_CALLBACK_TIME_MILLIS";
 
   /**
+   * Places a new outgoing call to the provided address using the system telecom service with the
+   * specified intent.
+   *
+   * @param activity {@link Activity} used to start another activity for the given intent
+   * @param telecomManager the {@link TelecomManager} used to place a call, if possible
+   * @param intent the intent for the call
+   */
+  public static void placeCall(
+      @Nullable Activity activity,
+      @Nullable TelecomManager telecomManager,
+      @Nullable Intent intent) {
+    if (activity == null || telecomManager == null || intent == null) {
+      return;
+    }
+    if (CompatUtils.isMarshmallowCompatible()) {
+      telecomManager.placeCall(intent.getData(), intent.getExtras());
+      return;
+    }
+    activity.startActivityForResult(intent, 0);
+  }
+
+  /**
+   * Get the URI for running an adn query.
+   *
+   * @param telecomManager the {@link TelecomManager} used for method calls, if possible.
+   * @param accountHandle The handle for the account to derive an adn query URI for or {@code null}
+   *     to return a URI which will use the default account.
+   * @return The URI (with the content:// scheme) specific to the specified {@link PhoneAccount} for
+   *     the the content retrieve.
+   */
+  public static Uri getAdnUriForPhoneAccount(
+      @Nullable TelecomManager telecomManager, PhoneAccountHandle accountHandle) {
+    if (telecomManager != null
+        && (CompatUtils.isMarshmallowCompatible()
+            || CompatUtils.isMethodAvailable(
+                TELECOM_MANAGER_CLASS, "getAdnUriForPhoneAccount", PhoneAccountHandle.class))) {
+      return telecomManager.getAdnUriForPhoneAccount(accountHandle);
+    }
+    return Uri.parse("content://icc/adn");
+  }
+
+  /**
+   * Returns a list of {@link PhoneAccountHandle}s which can be used to make and receive phone
+   * calls. The returned list includes only those accounts which have been explicitly enabled by the
+   * user.
+   *
+   * @param telecomManager the {@link TelecomManager} used for method calls, if possible.
+   * @return A list of PhoneAccountHandle objects.
+   */
+  public static List<PhoneAccountHandle> getCallCapablePhoneAccounts(
+      @Nullable TelecomManager telecomManager) {
+    if (telecomManager != null
+        && (CompatUtils.isMarshmallowCompatible()
+            || CompatUtils.isMethodAvailable(
+                TELECOM_MANAGER_CLASS, "getCallCapablePhoneAccounts"))) {
+      return telecomManager.getCallCapablePhoneAccounts();
+    }
+    return new ArrayList<>();
+  }
+
+  /**
+   * Used to determine the currently selected default dialer package.
+   *
+   * @param telecomManager the {@link TelecomManager} used for method calls, if possible.
+   * @return package name for the default dialer package or null if no package has been selected as
+   *     the default dialer.
+   */
+  @Nullable
+  public static String getDefaultDialerPackage(@Nullable TelecomManager telecomManager) {
+    if (telecomManager != null && CompatUtils.isDefaultDialerCompatible()) {
+      return telecomManager.getDefaultDialerPackage();
+    }
+    return null;
+  }
+
+  /**
+   * Return the {@link PhoneAccount} which will be used to place outgoing calls to addresses with
+   * the specified {@code uriScheme}. This PhoneAccount will always be a member of the list which is
+   * returned from invoking {@link TelecomManager#getCallCapablePhoneAccounts()}. The specific
+   * account returned depends on the following priorities:
+   *
+   * <p>1. If the user-selected default PhoneAccount supports the specified scheme, it will be
+   * returned. 2. If there exists only one PhoneAccount that supports the specified scheme, it will
+   * be returned.
+   *
+   * <p>If no PhoneAccount fits the criteria above, this method will return {@code null}.
+   *
+   * @param telecomManager the {@link TelecomManager} used for method calls, if possible.
+   * @param uriScheme The URI scheme.
+   * @return The {@link PhoneAccountHandle} corresponding to the account to be used.
+   */
+  @Nullable
+  public static PhoneAccountHandle getDefaultOutgoingPhoneAccount(
+      @Nullable TelecomManager telecomManager, @Nullable String uriScheme) {
+    if (telecomManager != null
+        && (CompatUtils.isMarshmallowCompatible()
+            || CompatUtils.isMethodAvailable(
+                TELECOM_MANAGER_CLASS, "getDefaultOutgoingPhoneAccount", String.class))) {
+      return telecomManager.getDefaultOutgoingPhoneAccount(uriScheme);
+    }
+    return null;
+  }
+
+  /**
+   * Return the line 1 phone number for given phone account.
+   *
+   * @param telecomManager the {@link TelecomManager} to use in the event that {@link
+   *     TelecomManager#getLine1Number(PhoneAccountHandle)} is available
+   * @param telephonyManager the {@link TelephonyManager} to use if TelecomManager#getLine1Number is
+   *     unavailable
+   * @param phoneAccountHandle the phoneAccountHandle upon which to check the line one number
+   * @return the line one number
+   */
+  @Nullable
+  public static String getLine1Number(
+      @Nullable TelecomManager telecomManager,
+      @Nullable TelephonyManager telephonyManager,
+      @Nullable PhoneAccountHandle phoneAccountHandle) {
+    if (telecomManager != null && CompatUtils.isMarshmallowCompatible()) {
+      return telecomManager.getLine1Number(phoneAccountHandle);
+    }
+    if (telephonyManager != null) {
+      return telephonyManager.getLine1Number();
+    }
+    return null;
+  }
+
+  /**
+   * Return whether a given phone number is the configured voicemail number for a particular phone
+   * account.
+   *
+   * @param telecomManager the {@link TelecomManager} to use for checking the number.
+   * @param accountHandle The handle for the account to check the voicemail number against
+   * @param number The number to look up.
+   */
+  public static boolean isVoiceMailNumber(
+      @Nullable TelecomManager telecomManager,
+      @Nullable PhoneAccountHandle accountHandle,
+      @Nullable String number) {
+    if (telecomManager != null
+        && (CompatUtils.isMarshmallowCompatible()
+            || CompatUtils.isMethodAvailable(
+                TELECOM_MANAGER_CLASS,
+                "isVoiceMailNumber",
+                PhoneAccountHandle.class,
+                String.class))) {
+      return telecomManager.isVoiceMailNumber(accountHandle, number);
+    }
+    return PhoneNumberUtils.isVoiceMailNumber(number);
+  }
+
+  /**
+   * Return the {@link PhoneAccount} for a specified {@link PhoneAccountHandle}. Object includes
+   * resources which can be used in a user interface.
+   *
+   * @param telecomManager the {@link TelecomManager} used for method calls, if possible.
+   * @param account The {@link PhoneAccountHandle}.
+   * @return The {@link PhoneAccount} object or null if it doesn't exist.
+   */
+  @Nullable
+  public static PhoneAccount getPhoneAccount(
+      @Nullable TelecomManager telecomManager, @Nullable PhoneAccountHandle accountHandle) {
+    if (telecomManager != null
+        && (CompatUtils.isMethodAvailable(
+            TELECOM_MANAGER_CLASS, "getPhoneAccount", PhoneAccountHandle.class))) {
+      return telecomManager.getPhoneAccount(accountHandle);
+    }
+    return null;
+  }
+
+  /**
+   * Return the voicemail number for a given phone account.
+   *
+   * @param telecomManager The {@link TelecomManager} object to use for retrieving the voicemail
+   *     number if accountHandle is specified.
+   * @param telephonyManager The {@link TelephonyManager} object to use for retrieving the voicemail
+   *     number if accountHandle is null.
+   * @param accountHandle The handle for the phone account.
+   * @return The voicemail number for the phone account, and {@code null} if one has not been
+   *     configured.
+   */
+  @Nullable
+  public static String getVoiceMailNumber(
+      @Nullable TelecomManager telecomManager,
+      @Nullable TelephonyManager telephonyManager,
+      @Nullable PhoneAccountHandle accountHandle) {
+    if (telecomManager != null
+        && (CompatUtils.isMethodAvailable(
+            TELECOM_MANAGER_CLASS, "getVoiceMailNumber", PhoneAccountHandle.class))) {
+      return telecomManager.getVoiceMailNumber(accountHandle);
+    } else if (telephonyManager != null) {
+      return telephonyManager.getVoiceMailNumber();
+    }
+    return null;
+  }
+
+  /**
+   * Processes the specified dial string as an MMI code. MMI codes are any sequence of characters
+   * entered into the dialpad that contain a "*" or "#". Some of these sequences launch special
+   * behavior through handled by Telephony.
+   *
+   * @param telecomManager The {@link TelecomManager} object to use for handling MMI.
+   * @param dialString The digits to dial.
+   * @return {@code true} if the digits were processed as an MMI code, {@code false} otherwise.
+   */
+  public static boolean handleMmi(
+      @Nullable TelecomManager telecomManager,
+      @Nullable String dialString,
+      @Nullable PhoneAccountHandle accountHandle) {
+    if (telecomManager == null || TextUtils.isEmpty(dialString)) {
+      return false;
+    }
+    if (CompatUtils.isMarshmallowCompatible()) {
+      return telecomManager.handleMmi(dialString, accountHandle);
+    }
+
+    Object handleMmiResult =
+        CompatUtils.invokeMethod(
+            telecomManager,
+            "handleMmi",
+            new Class<?>[] {PhoneAccountHandle.class, String.class},
+            new Object[] {accountHandle, dialString});
+    if (handleMmiResult != null) {
+      return (boolean) handleMmiResult;
+    }
+
+    return telecomManager.handleMmi(dialString);
+  }
+
+  /**
+   * Silences the ringer if a ringing call exists. Noop if {@link TelecomManager#silenceRinger()} is
+   * unavailable.
+   *
+   * @param telecomManager the TelecomManager to use to silence the ringer.
+   */
+  public static void silenceRinger(@Nullable TelecomManager telecomManager) {
+    if (telecomManager != null
+        && (CompatUtils.isMarshmallowCompatible()
+            || CompatUtils.isMethodAvailable(TELECOM_MANAGER_CLASS, "silenceRinger"))) {
+      telecomManager.silenceRinger();
+    }
+  }
+
+  /**
    * Returns the current SIM call manager. Apps must be prepared for this method to return null,
    * indicating that there currently exists no registered SIM call manager.
    *
@@ -36,7 +292,9 @@
    */
   @Nullable
   public static PhoneAccountHandle getSimCallManager(TelecomManager telecomManager) {
-    if (telecomManager != null) {
+    if (telecomManager != null
+        && (CompatUtils.isMarshmallowCompatible()
+            || CompatUtils.isMethodAvailable(TELECOM_MANAGER_CLASS, "getSimCallManager"))) {
       return telecomManager.getSimCallManager();
     }
     return null;
diff --git a/java/com/android/contacts/common/dialog/CallSubjectDialog.java b/java/com/android/contacts/common/dialog/CallSubjectDialog.java
index 88fac02..0e79371 100644
--- a/java/com/android/contacts/common/dialog/CallSubjectDialog.java
+++ b/java/com/android/contacts/common/dialog/CallSubjectDialog.java
@@ -45,7 +45,7 @@
 import android.widget.TextView;
 import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.R;
-import com.android.contacts.common.lettertiles.LetterTileDrawable;
+import com.android.contacts.common.compat.telecom.TelecomManagerCompat;
 import com.android.dialer.animation.AnimUtils;
 import com.android.dialer.callintent.CallInitiationType;
 import com.android.dialer.callintent.CallIntentBuilder;
@@ -154,7 +154,11 @@
                   .setCallSubject(subject)
                   .build();
 
-          getSystemService(TelecomManager.class).placeCall(intent.getData(), intent.getExtras());
+          TelecomManagerCompat.placeCall(
+              CallSubjectDialog.this,
+              (TelecomManager) getSystemService(Context.TELECOM_SERVICE),
+              intent);
+
           mSubjectHistory.add(subject);
           saveSubjectHistory(mSubjectHistory);
           finish();
@@ -198,7 +202,7 @@
         number /* number */,
         null /* displayNumber */,
         null /* numberLabel */,
-        LetterTileDrawable.TYPE_DEFAULT,
+        ContactPhotoManager.TYPE_DEFAULT,
         null /* phoneAccountHandle */);
   }
 
@@ -352,7 +356,7 @@
     mNumber = arguments.getString(ARG_NUMBER);
     mDisplayNumber = arguments.getString(ARG_DISPLAY_NUMBER);
     mNumberLabel = arguments.getString(ARG_NUMBER_LABEL);
-    mContactType = arguments.getInt(ARG_CONTACT_TYPE, LetterTileDrawable.TYPE_DEFAULT);
+    mContactType = arguments.getInt(ARG_CONTACT_TYPE, ContactPhotoManager.TYPE_DEFAULT);
     mPhoneAccountHandle = arguments.getParcelable(ARG_PHONE_ACCOUNT_HANDLE);
   }
 
diff --git a/java/com/android/contacts/common/format/FormatUtils.java b/java/com/android/contacts/common/format/FormatUtils.java
new file mode 100644
index 0000000..727c15b
--- /dev/null
+++ b/java/com/android/contacts/common/format/FormatUtils.java
@@ -0,0 +1,181 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.contacts.common.format;
+
+import android.database.CharArrayBuffer;
+import android.graphics.Typeface;
+import android.support.annotation.VisibleForTesting;
+import android.text.SpannableString;
+import android.text.style.StyleSpan;
+import java.util.Arrays;
+
+/** Assorted utility methods related to text formatting in Contacts. */
+public class FormatUtils {
+
+  /**
+   * Finds the earliest point in buffer1 at which the first part of buffer2 matches. For example,
+   * overlapPoint("abcd", "cdef") == 2.
+   */
+  public static int overlapPoint(CharArrayBuffer buffer1, CharArrayBuffer buffer2) {
+    if (buffer1 == null || buffer2 == null) {
+      return -1;
+    }
+    return overlapPoint(
+        Arrays.copyOfRange(buffer1.data, 0, buffer1.sizeCopied),
+        Arrays.copyOfRange(buffer2.data, 0, buffer2.sizeCopied));
+  }
+
+  /**
+   * Finds the earliest point in string1 at which the first part of string2 matches. For example,
+   * overlapPoint("abcd", "cdef") == 2.
+   */
+  @VisibleForTesting
+  public static int overlapPoint(String string1, String string2) {
+    if (string1 == null || string2 == null) {
+      return -1;
+    }
+    return overlapPoint(string1.toCharArray(), string2.toCharArray());
+  }
+
+  /**
+   * Finds the earliest point in array1 at which the first part of array2 matches. For example,
+   * overlapPoint("abcd", "cdef") == 2.
+   */
+  public static int overlapPoint(char[] array1, char[] array2) {
+    if (array1 == null || array2 == null) {
+      return -1;
+    }
+    int count1 = array1.length;
+    int count2 = array2.length;
+
+    // Ignore matching tails of the two arrays.
+    while (count1 > 0 && count2 > 0 && array1[count1 - 1] == array2[count2 - 1]) {
+      count1--;
+      count2--;
+    }
+
+    int size = count2;
+    for (int i = 0; i < count1; i++) {
+      if (i + size > count1) {
+        size = count1 - i;
+      }
+      int j;
+      for (j = 0; j < size; j++) {
+        if (array1[i + j] != array2[j]) {
+          break;
+        }
+      }
+      if (j == size) {
+        return i;
+      }
+    }
+
+    return -1;
+  }
+
+  /**
+   * Applies the given style to a range of the input CharSequence.
+   *
+   * @param style The style to apply (see the style constants in {@link Typeface}).
+   * @param input The CharSequence to style.
+   * @param start Starting index of the range to style (will be clamped to be a minimum of 0).
+   * @param end Ending index of the range to style (will be clamped to a maximum of the input
+   *     length).
+   * @param flags Bitmask for configuring behavior of the span. See {@link android.text.Spanned}.
+   * @return The styled CharSequence.
+   */
+  public static CharSequence applyStyleToSpan(
+      int style, CharSequence input, int start, int end, int flags) {
+    // Enforce bounds of the char sequence.
+    start = Math.max(0, start);
+    end = Math.min(input.length(), end);
+    SpannableString text = new SpannableString(input);
+    text.setSpan(new StyleSpan(style), start, end, flags);
+    return text;
+  }
+
+  @VisibleForTesting
+  public static void copyToCharArrayBuffer(String text, CharArrayBuffer buffer) {
+    if (text != null) {
+      char[] data = buffer.data;
+      if (data == null || data.length < text.length()) {
+        buffer.data = text.toCharArray();
+      } else {
+        text.getChars(0, text.length(), data, 0);
+      }
+      buffer.sizeCopied = text.length();
+    } else {
+      buffer.sizeCopied = 0;
+    }
+  }
+
+  /** Returns a String that represents the content of the given {@link CharArrayBuffer}. */
+  @VisibleForTesting
+  public static String charArrayBufferToString(CharArrayBuffer buffer) {
+    return new String(buffer.data, 0, buffer.sizeCopied);
+  }
+
+  /**
+   * Finds the index of the first word that starts with the given prefix.
+   *
+   * <p>If not found, returns -1.
+   *
+   * @param text the text in which to search for the prefix
+   * @param prefix the text to find, in upper case letters
+   */
+  public static int indexOfWordPrefix(CharSequence text, String prefix) {
+    if (prefix == null || text == null) {
+      return -1;
+    }
+
+    int textLength = text.length();
+    int prefixLength = prefix.length();
+
+    if (prefixLength == 0 || textLength < prefixLength) {
+      return -1;
+    }
+
+    int i = 0;
+    while (i < textLength) {
+      // Skip non-word characters
+      while (i < textLength && !Character.isLetterOrDigit(text.charAt(i))) {
+        i++;
+      }
+
+      if (i + prefixLength > textLength) {
+        return -1;
+      }
+
+      // Compare the prefixes
+      int j;
+      for (j = 0; j < prefixLength; j++) {
+        if (Character.toUpperCase(text.charAt(i + j)) != prefix.charAt(j)) {
+          break;
+        }
+      }
+      if (j == prefixLength) {
+        return i;
+      }
+
+      // Skip this word
+      while (i < textLength && Character.isLetterOrDigit(text.charAt(i))) {
+        i++;
+      }
+    }
+
+    return -1;
+  }
+}
diff --git a/java/com/android/contacts/common/format/TextHighlighter.java b/java/com/android/contacts/common/format/TextHighlighter.java
index f397f04..30c03fd 100644
--- a/java/com/android/contacts/common/format/TextHighlighter.java
+++ b/java/com/android/contacts/common/format/TextHighlighter.java
@@ -24,6 +24,8 @@
 /** Highlights the text in a text field. */
 public class TextHighlighter {
 
+  private static final boolean DEBUG = false;
+  private final String TAG = TextHighlighter.class.getSimpleName();
   private int mTextStyle;
 
   private CharacterStyle mTextStyleSpan;
@@ -79,7 +81,7 @@
     }
     final String trimmedPrefix = prefix.substring(prefixStart);
 
-    int index = indexOfWordPrefix(text, trimmedPrefix);
+    int index = FormatUtils.indexOfWordPrefix(text, trimmedPrefix);
     if (index != -1) {
       final SpannableString result = new SpannableString(text);
       result.setSpan(mTextStyleSpan, index, index + trimmedPrefix.length(), 0 /* flags */);
@@ -88,55 +90,4 @@
       return text;
     }
   }
-
-  /**
-   * Finds the index of the first word that starts with the given prefix.
-   *
-   * <p>If not found, returns -1.
-   *
-   * @param text the text in which to search for the prefix
-   * @param prefix the text to find, in upper case letters
-   */
-  public static int indexOfWordPrefix(CharSequence text, String prefix) {
-    if (prefix == null || text == null) {
-      return -1;
-    }
-
-    int textLength = text.length();
-    int prefixLength = prefix.length();
-
-    if (prefixLength == 0 || textLength < prefixLength) {
-      return -1;
-    }
-
-    int i = 0;
-    while (i < textLength) {
-      // Skip non-word characters
-      while (i < textLength && !Character.isLetterOrDigit(text.charAt(i))) {
-        i++;
-      }
-
-      if (i + prefixLength > textLength) {
-        return -1;
-      }
-
-      // Compare the prefixes
-      int j;
-      for (j = 0; j < prefixLength; j++) {
-        if (Character.toUpperCase(text.charAt(i + j)) != prefix.charAt(j)) {
-          break;
-        }
-      }
-      if (j == prefixLength) {
-        return i;
-      }
-
-      // Skip this word
-      while (i < textLength && Character.isLetterOrDigit(text.charAt(i))) {
-        i++;
-      }
-    }
-
-    return -1;
-  }
 }
diff --git a/java/com/android/contacts/common/format/testing/SpannedTestUtils.java b/java/com/android/contacts/common/format/testing/SpannedTestUtils.java
new file mode 100644
index 0000000..293d9d5
--- /dev/null
+++ b/java/com/android/contacts/common/format/testing/SpannedTestUtils.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.contacts.common.format.testing;
+
+import android.test.suitebuilder.annotation.SmallTest;
+import android.text.Html;
+import android.text.SpannableString;
+import android.text.Spanned;
+import android.text.TextUtils;
+import android.text.style.StyleSpan;
+import android.widget.TextView;
+import junit.framework.Assert;
+
+/** Utility class to check the value of spanned text in text views. */
+@SmallTest
+public class SpannedTestUtils {
+
+  /**
+   * Checks that the text contained in the text view matches the given HTML text.
+   *
+   * @param expectedHtmlText the expected text to be in the text view
+   * @param textView the text view from which to get the text
+   */
+  public static void checkHtmlText(String expectedHtmlText, TextView textView) {
+    String actualHtmlText = Html.toHtml((Spanned) textView.getText());
+    if (TextUtils.isEmpty(expectedHtmlText)) {
+      // If the text is empty, it does not add the <p></p> bits to it.
+      Assert.assertEquals("", actualHtmlText);
+    } else {
+      Assert.assertEquals("<p dir=ltr>" + expectedHtmlText + "</p>\n", actualHtmlText);
+    }
+  }
+
+  /**
+   * Assert span exists in the correct location.
+   *
+   * @param seq The spannable string to check.
+   * @param start The starting index.
+   * @param end The ending index.
+   */
+  public static void assertPrefixSpan(CharSequence seq, int start, int end) {
+    Assert.assertTrue(seq instanceof Spanned);
+    Spanned spannable = (Spanned) seq;
+
+    if (start > 0) {
+      Assert.assertEquals(0, getNumForegroundColorSpansBetween(spannable, 0, start - 1));
+    }
+    Assert.assertEquals(1, getNumForegroundColorSpansBetween(spannable, start, end));
+    Assert.assertEquals(
+        0, getNumForegroundColorSpansBetween(spannable, end + 1, spannable.length() - 1));
+  }
+
+  private static int getNumForegroundColorSpansBetween(Spanned value, int start, int end) {
+    return value.getSpans(start, end, StyleSpan.class).length;
+  }
+
+  /**
+   * Asserts that the given character sequence is not a Spanned object and text is correct.
+   *
+   * @param seq The sequence to check.
+   * @param expected The expected text.
+   */
+  public static void assertNotSpanned(CharSequence seq, String expected) {
+    Assert.assertFalse(seq instanceof Spanned);
+    Assert.assertEquals(expected, seq);
+  }
+
+  public static int getNextTransition(SpannableString seq, int start) {
+    return seq.nextSpanTransition(start, seq.length(), StyleSpan.class);
+  }
+}
diff --git a/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java b/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java
index 5e77b69..88522c4 100644
--- a/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java
+++ b/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java
@@ -30,10 +30,8 @@
 import android.graphics.drawable.Drawable;
 import android.support.annotation.IntDef;
 import android.support.annotation.Nullable;
-import android.telecom.TelecomManager;
 import android.text.TextUtils;
 import com.android.contacts.common.R;
-import com.android.contacts.common.lettertiles.LetterTileDrawable.ContactType;
 import com.android.dialer.common.Assert;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -408,30 +406,4 @@
     }
     return this;
   }
-
-  /**
-   * Returns the appropriate LetterTileDrawable.TYPE_ based on the given primitive conditions.
-   *
-   * <p>If no special state is detected, yields TYPE_DEFAULT
-   */
-  public static @ContactType int getContactTypeFromPrimitives(
-      boolean isVoicemailNumber,
-      boolean isSpam,
-      boolean isBusiness,
-      int numberPresentation,
-      boolean isConference) {
-    if (isVoicemailNumber) {
-      return LetterTileDrawable.TYPE_VOICEMAIL;
-    } else if (isSpam) {
-      return LetterTileDrawable.TYPE_SPAM;
-    } else if (isBusiness) {
-      return LetterTileDrawable.TYPE_BUSINESS;
-    } else if (numberPresentation == TelecomManager.PRESENTATION_RESTRICTED) {
-      return LetterTileDrawable.TYPE_GENERIC_AVATAR;
-    } else if (isConference) {
-      return LetterTileDrawable.TYPE_CONFERENCE;
-    } else {
-      return LetterTileDrawable.TYPE_DEFAULT;
-    }
-  }
 }
diff --git a/java/com/android/contacts/common/list/ContactEntryListAdapter.java b/java/com/android/contacts/common/list/ContactEntryListAdapter.java
index 064214e..18bbae3 100644
--- a/java/com/android/contacts/common/list/ContactEntryListAdapter.java
+++ b/java/com/android/contacts/common/list/ContactEntryListAdapter.java
@@ -26,6 +26,7 @@
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Directory;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -38,10 +39,7 @@
 import com.android.contacts.common.R;
 import com.android.contacts.common.compat.DirectoryCompat;
 import com.android.contacts.common.util.SearchUtil;
-import com.android.dialer.common.LogUtil;
 import com.android.dialer.compat.CompatUtils;
-import com.android.dialer.logging.InteractionEvent;
-import com.android.dialer.logging.Logger;
 import java.util.HashSet;
 
 /**
@@ -356,7 +354,7 @@
     if (cursor.getCount() == 0) {
       // Directory table must have at least local directory, without which this adapter will
       // enter very weird state.
-      LogUtil.e(
+      Log.e(
           TAG,
           "Directory search loader returned an empty cursor, which implies we have "
               + "no directory entries.",
@@ -680,9 +678,6 @@
       // mimetype here is reasonable.
       quickContact.setPrioritizedMimeType(Phone.CONTENT_ITEM_TYPE);
     }
-    Logger.get(mContext)
-        .logQuickContactOnTouch(
-            quickContact, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_SEARCH, true);
 
     if (photoId != 0 || photoUriColumn == -1) {
       getPhotoLoader().loadThumbnail(quickContact, photoId, mDarkTheme, mCircularPhotos, null);
diff --git a/java/com/android/contacts/common/list/ContactEntryListFragment.java b/java/com/android/contacts/common/list/ContactEntryListFragment.java
index 146986f..278175c 100644
--- a/java/com/android/contacts/common/list/ContactEntryListFragment.java
+++ b/java/com/android/contacts/common/list/ContactEntryListFragment.java
@@ -555,6 +555,7 @@
   protected void setSearchMode(boolean flag) {
     if (mSearchMode != flag) {
       mSearchMode = flag;
+      setSectionHeaderDisplayEnabled(!mSearchMode);
 
       if (!flag) {
         mDirectoryListStatus = STATUS_NOT_LOADED;
diff --git a/java/com/android/contacts/common/list/ContactListItemView.java b/java/com/android/contacts/common/list/ContactListItemView.java
index 5a27491..7a31947 100644
--- a/java/com/android/contacts/common/list/ContactListItemView.java
+++ b/java/com/android/contacts/common/list/ContactListItemView.java
@@ -30,8 +30,8 @@
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.SearchSnippets;
 import android.support.annotation.IntDef;
-import android.support.annotation.NonNull;
 import android.support.v4.content.ContextCompat;
+import android.support.v4.graphics.drawable.DrawableCompat;
 import android.text.Spannable;
 import android.text.SpannableString;
 import android.text.TextUtils;
@@ -55,6 +55,7 @@
 import com.android.contacts.common.list.PhoneNumberListAdapter.Listener;
 import com.android.contacts.common.util.ContactDisplayUtils;
 import com.android.contacts.common.util.SearchUtil;
+import com.android.dialer.compat.CompatUtils;
 import com.android.dialer.util.ViewUtil;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -80,15 +81,13 @@
 
   /** IntDef for indices of ViewPager tabs. */
   @Retention(RetentionPolicy.SOURCE)
-  @IntDef({NONE, VIDEO, LIGHTBRINGER, CALL_AND_SHARE})
+  @IntDef({NONE, VIDEO, CALL_AND_SHARE})
   public @interface CallToAction {}
 
   public static final int NONE = 0;
   public static final int VIDEO = 1;
-  public static final int LIGHTBRINGER = 2;
-  public static final int CALL_AND_SHARE = 3;
+  public static final int CALL_AND_SHARE = 2;
 
-  private final PhotoPosition mPhotoPosition = getDefaultPhotoPosition();
   private static final Pattern SPLIT_PATTERN =
       Pattern.compile("([\\w-\\.]+)@((?:[\\w]+\\.)+)([a-zA-Z]{2,4})|[\\w]+");
   static final char SNIPPET_START_MATCH = '[';
@@ -107,7 +106,7 @@
   private int mNameTextViewTextSize;
   private int mHeaderWidth;
   private Drawable mActivatedBackgroundDrawable;
-  private int mCallToActionSize = 48;
+  private int mCallToActionSize = 32;
   private int mCallToActionMargin = 16;
   // Set in onLayout. Represent left and right position of the View on the screen.
   private int mLeftOffset;
@@ -123,7 +122,10 @@
   private String mHighlightedPrefix;
   /** Indicates whether the view should leave room for the "video call" icon. */
   private boolean mSupportVideoCall;
+  /** Indicates whether the view should leave room for the "call and share" icon. */
+  private boolean mSupportCallAndShare;
 
+  private PhotoPosition mPhotoPosition = getDefaultPhotoPosition(false /* normal/non opposite */);
   // Header layout data
   private TextView mHeaderTextView;
   private boolean mIsSectionHeaderEnabled;
@@ -137,7 +139,7 @@
   private TextView mSnippetView;
   private TextView mStatusView;
   private ImageView mPresenceIcon;
-  @NonNull private final ImageView mCallToActionView;
+  private ImageView mCallToAction;
   private ImageView mWorkProfileIcon;
   private ColorStateList mSecondaryTextColor;
   private int mDefaultPhotoViewSize = 0;
@@ -179,14 +181,23 @@
   private Rect mBoundsWithoutHeader = new Rect();
   private CharSequence mUnknownNameText;
 
-  private String mPhoneNumber;
-  private int mPosition = -1;
-  private @CallToAction int mCallToAction = NONE;
+  public ContactListItemView(Context context) {
+    super(context);
 
-  public ContactListItemView(Context context, AttributeSet attrs, boolean supportVideoCallIcon) {
+    mTextHighlighter = new TextHighlighter(Typeface.BOLD);
+    mNameHighlightSequence = new ArrayList<>();
+    mNumberHighlightSequence = new ArrayList<>();
+  }
+
+  public ContactListItemView(
+      Context context,
+      AttributeSet attrs,
+      boolean supportVideoCallIcon,
+      boolean supportCallAndShare) {
     this(context, attrs);
 
     mSupportVideoCall = supportVideoCallIcon;
+    mSupportCallAndShare = supportCallAndShare;
   }
 
   public ContactListItemView(Context context, AttributeSet attrs) {
@@ -273,20 +284,19 @@
     mNameHighlightSequence = new ArrayList<>();
     mNumberHighlightSequence = new ArrayList<>();
 
-    mCallToActionView = new ImageView(getContext());
-    mCallToActionView.setId(R.id.call_to_action);
-    mCallToActionView.setLayoutParams(new LayoutParams(mCallToActionSize, mCallToActionSize));
-    mCallToActionView.setScaleType(ScaleType.CENTER);
-    mCallToActionView.setImageTintList(
-        ContextCompat.getColorStateList(getContext(), R.color.search_video_call_icon_tint));
-    addView(mCallToActionView);
-
     setLayoutDirection(View.LAYOUT_DIRECTION_LOCALE);
   }
 
-  public static PhotoPosition getDefaultPhotoPosition() {
-    int layoutDirection = TextUtils.getLayoutDirectionFromLocale(Locale.getDefault());
-    return layoutDirection == View.LAYOUT_DIRECTION_RTL ? PhotoPosition.RIGHT : PhotoPosition.LEFT;
+  public static PhotoPosition getDefaultPhotoPosition(boolean opposite) {
+    final Locale locale = Locale.getDefault();
+    final int layoutDirection = TextUtils.getLayoutDirectionFromLocale(locale);
+    switch (layoutDirection) {
+      case View.LAYOUT_DIRECTION_RTL:
+        return (opposite ? PhotoPosition.LEFT : PhotoPosition.RIGHT);
+      case View.LAYOUT_DIRECTION_LTR:
+      default:
+        return (opposite ? PhotoPosition.RIGHT : PhotoPosition.LEFT);
+    }
   }
 
   /**
@@ -323,47 +333,35 @@
    * @param position The position in the adapter of the call to action.
    */
   public void setCallToAction(@CallToAction int action, Listener listener, int position) {
-    mCallToAction = action;
-    mPosition = position;
-
-    Drawable drawable;
+    int drawable;
     int description;
     OnClickListener onClickListener;
-    if (action == CALL_AND_SHARE) {
-      drawable = getContext().getResources().getDrawable(R.drawable.ic_phone_attach);
-      drawable.setAutoMirrored(true);
-      description = R.string.description_search_call_and_share;
+    if (action == CALL_AND_SHARE && mSupportCallAndShare) {
+      drawable = R.drawable.ic_call_and_share;
+      description = R.string.description_search_video_call;
       onClickListener = v -> listener.onCallAndShareIconClicked(position);
     } else if (action == VIDEO && mSupportVideoCall) {
-      drawable =
-          getContext().getResources().getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24);
-      drawable.setAutoMirrored(true);
-      description = R.string.description_search_video_call;
+      drawable = R.drawable.ic_search_video_call;
+      description = R.string.description_search_call_and_share;
       onClickListener = v -> listener.onVideoCallIconClicked(position);
-    } else if (action == LIGHTBRINGER) {
-      drawable =
-          getContext().getResources().getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24);
-      drawable.setAutoMirrored(true);
-      description = R.string.description_search_video_call;
-      onClickListener = v -> listener.onLightbringerIconClicked(position);
     } else {
-      mCallToActionView.setVisibility(View.GONE);
-      mCallToActionView.setOnClickListener(null);
+      if (mCallToAction != null) {
+        mCallToAction.setVisibility(View.GONE);
+        mCallToAction.setOnClickListener(null);
+      }
       return;
     }
 
-    mCallToActionView.setContentDescription(getContext().getString(description));
-    mCallToActionView.setOnClickListener(onClickListener);
-    mCallToActionView.setImageDrawable(drawable);
-    mCallToActionView.setVisibility(View.VISIBLE);
-  }
-
-  public @CallToAction int getCallToAction() {
-    return mCallToAction;
-  }
-
-  public int getPosition() {
-    return mPosition;
+    if (mCallToAction == null) {
+      mCallToAction = new ImageView(getContext());
+      mCallToAction.setLayoutParams(new LayoutParams(mCallToActionSize, mCallToActionSize));
+      mCallToAction.setScaleType(ScaleType.CENTER);
+      addView(mCallToAction);
+    }
+    mCallToAction.setContentDescription(getContext().getString(description));
+    mCallToAction.setOnClickListener(onClickListener);
+    mCallToAction.setImageResource(drawable);
+    mCallToAction.setVisibility(View.VISIBLE);
   }
 
   /**
@@ -378,6 +376,18 @@
     mSupportVideoCall = supportVideoCall;
   }
 
+  /**
+   * Sets whether the view supports a call and share icon. This is independent of whether the view
+   * is actually showing an icon. Support for the icon ensures that the layout leaves space for it,
+   * should it be shown.
+   *
+   * @param supportCallAndShare {@code true} if the call and share icon is supported, {@code false}
+   *     otherwise.
+   */
+  public void setSupportCallAndShareIcon(boolean supportCallAndShare) {
+    mSupportCallAndShare = supportCallAndShare;
+  }
+
   @Override
   protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
     // We will match parent's width and wrap content vertically, but make sure
@@ -413,7 +423,9 @@
       effectiveWidth -= mHeaderWidth + mGapBetweenImageAndText;
     }
 
-    effectiveWidth -= (mCallToActionSize + mCallToActionMargin);
+    if (mSupportVideoCall || mSupportCallAndShare) {
+      effectiveWidth -= (mCallToActionSize + mCallToActionMargin);
+    }
 
     // Go over all visible text views and measure actual width of each of them.
     // Also calculate their heights to get the total height for this entire view.
@@ -484,9 +496,11 @@
       mStatusTextViewHeight = mPresenceIcon.getMeasuredHeight();
     }
 
-    mCallToActionView.measure(
-        MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY),
-        MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY));
+    if ((mSupportVideoCall || mSupportCallAndShare) && isVisible(mCallToAction)) {
+      mCallToAction.measure(
+          MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY),
+          MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY));
+    }
 
     if (isVisible(mWorkProfileIcon)) {
       mWorkProfileIcon.measure(
@@ -615,30 +629,34 @@
       leftBound += mTextIndent;
     }
 
-    // Place the call to action at the end of the list (e.g. take into account RTL mode).
-    // Center the icon vertically
-    final int callToActionTop = topBound + (height - topBound - mCallToActionSize) / 2;
+    if (mSupportVideoCall || mSupportCallAndShare) {
+      // Place the call to action at the end of the list (e.g. take into account RTL mode).
+      if (isVisible(mCallToAction)) {
+        // Center the icon vertically
+        final int callToActionTop = topBound + (height - topBound - mCallToActionSize) / 2;
 
-    if (!isLayoutRtl) {
-      // When photo is on left, icon is placed on the right edge.
-      mCallToActionView.layout(
-          rightBound - mCallToActionSize,
-          callToActionTop,
-          rightBound,
-          callToActionTop + mCallToActionSize);
-    } else {
-      // When photo is on right, icon is placed on the left edge.
-      mCallToActionView.layout(
-          leftBound,
-          callToActionTop,
-          leftBound + mCallToActionSize,
-          callToActionTop + mCallToActionSize);
-    }
+        if (!isLayoutRtl) {
+          // When photo is on left, icon is placed on the right edge.
+          mCallToAction.layout(
+              rightBound - mCallToActionSize,
+              callToActionTop,
+              rightBound,
+              callToActionTop + mCallToActionSize);
+        } else {
+          // When photo is on right, icon is placed on the left edge.
+          mCallToAction.layout(
+              leftBound,
+              callToActionTop,
+              leftBound + mCallToActionSize,
+              callToActionTop + mCallToActionSize);
+        }
+      }
 
-    if (mPhotoPosition == PhotoPosition.LEFT) {
-      rightBound -= (mCallToActionSize + mCallToActionMargin);
-    } else {
-      leftBound += mCallToActionSize + mCallToActionMargin;
+      if (mPhotoPosition == PhotoPosition.LEFT) {
+        rightBound -= (mCallToActionSize + mCallToActionMargin);
+      } else {
+        leftBound += mCallToActionSize + mCallToActionMargin;
+      }
     }
 
     // Center text vertically, then apply the top offset.
@@ -883,7 +901,9 @@
     }
     if (mQuickContact == null) {
       mQuickContact = new QuickContactBadge(getContext());
-      mQuickContact.setOverlay(null);
+      if (CompatUtils.isLollipopCompatible()) {
+        mQuickContact.setOverlay(null);
+      }
       mQuickContact.setLayoutParams(getDefaultPhotoLayoutParams());
       if (mNameTextView != null) {
         mQuickContact.setContentDescription(
@@ -988,7 +1008,9 @@
       mNameTextView.setGravity(Gravity.CENTER_VERTICAL);
       mNameTextView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
       mNameTextView.setId(R.id.cliv_name_textview);
-      mNameTextView.setElegantTextHeight(false);
+      if (CompatUtils.isLollipopCompatible()) {
+        mNameTextView.setElegantTextHeight(false);
+      }
       addView(mNameTextView);
     }
     return mNameTextView;
@@ -1034,7 +1056,6 @@
    * exists.
    */
   public void setPhoneNumber(String text) {
-    mPhoneNumber = text;
     if (text == null) {
       if (mDataView != null) {
         mDataView.setVisibility(View.GONE);
@@ -1065,10 +1086,6 @@
     }
   }
 
-  public String getPhoneNumber() {
-    return mPhoneNumber;
-  }
-
   private void setMarqueeText(TextView textView, CharSequence text) {
     if (getTextEllipsis() == TruncateAt.MARQUEE) {
       // To show MARQUEE correctly (with END effect during non-active state), we need
@@ -1092,7 +1109,9 @@
       mDataView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
       mDataView.setActivated(isActivated());
       mDataView.setId(R.id.cliv_data_view);
-      mDataView.setElegantTextHeight(false);
+      if (CompatUtils.isLollipopCompatible()) {
+        mDataView.setElegantTextHeight(false);
+      }
       addView(mDataView);
     }
     return mDataView;
@@ -1450,17 +1469,28 @@
     forceLayout();
   }
 
+  public void setPhotoPosition(PhotoPosition photoPosition) {
+    mPhotoPosition = photoPosition;
+  }
+
   /**
    * Set drawable resources directly for the drawable resource of the photo view.
    *
-   * @param drawable A drawable resource.
+   * @param drawableId Id of drawable resource.
    */
-  public void setDrawable(Drawable drawable) {
+  public void setDrawableResource(int drawableId) {
     ImageView photo = getPhotoView();
     photo.setScaleType(ImageView.ScaleType.CENTER);
-    int iconColor = ContextCompat.getColor(getContext(), R.color.search_shortcut_icon_color);
-    photo.setImageDrawable(drawable);
-    photo.setImageTintList(ColorStateList.valueOf(iconColor));
+    final Drawable drawable = ContextCompat.getDrawable(getContext(), drawableId);
+    final int iconColor = ContextCompat.getColor(getContext(), R.color.search_shortcut_icon_color);
+    if (CompatUtils.isLollipopCompatible()) {
+      photo.setImageDrawable(drawable);
+      photo.setImageTintList(ColorStateList.valueOf(iconColor));
+    } else {
+      final Drawable drawableWrapper = DrawableCompat.wrap(drawable).mutate();
+      DrawableCompat.setTint(drawableWrapper, iconColor);
+      photo.setImageDrawable(drawableWrapper);
+    }
   }
 
   @Override
diff --git a/java/com/android/contacts/common/list/ContactTileView.java b/java/com/android/contacts/common/list/ContactTileView.java
index 15582d6..9273b05 100644
--- a/java/com/android/contacts/common/list/ContactTileView.java
+++ b/java/com/android/contacts/common/list/ContactTileView.java
@@ -19,6 +19,7 @@
 import android.graphics.Rect;
 import android.net.Uri;
 import android.util.AttributeSet;
+import android.util.Log;
 import android.view.View;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
@@ -27,9 +28,6 @@
 import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
 import com.android.contacts.common.MoreContactUtils;
 import com.android.contacts.common.R;
-import com.android.dialer.callintent.CallInitiationType;
-import com.android.dialer.callintent.CallSpecificAppData;
-import com.android.dialer.common.LogUtil;
 
 /** A ContactTile displays a contact's picture and name */
 public abstract class ContactTileView extends FrameLayout {
@@ -62,14 +60,8 @@
         if (mListener == null) {
           return;
         }
-        CallSpecificAppData callSpecificAppData =
-            CallSpecificAppData.newBuilder()
-                .setCallInitiationType(CallInitiationType.Type.SPEED_DIAL)
-                .build();
         mListener.onContactSelected(
-            getLookupUri(),
-            MoreContactUtils.getTargetRectFromView(ContactTileView.this),
-            callSpecificAppData);
+            getLookupUri(), MoreContactUtils.getTargetRectFromView(ContactTileView.this));
       }
     };
   }
@@ -105,7 +97,7 @@
 
         }
       } else {
-        LogUtil.w(TAG, "contactPhotoManager not set");
+        Log.w(TAG, "contactPhotoManager not set");
       }
     } else {
       setVisibility(View.INVISIBLE);
@@ -171,10 +163,9 @@
   public interface Listener {
 
     /** Notification that the contact was selected; no specific action is dictated. */
-    void onContactSelected(
-        Uri contactLookupUri, Rect viewRect, CallSpecificAppData callSpecificAppData);
+    void onContactSelected(Uri contactLookupUri, Rect viewRect);
 
     /** Notification that the specified number is to be called. */
-    void onCallNumberDirectly(String phoneNumber, CallSpecificAppData callSpecificAppData);
+    void onCallNumberDirectly(String phoneNumber);
   }
 }
diff --git a/java/com/android/contacts/common/list/PhoneNumberListAdapter.java b/java/com/android/contacts/common/list/PhoneNumberListAdapter.java
index 65e6f2d..9a490d7 100644
--- a/java/com/android/contacts/common/list/PhoneNumberListAdapter.java
+++ b/java/com/android/contacts/common/list/PhoneNumberListAdapter.java
@@ -30,6 +30,7 @@
 import android.text.TextUtils;
 import android.view.View;
 import android.view.ViewGroup;
+import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
 import com.android.contacts.common.ContactsUtils;
 import com.android.contacts.common.R;
@@ -37,17 +38,15 @@
 import com.android.contacts.common.compat.DirectoryCompat;
 import com.android.contacts.common.compat.PhoneCompat;
 import com.android.contacts.common.extensions.PhoneDirectoryExtenderAccessor;
-import com.android.contacts.common.lettertiles.LetterTileDrawable;
 import com.android.contacts.common.list.ContactListItemView.CallToAction;
 import com.android.contacts.common.preference.ContactsPreferences;
 import com.android.contacts.common.util.Constants;
+import com.android.dialer.callcomposer.CallComposerContact;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.compat.CompatUtils;
-import com.android.dialer.dialercontact.DialerContact;
 import com.android.dialer.enrichedcall.EnrichedCallCapabilities;
 import com.android.dialer.enrichedcall.EnrichedCallComponent;
 import com.android.dialer.enrichedcall.EnrichedCallManager;
-import com.android.dialer.lightbringer.LightbringerComponent;
 import com.android.dialer.location.GeoUtil;
 import com.android.dialer.util.CallUtil;
 import java.util.ArrayList;
@@ -69,15 +68,16 @@
   // A list of extended directories to add to the directories from the database
   private final List<DirectoryPartition> mExtendedDirectories;
   private final CharSequence mUnknownNameText;
-  private final boolean mIsPresenceEnabled;
-  protected final boolean mIsImsVideoEnabled;
-
+  private final boolean mCallAndShareEnabled;
   // Extended directories will have ID's that are higher than any of the id's from the database,
   // so that we can identify them and set them up properly. If no extended directories
   // exist, this will be Long.MAX_VALUE
   private long mFirstExtendedDirectoryId = Long.MAX_VALUE;
+  private ContactListItemView.PhotoPosition mPhotoPosition;
   private boolean mUseCallableUri;
   private Listener mListener;
+  private boolean mIsVideoEnabled;
+  private boolean mIsPresenceEnabled;
 
   public PhoneNumberListAdapter(Context context) {
     super(context);
@@ -88,8 +88,11 @@
         PhoneDirectoryExtenderAccessor.get(mContext).getExtendedDirectories(mContext);
 
     int videoCapabilities = CallUtil.getVideoCallingAvailability(context);
-    mIsImsVideoEnabled = CallUtil.isVideoEnabled(context);
+    mIsVideoEnabled = (videoCapabilities & CallUtil.VIDEO_CALLING_ENABLED) != 0;
     mIsPresenceEnabled = (videoCapabilities & CallUtil.VIDEO_CALLING_PRESENCE) != 0;
+
+    // TODO
+    mCallAndShareEnabled = true;
   }
 
   @Override
@@ -246,10 +249,10 @@
     return item != null ? item.getString(PhoneQuery.LOOKUP_KEY) : null;
   }
 
-  public DialerContact getDialerContact(int position) {
+  public CallComposerContact getCallComposerContact(int position) {
     Cursor cursor = (Cursor) getItem(position);
     if (cursor == null) {
-      LogUtil.e("PhoneNumberListAdapter.getDialerContact", "cursor was null.");
+      LogUtil.e("PhoneNumberListAdapter.getCallComposerContact", "cursor was null.");
       return null;
     }
 
@@ -260,11 +263,11 @@
         Contacts.getLookupUri(
             cursor.getLong(PhoneQuery.CONTACT_ID), cursor.getString(PhoneQuery.LOOKUP_KEY));
 
-    DialerContact.Builder contact = DialerContact.newBuilder();
+    CallComposerContact.Builder contact = CallComposerContact.newBuilder();
     contact
         .setNumber(number)
         .setPhotoId(cursor.getLong(PhoneQuery.PHOTO_ID))
-        .setContactType(LetterTileDrawable.TYPE_DEFAULT)
+        .setContactType(ContactPhotoManager.TYPE_DEFAULT)
         .setNameOrNumber(displayName)
         .setNumberLabel(
             Phone.getTypeLabel(
@@ -294,6 +297,7 @@
     ContactListItemView view = super.newView(context, partition, cursor, position, parent);
     view.setUnknownNameText(mUnknownNameText);
     view.setQuickContactEnabled(isQuickContactEnabled());
+    view.setPhotoPosition(mPhotoPosition);
     return view;
   }
 
@@ -397,17 +401,13 @@
       int carrierPresence = cursor.getInt(PhoneQuery.CARRIER_PRESENCE);
       boolean isPresent = (carrierPresence & Phone.CARRIER_PRESENCE_VT_CAPABLE) != 0;
 
-      boolean isVideoIconShown = mIsImsVideoEnabled && (!mIsPresenceEnabled || isPresent);
+      boolean isVideoIconShown = mIsVideoEnabled && (!mIsPresenceEnabled || isPresent);
       if (isVideoIconShown) {
         action = ContactListItemView.VIDEO;
       }
     }
 
-    if (LightbringerComponent.get(mContext).getLightbringer().isReachable(mContext, number)) {
-      action = ContactListItemView.LIGHTBRINGER;
-    }
-
-    if (action == ContactListItemView.NONE) {
+    if (isCallAndShareEnabled() && action == ContactListItemView.NONE && number != null) {
       EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager();
       EnrichedCallCapabilities capabilities = manager.getCapabilities(number);
       if (capabilities != null && capabilities.supportsCallComposer()) {
@@ -481,6 +481,14 @@
     }
   }
 
+  public ContactListItemView.PhotoPosition getPhotoPosition() {
+    return mPhotoPosition;
+  }
+
+  public void setPhotoPosition(ContactListItemView.PhotoPosition photoPosition) {
+    mPhotoPosition = photoPosition;
+  }
+
   public void setUseCallableUri(boolean useCallableUri) {
     mUseCallableUri = useCallableUri;
   }
@@ -562,12 +570,14 @@
     mListener = listener;
   }
 
+  public boolean isCallAndShareEnabled() {
+    return mCallAndShareEnabled;
+  }
+
   public interface Listener {
 
     void onVideoCallIconClicked(int position);
 
-    void onLightbringerIconClicked(int position);
-
     void onCallAndShareIconClicked(int position);
   }
 
@@ -632,14 +642,18 @@
     static {
       final List<String> projectionList =
           new ArrayList<>(Arrays.asList(PROJECTION_PRIMARY_INTERNAL));
-      projectionList.add(Phone.CARRIER_PRESENCE); // 9
+      if (CompatUtils.isMarshmallowCompatible()) {
+        projectionList.add(Phone.CARRIER_PRESENCE); // 9
+      }
       PROJECTION_PRIMARY = projectionList.toArray(new String[projectionList.size()]);
     }
 
     static {
       final List<String> projectionList =
           new ArrayList<>(Arrays.asList(PROJECTION_ALTERNATIVE_INTERNAL));
-      projectionList.add(Phone.CARRIER_PRESENCE); // 9
+      if (CompatUtils.isMarshmallowCompatible()) {
+        projectionList.add(Phone.CARRIER_PRESENCE); // 9
+      }
       PROJECTION_ALTERNATIVE = projectionList.toArray(new String[projectionList.size()]);
     }
   }
diff --git a/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java b/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java
index 79e6700..8f25f82 100644
--- a/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java
+++ b/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java
@@ -29,18 +29,15 @@
 import android.view.View;
 import android.view.ViewGroup;
 import com.android.contacts.common.R;
-import com.android.contacts.common.list.PhoneNumberListAdapter.Listener;
 import com.android.contacts.common.util.AccountFilterUtil;
+import com.android.dialer.callcomposer.CallComposerContact;
 import com.android.dialer.callintent.CallInitiationType;
 import com.android.dialer.callintent.CallInitiationType.Type;
 import com.android.dialer.callintent.CallSpecificAppData;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.dialercontact.DialerContact;
 import com.android.dialer.enrichedcall.EnrichedCallComponent;
 import com.android.dialer.enrichedcall.EnrichedCallManager;
-import com.android.dialer.lightbringer.LightbringerComponent;
-import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.protos.ProtoParsers;
 import java.util.Set;
@@ -64,6 +61,9 @@
 
   private boolean mUseCallableUri;
 
+  private ContactListItemView.PhotoPosition mPhotoPosition =
+      ContactListItemView.getDefaultPhotoPosition(false /* normal/non opposite */);
+
   private final Set<OnLoadFinishedListener> mLoadFinishedListeners = new ArraySet<>();
 
   private CursorReranker mCursorReranker;
@@ -71,7 +71,7 @@
   public PhoneNumberPickerFragment() {
     setQuickContactEnabled(false);
     setPhotoLoaderEnabled(true);
-    setSectionHeaderDisplayEnabled(false);
+    setSectionHeaderDisplayEnabled(true);
     setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_NONE);
 
     // Show nothing instead of letting caller Activity show something.
@@ -85,32 +85,17 @@
    */
   @Override
   public void onVideoCallIconClicked(int position) {
-    Logger.get(getContext()).logImpression(DialerImpression.Type.IMS_VIDEO_REQUESTED_FROM_SEARCH);
     callNumber(position, true /* isVideoCall */);
   }
 
   @Override
-  public void onLightbringerIconClicked(int position) {
-    String phoneNumber = getPhoneNumber(position);
-    Intent intent =
-        LightbringerComponent.get(getContext())
-            .getLightbringer()
-            .getIntent(getContext(), phoneNumber);
-    // DialtactsActivity.ACTIVITY_REQUEST_CODE_LIGHTBRINGER
-    // Cannot reference because of cyclic dependencies
-    Logger.get(getContext())
-        .logImpression(DialerImpression.Type.LIGHTBRINGER_VIDEO_REQUESTED_FROM_SEARCH);
-    int dialactsActivityRequestCode = 3;
-    getActivity().startActivityForResult(intent, dialactsActivityRequestCode);
-  }
-
-  @Override
   public void onCallAndShareIconClicked(int position) {
     // Required because of cyclic dependencies of everything depending on contacts/common.
     String componentName = "com.android.dialer.callcomposer.CallComposerActivity";
     Intent intent = new Intent();
     intent.setComponent(new ComponentName(getContext(), componentName));
-    DialerContact contact = ((PhoneNumberListAdapter) getAdapter()).getDialerContact(position);
+    CallComposerContact contact =
+        ((PhoneNumberListAdapter) getAdapter()).getCallComposerContact(position);
     ProtoParsers.put(intent, "CALL_COMPOSER_CONTACT", contact);
     startActivity(intent);
   }
@@ -335,27 +320,7 @@
   @Override
   public void onCapabilitiesUpdated() {
     if (getAdapter() != null) {
-      EnrichedCallManager manager =
-          EnrichedCallComponent.get(getContext()).getEnrichedCallManager();
-      Listener listener = ((PhoneNumberListAdapter) getAdapter()).getListener();
-
-      for (int i = 0; i < getListView().getChildCount(); i++) {
-        if (!(getListView().getChildAt(i) instanceof ContactListItemView)) {
-          continue;
-        }
-
-        // Since call and share is the lowest priority call to action, if any others are set,
-        // do not reset the call to action. Also do not set the call and share call to action if
-        // the number doesn't support call composer.
-        ContactListItemView view = (ContactListItemView) getListView().getChildAt(i);
-        if (view.getCallToAction() != ContactListItemView.NONE
-            || view.getPhoneNumber() == null
-            || manager.getCapabilities(view.getPhoneNumber()) == null
-            || !manager.getCapabilities(view.getPhoneNumber()).supportsCallComposer()) {
-          continue;
-        }
-        view.setCallToAction(ContactListItemView.CALL_AND_SHARE, listener, view.getPosition());
-      }
+      getAdapter().notifyDataSetChanged();
     }
   }
 
@@ -395,6 +360,12 @@
     if (!isSearchMode() && mFilter != null) {
       adapter.setFilter(mFilter);
     }
+
+    setPhotoPosition(adapter);
+  }
+
+  protected void setPhotoPosition(ContactEntryListAdapter adapter) {
+    ((PhoneNumberListAdapter) adapter).setPhotoPosition(mPhotoPosition);
   }
 
   @Override
@@ -418,6 +389,15 @@
     updateFilterHeaderView();
   }
 
+  public void setPhotoPosition(ContactListItemView.PhotoPosition photoPosition) {
+    mPhotoPosition = photoPosition;
+
+    final PhoneNumberListAdapter adapter = (PhoneNumberListAdapter) getAdapter();
+    if (adapter != null) {
+      adapter.setPhotoPosition(photoPosition);
+    }
+  }
+
   /**
    * @param isRemoteDirectory {@code true} if the call was initiated using a contact/phone number
    *     not in the local contacts database
diff --git a/java/com/android/contacts/common/list/ViewPagerTabs.java b/java/com/android/contacts/common/list/ViewPagerTabs.java
index 1e6cf13..34f623e 100644
--- a/java/com/android/contacts/common/list/ViewPagerTabs.java
+++ b/java/com/android/contacts/common/list/ViewPagerTabs.java
@@ -33,6 +33,7 @@
 import android.widget.TextView;
 import android.widget.Toast;
 import com.android.contacts.common.R;
+import com.android.dialer.compat.CompatUtils;
 
 /**
  * Lightweight implementation of ViewPager tabs. This looks similar to traditional actionBar tabs,
@@ -42,13 +43,7 @@
  */
 public class ViewPagerTabs extends HorizontalScrollView implements ViewPager.OnPageChangeListener {
 
-  private static final ViewOutlineProvider VIEW_BOUNDS_OUTLINE_PROVIDER =
-      new ViewOutlineProvider() {
-        @Override
-        public void getOutline(View view, Outline outline) {
-          outline.setRect(0, 0, view.getWidth(), view.getHeight());
-        }
-      };
+  private static final ViewOutlineProvider VIEW_BOUNDS_OUTLINE_PROVIDER;
   private static final int TAB_SIDE_PADDING_IN_DPS = 10;
   // TODO: This should use <declare-styleable> in the future
   private static final int[] ATTRS =
@@ -59,6 +54,20 @@
         android.R.attr.textAllCaps
       };
 
+  static {
+    if (CompatUtils.isLollipopCompatible()) {
+      VIEW_BOUNDS_OUTLINE_PROVIDER =
+          new ViewOutlineProvider() {
+            @Override
+            public void getOutline(View view, Outline outline) {
+              outline.setRect(0, 0, view.getWidth(), view.getHeight());
+            }
+          };
+    } else {
+      VIEW_BOUNDS_OUTLINE_PROVIDER = null;
+    }
+  }
+
   /**
    * Linearlayout that will contain the TextViews serving as tabs. This is the only child of the
    * parent HorizontalScrollView.
@@ -102,8 +111,10 @@
         new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT));
     a.recycle();
 
-    // enable shadow casting from view bounds
-    setOutlineProvider(VIEW_BOUNDS_OUTLINE_PROVIDER);
+    if (CompatUtils.isLollipopCompatible()) {
+      // enable shadow casting from view bounds
+      setOutlineProvider(VIEW_BOUNDS_OUTLINE_PROVIDER);
+    }
   }
 
   public void setViewPager(ViewPager viewPager) {
diff --git a/java/com/android/contacts/common/location/CountryDetector.java b/java/com/android/contacts/common/location/CountryDetector.java
new file mode 100644
index 0000000..7d9e42b
--- /dev/null
+++ b/java/com/android/contacts/common/location/CountryDetector.java
@@ -0,0 +1,221 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.contacts.common.location;
+
+import android.app.PendingIntent;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.location.Geocoder;
+import android.location.Location;
+import android.location.LocationManager;
+import android.preference.PreferenceManager;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+import android.util.Log;
+import com.android.dialer.util.PermissionsUtil;
+import java.util.Locale;
+
+/**
+ * This class is used to detect the country where the user is. It is a simplified version of the
+ * country detector service in the framework. The sources of country location are queried in the
+ * following order of reliability:
+ *
+ * <ul>
+ * <li>Mobile network
+ * <li>Location manager
+ * <li>SIM's country
+ * <li>User's default locale
+ * </ul>
+ *
+ * As far as possible this class tries to replicate the behavior of the system's country detector
+ * service: 1) Order in priority of sources of country location 2) Mobile network information
+ * provided by CDMA phones is ignored 3) Location information is updated every 12 hours (instead of
+ * 24 hours in the system) 4) Location updates only uses the {@link
+ * LocationManager#PASSIVE_PROVIDER} to avoid active use of the GPS 5) If a location is successfully
+ * obtained and geocoded, we never fall back to use of the SIM's country (for the system, the
+ * fallback never happens without a reboot) 6) Location is not used if the device does not implement
+ * a {@link android.location.Geocoder}
+ */
+public class CountryDetector {
+
+  public static final String KEY_PREFERENCE_TIME_UPDATED = "preference_time_updated";
+  public static final String KEY_PREFERENCE_CURRENT_COUNTRY = "preference_current_country";
+  private static final String TAG = "CountryDetector";
+  // Wait 12 hours between updates
+  private static final long TIME_BETWEEN_UPDATES_MS = 1000L * 60 * 60 * 12;
+  // Minimum distance before an update is triggered, in meters. We don't need this to be too
+  // exact because all we care about is what country the user is in.
+  private static final long DISTANCE_BETWEEN_UPDATES_METERS = 5000;
+  private static CountryDetector sInstance;
+  private final TelephonyManager mTelephonyManager;
+  private final LocationManager mLocationManager;
+  private final LocaleProvider mLocaleProvider;
+  // Used as a default country code when all the sources of country data have failed in the
+  // exceedingly rare event that the device does not have a default locale set for some reason.
+  private static final String DEFAULT_COUNTRY_ISO = "US";
+  private final Context mContext;
+
+  private CountryDetector(Context context) {
+    this(
+        context,
+        (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE),
+        (LocationManager) context.getSystemService(Context.LOCATION_SERVICE),
+        new LocaleProvider());
+  }
+
+  private CountryDetector(
+      Context context,
+      TelephonyManager telephonyManager,
+      LocationManager locationManager,
+      LocaleProvider localeProvider) {
+    mTelephonyManager = telephonyManager;
+    mLocationManager = locationManager;
+    mLocaleProvider = localeProvider;
+    mContext = context;
+
+    registerForLocationUpdates(context, mLocationManager);
+  }
+
+  public static void registerForLocationUpdates(Context context, LocationManager locationManager) {
+    if (!PermissionsUtil.hasLocationPermissions(context)) {
+      Log.w(TAG, "No location permissions, not registering for location updates.");
+      return;
+    }
+
+    if (!Geocoder.isPresent()) {
+      // Certain devices do not have an implementation of a geocoder - in that case there is
+      // no point trying to get location updates because we cannot retrieve the country based
+      // on the location anyway.
+      return;
+    }
+    final Intent activeIntent = new Intent(context, LocationChangedReceiver.class);
+    final PendingIntent pendingIntent =
+        PendingIntent.getBroadcast(context, 0, activeIntent, PendingIntent.FLAG_UPDATE_CURRENT);
+
+    locationManager.requestLocationUpdates(
+        LocationManager.PASSIVE_PROVIDER,
+        TIME_BETWEEN_UPDATES_MS,
+        DISTANCE_BETWEEN_UPDATES_METERS,
+        pendingIntent);
+  }
+
+  /**
+   * Returns the instance of the country detector. {@link #initialize(Context)} must have been
+   * called previously.
+   *
+   * @return the initialized country detector.
+   */
+  public static synchronized CountryDetector getInstance(Context context) {
+    if (sInstance == null) {
+      sInstance = new CountryDetector(context.getApplicationContext());
+    }
+    return sInstance;
+  }
+
+  /** Factory method for {@link CountryDetector} that allows the caller to provide mock objects. */
+  public CountryDetector getInstanceForTest(
+      Context context,
+      TelephonyManager telephonyManager,
+      LocationManager locationManager,
+      LocaleProvider localeProvider,
+      Geocoder geocoder) {
+    return new CountryDetector(context, telephonyManager, locationManager, localeProvider);
+  }
+
+  public String getCurrentCountryIso() {
+    String result = null;
+    if (isNetworkCountryCodeAvailable()) {
+      result = getNetworkBasedCountryIso();
+    }
+    if (TextUtils.isEmpty(result)) {
+      result = getLocationBasedCountryIso();
+    }
+    if (TextUtils.isEmpty(result)) {
+      result = getSimBasedCountryIso();
+    }
+    if (TextUtils.isEmpty(result)) {
+      result = getLocaleBasedCountryIso();
+    }
+    if (TextUtils.isEmpty(result)) {
+      result = DEFAULT_COUNTRY_ISO;
+    }
+    return result.toUpperCase(Locale.US);
+  }
+
+  /** @return the country code of the current telephony network the user is connected to. */
+  private String getNetworkBasedCountryIso() {
+    return mTelephonyManager.getNetworkCountryIso();
+  }
+
+  /** @return the geocoded country code detected by the {@link LocationManager}. */
+  private String getLocationBasedCountryIso() {
+    if (!Geocoder.isPresent() || !PermissionsUtil.hasLocationPermissions(mContext)) {
+      return null;
+    }
+    final SharedPreferences sharedPreferences =
+        PreferenceManager.getDefaultSharedPreferences(mContext);
+    return sharedPreferences.getString(KEY_PREFERENCE_CURRENT_COUNTRY, null);
+  }
+
+  /** @return the country code of the SIM card currently inserted in the device. */
+  private String getSimBasedCountryIso() {
+    return mTelephonyManager.getSimCountryIso();
+  }
+
+  /** @return the country code of the user's currently selected locale. */
+  private String getLocaleBasedCountryIso() {
+    Locale defaultLocale = mLocaleProvider.getDefaultLocale();
+    if (defaultLocale != null) {
+      return defaultLocale.getCountry();
+    }
+    return null;
+  }
+
+  private boolean isNetworkCountryCodeAvailable() {
+    // On CDMA TelephonyManager.getNetworkCountryIso() just returns the SIM's country code.
+    // In this case, we want to ignore the value returned and fallback to location instead.
+    return mTelephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM;
+  }
+
+  /**
+   * Class that can be used to return the user's default locale. This is in its own class so that it
+   * can be mocked out.
+   */
+  public static class LocaleProvider {
+
+    public Locale getDefaultLocale() {
+      return Locale.getDefault();
+    }
+  }
+
+  public static class LocationChangedReceiver extends BroadcastReceiver {
+
+    @Override
+    public void onReceive(final Context context, Intent intent) {
+      if (!intent.hasExtra(LocationManager.KEY_LOCATION_CHANGED)) {
+        return;
+      }
+
+      final Location location =
+          (Location) intent.getExtras().get(LocationManager.KEY_LOCATION_CHANGED);
+
+      UpdateCountryService.updateCountry(context, location);
+    }
+  }
+}
diff --git a/java/com/android/contacts/common/location/UpdateCountryService.java b/java/com/android/contacts/common/location/UpdateCountryService.java
new file mode 100644
index 0000000..f23e09e
--- /dev/null
+++ b/java/com/android/contacts/common/location/UpdateCountryService.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.contacts.common.location;
+
+import android.app.IntentService;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.SharedPreferences.Editor;
+import android.location.Address;
+import android.location.Geocoder;
+import android.location.Location;
+import android.preference.PreferenceManager;
+import android.util.Log;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * Service used to perform asynchronous geocoding from within a broadcast receiver. Given a {@link
+ * Location}, convert it into a country code, and save it in shared preferences.
+ */
+public class UpdateCountryService extends IntentService {
+
+  private static final String TAG = UpdateCountryService.class.getSimpleName();
+
+  private static final String ACTION_UPDATE_COUNTRY = "saveCountry";
+
+  private static final String KEY_INTENT_LOCATION = "location";
+
+  public UpdateCountryService() {
+    super(TAG);
+  }
+
+  public static void updateCountry(Context context, Location location) {
+    final Intent serviceIntent = new Intent(context, UpdateCountryService.class);
+    serviceIntent.setAction(ACTION_UPDATE_COUNTRY);
+    serviceIntent.putExtra(UpdateCountryService.KEY_INTENT_LOCATION, location);
+    context.startService(serviceIntent);
+  }
+
+  @Override
+  protected void onHandleIntent(Intent intent) {
+    if (intent == null) {
+      Log.d(TAG, "onHandleIntent: could not handle null intent");
+      return;
+    }
+    if (ACTION_UPDATE_COUNTRY.equals(intent.getAction())) {
+      final Location location = intent.getParcelableExtra(KEY_INTENT_LOCATION);
+      final String country = getCountryFromLocation(getApplicationContext(), location);
+
+      if (country == null) {
+        return;
+      }
+
+      final SharedPreferences prefs =
+          PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
+
+      final Editor editor = prefs.edit();
+      editor.putLong(CountryDetector.KEY_PREFERENCE_TIME_UPDATED, System.currentTimeMillis());
+      editor.putString(CountryDetector.KEY_PREFERENCE_CURRENT_COUNTRY, country);
+      editor.commit();
+    }
+  }
+
+  /**
+   * Given a {@link Location}, return a country code.
+   *
+   * @return the ISO 3166-1 two letter country code
+   */
+  private String getCountryFromLocation(Context context, Location location) {
+    final Geocoder geocoder = new Geocoder(context);
+    String country = null;
+    try {
+      double latitude = location.getLatitude();
+      // Latitude has to be between 90 and -90 (latitude of north and south poles wrt equator)
+      if (latitude <= 90 && latitude >= -90) {
+        final List<Address> addresses =
+            geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
+        if (addresses != null && addresses.size() > 0) {
+          country = addresses.get(0).getCountryCode();
+        }
+      } else {
+        Log.w(TAG, "Invalid latitude");
+      }
+    } catch (IOException e) {
+      Log.w(TAG, "Exception occurred when getting geocoded country from location");
+    }
+    return country;
+  }
+}
diff --git a/java/com/android/contacts/common/model/ContactLoader.java b/java/com/android/contacts/common/model/ContactLoader.java
index 7ef3b73..55464b1 100644
--- a/java/com/android/contacts/common/model/ContactLoader.java
+++ b/java/com/android/contacts/common/model/ContactLoader.java
@@ -522,7 +522,6 @@
     cursorColumnToContentValues(cursor, cv, ContactQuery.TIMES_USED);
     cursorColumnToContentValues(cursor, cv, ContactQuery.LAST_TIME_USED);
     cursorColumnToContentValues(cursor, cv, ContactQuery.CARRIER_PRESENCE);
-
     return cv;
   }
 
diff --git a/java/com/android/contacts/common/model/account/BaseAccountType.java b/java/com/android/contacts/common/model/account/BaseAccountType.java
index ccdad36..8e9ba73 100644
--- a/java/com/android/contacts/common/model/account/BaseAccountType.java
+++ b/java/com/android/contacts/common/model/account/BaseAccountType.java
@@ -307,7 +307,7 @@
     DataKind kind =
         addKind(
             new DataKind(Phone.CONTENT_ITEM_TYPE, R.string.phoneLabelsGroup, Weight.PHONE, true));
-    kind.iconAltRes = R.drawable.quantum_ic_message_vd_theme_24;
+    kind.iconAltRes = R.drawable.quantum_ic_message_white_24;
     kind.iconAltDescriptionRes = R.string.sms;
     kind.actionHeader = new PhoneActionInflater();
     kind.actionAltHeader = new PhoneActionAltInflater();
@@ -1228,7 +1228,7 @@
               new PhoneActionInflater(),
               new SimpleInflater(Phone.NUMBER));
 
-      kind.iconAltRes = R.drawable.quantum_ic_message_vd_theme_24;
+      kind.iconAltRes = R.drawable.quantum_ic_message_white_24;
       kind.iconAltDescriptionRes = R.string.sms;
       kind.actionAltHeader = new PhoneActionAltInflater();
 
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_ab_search.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_ab_search.png
new file mode 100644
index 0000000..d86b219
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_ab_search.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_arrow_back_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_arrow_back_24dp.png
new file mode 100644
index 0000000..ddbb2c4
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_arrow_back_24dp.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_business_white_120dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_business_white_120dp.png
new file mode 100644
index 0000000..d5942dc
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_business_white_120dp.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_call_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_call_24dp.png
new file mode 100644
index 0000000..4dc5065
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_call_24dp.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_close_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_close_dk.png
new file mode 100644
index 0000000..9695529
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_close_dk.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_create_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_create_24dp.png
new file mode 100644
index 0000000..540ab4d
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_create_24dp.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_group_white_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_group_white_24dp.png
new file mode 100644
index 0000000..017e4bb
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_group_white_24dp.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_history_white_drawable_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_history_white_drawable_24dp.png
new file mode 100644
index 0000000..703d30b
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_history_white_drawable_24dp.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_info_outline_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_info_outline_24dp.png
new file mode 100644
index 0000000..c7b1113
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_info_outline_24dp.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_back.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_back.png
new file mode 100644
index 0000000..deb3a6d
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_back.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_dk.png
new file mode 100644
index 0000000..06bd18f
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_dk.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_lt.png
new file mode 100644
index 0000000..d829d11
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_lt.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_overflow_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_overflow_lt.png
new file mode 100644
index 0000000..1ba1295
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_overflow_lt.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_dk.png
new file mode 100644
index 0000000..5ff3ac5
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_dk.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_lt.png
new file mode 100644
index 0000000..b4ebfc7
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_lt.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_remove_field_holo_light.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_remove_field_holo_light.png
new file mode 100644
index 0000000..03fd2fb
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_remove_field_holo_light.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_dk.png
new file mode 100644
index 0000000..e8cb0f5
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_dk.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_holo_light.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_holo_light.png
new file mode 100644
index 0000000..4513796
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_holo_light.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_lt.png
new file mode 100644
index 0000000..1c9bb81
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_lt.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_person_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_person_24dp.png
new file mode 100644
index 0000000..56708b0
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_person_24dp.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_rx_videocam.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_rx_videocam.png
new file mode 100644
index 0000000..ccdda67
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_rx_videocam.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_tx_videocam.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_tx_videocam.png
new file mode 100644
index 0000000..603ddc8
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_tx_videocam.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_videocam.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_videocam.png
new file mode 100644
index 0000000..97905c9
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_videocam.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_voicemail_avatar.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_voicemail_avatar.png
new file mode 100644
index 0000000..2121878
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_voicemail_avatar.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_activated_holo.9.png
new file mode 100644
index 0000000..4ea7afa
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/list_activated_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_background_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_background_holo.9.png
new file mode 100644
index 0000000..cddf9be
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/list_background_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_focused_holo.9.png
new file mode 100644
index 0000000..86578be
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/list_focused_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_longpressed_holo_light.9.png
new file mode 100644
index 0000000..e9afcc9
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/list_longpressed_holo_light.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_pressed_holo_light.9.png
new file mode 100644
index 0000000..2054530
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/list_pressed_holo_light.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_section_divider_holo_custom.9.png
new file mode 100644
index 0000000..a0f1756
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/list_section_divider_holo_custom.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_title_holo.9.png
new file mode 100644
index 0000000..ae93717
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/list_title_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_focused_holo.9.png
new file mode 100644
index 0000000..4139942
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_focused_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_section_divider_holo_custom.9.png
new file mode 100644
index 0000000..569d28f
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_section_divider_holo_custom.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_title_holo.9.png
new file mode 100644
index 0000000..5ec4c96
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_title_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_focused_holo.9.png
new file mode 100644
index 0000000..4139942
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_focused_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_section_divider_holo_custom.9.png
new file mode 100644
index 0000000..065ff62
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_section_divider_holo_custom.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_title_holo.9.png
new file mode 100644
index 0000000..013d5e7
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_title_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-hdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-hdpi/list_activated_holo.9.png
new file mode 100644
index 0000000..947f03c
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-hdpi/list_activated_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-mdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-mdpi/list_activated_holo.9.png
new file mode 100644
index 0000000..6d09d72
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-mdpi/list_activated_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-xhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-xhdpi/list_activated_holo.9.png
new file mode 100644
index 0000000..63c7456
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-xhdpi/list_activated_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_focused_holo.9.png
new file mode 100644
index 0000000..4139942
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_focused_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_section_divider_holo_custom.9.png
new file mode 100644
index 0000000..af58554
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_section_divider_holo_custom.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_title_holo.9.png
new file mode 100644
index 0000000..cb801ac
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_title_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_activated_holo.9.png
new file mode 100644
index 0000000..3bf8e03
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-mdpi/list_activated_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_focused_holo.9.png
new file mode 100644
index 0000000..86578be
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-mdpi/list_focused_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_longpressed_holo_light.9.png
new file mode 100644
index 0000000..3226ab7
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-mdpi/list_longpressed_holo_light.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_pressed_holo_light.9.png
new file mode 100644
index 0000000..061904c
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-mdpi/list_pressed_holo_light.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_section_divider_holo_custom.9.png
new file mode 100644
index 0000000..1d9371d
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-mdpi/list_section_divider_holo_custom.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-sw600dp-hdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-sw600dp-hdpi/list_activated_holo.9.png
new file mode 100644
index 0000000..046b24a
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-sw600dp-hdpi/list_activated_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-sw600dp-mdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-sw600dp-mdpi/list_activated_holo.9.png
new file mode 100644
index 0000000..1ff3373
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-sw600dp-mdpi/list_activated_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-sw600dp-xhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-sw600dp-xhdpi/list_activated_holo.9.png
new file mode 100644
index 0000000..2eb7c7e
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-sw600dp-xhdpi/list_activated_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_activated_holo.9.png
new file mode 100644
index 0000000..eda10e6
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-xhdpi/list_activated_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_focused_holo.9.png
new file mode 100644
index 0000000..86578be
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-xhdpi/list_focused_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_longpressed_holo_light.9.png
new file mode 100644
index 0000000..5532e88
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-xhdpi/list_longpressed_holo_light.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_pressed_holo_light.9.png
new file mode 100644
index 0000000..f4af926
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-xhdpi/list_pressed_holo_light.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_section_divider_holo_custom.9.png
new file mode 100644
index 0000000..8fb0636
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-xhdpi/list_section_divider_holo_custom.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_activated_holo.9.png
new file mode 100644
index 0000000..52c00dd
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-xxhdpi/list_activated_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_focused_holo.9.png
new file mode 100644
index 0000000..3e4ca68
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-xxhdpi/list_focused_holo.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_longpressed_holo_light.9.png
new file mode 100644
index 0000000..230d649
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-xxhdpi/list_longpressed_holo_light.9.png
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_pressed_holo_light.9.png
new file mode 100644
index 0000000..1352a17
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-xxhdpi/list_pressed_holo_light.9.png
Binary files differ
diff --git a/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml b/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
similarity index 69%
copy from java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
copy to java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
index 33ca1fd..ecf704e 100644
--- a/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
+++ b/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2017 The Android Open Source Project
+  ~ Copyright (C) 2014 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -14,8 +14,7 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License
   -->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-  <item android:color="#80FFFFFF" android:state_enabled="false"/>
-  <item android:color="@android:color/white"/>
-</selector>
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:autoMirrored="true"
+    android:src="@drawable/quantum_ic_arrow_back_white_24"
+    android:tint="@color/actionbar_icon_color"/>
\ No newline at end of file
diff --git a/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml b/java/com/android/contacts/common/res/drawable/ic_call_and_share.xml
similarity index 65%
copy from java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
copy to java/com/android/contacts/common/res/drawable/ic_call_and_share.xml
index 33ca1fd..be0cdd3 100644
--- a/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
+++ b/java/com/android/contacts/common/res/drawable/ic_call_and_share.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2017 The Android Open Source Project
+  ~ Copyright (C) 2015 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -15,7 +15,8 @@
   ~ limitations under the License
   -->
 
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-  <item android:color="#80FFFFFF" android:state_enabled="false"/>
-  <item android:color="@android:color/white"/>
-</selector>
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:autoMirrored="true"
+    android:src="@drawable/ic_phone_attach"
+    android:tint="@color/search_video_call_icon_tint"
+    android:background="?attr/selectableItemBackgroundBorderless"/>
\ No newline at end of file
diff --git a/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml b/java/com/android/contacts/common/res/drawable/ic_person_add_tinted_24dp.xml
similarity index 70%
rename from java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
rename to java/com/android/contacts/common/res/drawable/ic_person_add_tinted_24dp.xml
index 33ca1fd..c2538cf 100644
--- a/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
+++ b/java/com/android/contacts/common/res/drawable/ic_person_add_tinted_24dp.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2017 The Android Open Source Project
+  ~ Copyright (C) 2014 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -14,8 +14,7 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License
   -->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-  <item android:color="#80FFFFFF" android:state_enabled="false"/>
-  <item android:color="@android:color/white"/>
-</selector>
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+  android:autoMirrored="true"
+  android:src="@drawable/quantum_ic_person_add_white_24"
+  android:tint="@color/actionbar_icon_color"/>
diff --git a/java/com/android/contacts/common/res/drawable/ic_search_add_contact.xml b/java/com/android/contacts/common/res/drawable/ic_search_add_contact.xml
new file mode 100644
index 0000000..476212d
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable/ic_search_add_contact.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+  android:autoMirrored="true"
+  android:src="@drawable/quantum_ic_person_add_white_24"/>
diff --git a/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml b/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml
similarity index 65%
copy from java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
copy to java/com/android/contacts/common/res/drawable/ic_search_video_call.xml
index 33ca1fd..0fe0367 100644
--- a/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
+++ b/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2017 The Android Open Source Project
+  ~ Copyright (C) 2015 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -15,7 +15,8 @@
   ~ limitations under the License
   -->
 
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-  <item android:color="#80FFFFFF" android:state_enabled="false"/>
-  <item android:color="@android:color/white"/>
-</selector>
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+  android:autoMirrored="true"
+  android:src="@drawable/quantum_ic_videocam_white_24"
+  android:tint="@color/search_video_call_icon_tint"
+  android:background="?attr/selectableItemBackgroundBorderless"/>
diff --git a/java/com/android/contacts/common/res/drawable/list_selector_background_transition_holo_light.xml b/java/com/android/contacts/common/res/drawable/list_selector_background_transition_holo_light.xml
new file mode 100644
index 0000000..35fff99
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable/list_selector_background_transition_holo_light.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<transition xmlns:android="http://schemas.android.com/apk/res/android">
+  <item android:drawable="@drawable/list_pressed_holo_light"/>
+  <item android:drawable="@drawable/list_longpressed_holo_light"/>
+</transition>
diff --git a/java/com/android/contacts/common/res/layout/dialog_call_subject.xml b/java/com/android/contacts/common/res/layout/dialog_call_subject.xml
index df8e8d2..a33b2ac 100644
--- a/java/com/android/contacts/common/res/layout/dialog_call_subject.xml
+++ b/java/com/android/contacts/common/res/layout/dialog_call_subject.xml
@@ -129,7 +129,7 @@
           android:layout_height="25dp"
           android:layout_alignParentStart="true"
           android:layout_centerVertical="true"
-          android:src="@drawable/quantum_ic_history_vd_theme_24"
+          android:src="@drawable/quantum_ic_history_white_24"
           android:tint="@color/call_subject_history_icon"/>
 
         <TextView
diff --git a/java/com/android/contacts/common/res/layout/search_bar_expanded.xml b/java/com/android/contacts/common/res/layout/search_bar_expanded.xml
index 7192eb0..fa16083 100644
--- a/java/com/android/contacts/common/res/layout/search_bar_expanded.xml
+++ b/java/com/android/contacts/common/res/layout/search_bar_expanded.xml
@@ -29,7 +29,7 @@
     android:layout_margin="@dimen/search_box_navigation_icon_margin"
     android:background="?attr/selectableItemBackgroundBorderless"
     android:contentDescription="@string/action_menu_back_from_search"
-    android:src="@drawable/quantum_ic_arrow_back_vd_theme_24"
+    android:src="@drawable/ic_back_arrow"
     android:tint="@color/contactscommon_actionbar_background_color"/>
 
   <EditText
@@ -56,7 +56,7 @@
     android:background="?attr/selectableItemBackgroundBorderless"
     android:clickable="true"
     android:contentDescription="@string/description_clear_search"
-    android:src="@drawable/quantum_ic_close_vd_theme_24"
+    android:src="@drawable/quantum_ic_close_white_24"
     android:tint="@color/searchbox_icon_tint"/>
 
 </LinearLayout>
diff --git a/java/com/android/contacts/common/res/values-af/strings.xml b/java/com/android/contacts/common/res/values-af/strings.xml
index 48e4158..52e612d 100644
--- a/java/com/android/contacts/common/res/values-af/strings.xml
+++ b/java/com/android/contacts/common/res/values-af/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Tik \'n nota om saam met oproep te stuur …"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"STUUR EN BEL"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>-oortjie"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>-oortjie <xliff:g id="COUNT_3">%2$d</xliff:g> ongelese items. </item>
diff --git a/java/com/android/contacts/common/res/values-am/strings.xml b/java/com/android/contacts/common/res/values-am/strings.xml
index 4121474..0283fbb 100644
--- a/java/com/android/contacts/common/res/values-am/strings.xml
+++ b/java/com/android/contacts/common/res/values-am/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"ከጥሪ ጋር ለመላክ የማስታወሻ ጽሑፍ ይተይቡ ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ላክ እና ደውል"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g><xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"የ<xliff:g id="TITLE">%1$s</xliff:g> ትር።"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> የ<xliff:g id="TITLE_2">%1$s</xliff:g> ትር። <xliff:g id="COUNT_3">%2$d</xliff:g> ያልተነበቡ ንጥሎች። </item>
diff --git a/java/com/android/contacts/common/res/values-ar/strings.xml b/java/com/android/contacts/common/res/values-ar/strings.xml
index 98fb057..a3862fe 100644
--- a/java/com/android/contacts/common/res/values-ar/strings.xml
+++ b/java/com/android/contacts/common/res/values-ar/strings.xml
@@ -252,7 +252,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"اكتب ملاحظة لإرسالها مع المكالمة ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"إرسال واتصال"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"علامة تبويب <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="zero"> <xliff:g id="TITLE_2">%1$s</xliff:g> علامة تبويب. <xliff:g id="COUNT_3">%2$d</xliff:g> عناصر غير مقروءة. </item>
diff --git a/java/com/android/contacts/common/res/values-az/strings.xml b/java/com/android/contacts/common/res/values-az/strings.xml
index 813ada7..9433771 100644
--- a/java/com/android/contacts/common/res/values-az/strings.xml
+++ b/java/com/android/contacts/common/res/values-az/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Zəng ilə göndərmək üçün qeyd yazın..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"GÖNDƏRİN VƏ ZƏNG EDİN"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> tabel."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> tabel. <xliff:g id="COUNT_3">%2$d</xliff:g> oxunmamış element. </item>
diff --git a/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml b/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml
index 3eccfc6..fc99567 100644
--- a/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml
@@ -249,7 +249,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Unesite belešku koju ćete poslati uz poziv..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"POŠALJI I POZOVI"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Kartica <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Kartica <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepročitana stavka. </item>
diff --git a/java/com/android/contacts/common/res/values-be/strings.xml b/java/com/android/contacts/common/res/values-be/strings.xml
index 99922a8..a9652a1 100644
--- a/java/com/android/contacts/common/res/values-be/strings.xml
+++ b/java/com/android/contacts/common/res/values-be/strings.xml
@@ -250,7 +250,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Увесці нататку для адпраўкі з выклікам…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"АДПРАВІЦЬ І ВЫКЛІКАЦЬ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Укладка <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one">Укладка <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрачытаны элемент. </item>
diff --git a/java/com/android/contacts/common/res/values-bg/strings.xml b/java/com/android/contacts/common/res/values-bg/strings.xml
index c2ebd27..0b57eb6 100644
--- a/java/com/android/contacts/common/res/values-bg/strings.xml
+++ b/java/com/android/contacts/common/res/values-bg/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Напишете придружаваща бележка, която ще се изпрати при извършване на обаждането..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ИЗПРАЩАНЕ И ОБАЖДАНЕ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Раздел „<xliff:g id="TITLE">%1$s</xliff:g>“."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other">Раздел „<xliff:g id="TITLE_2">%1$s</xliff:g>“. <xliff:g id="COUNT_3">%2$d</xliff:g> непрочетени елемента. </item>
diff --git a/java/com/android/contacts/common/res/values-bn/strings.xml b/java/com/android/contacts/common/res/values-bn/strings.xml
index 47e9b02..8e783d1 100644
--- a/java/com/android/contacts/common/res/values-bn/strings.xml
+++ b/java/com/android/contacts/common/res/values-bn/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"কলের সাথে পাঠানোর জন্য একটি নোট লিখুন ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"পাঠান এবং কল করুন"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ট্যাব৷"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ট্যাব৷ <xliff:g id="COUNT_3">%2$d</xliff:g>টি অপঠিত আইটেম৷ </item>
diff --git a/java/com/android/contacts/common/res/values-bs/strings.xml b/java/com/android/contacts/common/res/values-bs/strings.xml
index 305a746..278f6a8 100644
--- a/java/com/android/contacts/common/res/values-bs/strings.xml
+++ b/java/com/android/contacts/common/res/values-bs/strings.xml
@@ -249,7 +249,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Upišite bilješku koja će se poslati uz poziv ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"POŠALJI I POZOVI"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Kartica <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Kartica <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepročitana stavka. </item>
diff --git a/java/com/android/contacts/common/res/values-ca/strings.xml b/java/com/android/contacts/common/res/values-ca/strings.xml
index 8e80686..ad31a01 100644
--- a/java/com/android/contacts/common/res/values-ca/strings.xml
+++ b/java/com/android/contacts/common/res/values-ca/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Escriu una nota per enviar-la juntament amb la trucada..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ENVIA I TRUCA"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Pestanya <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other">Pestanya <xliff:g id="TITLE_2">%1$s</xliff:g>: <xliff:g id="COUNT_3">%2$d</xliff:g> elements no llegits </item>
diff --git a/java/com/android/contacts/common/res/values-cs/strings.xml b/java/com/android/contacts/common/res/values-cs/strings.xml
index 7aea200..ab54be9 100644
--- a/java/com/android/contacts/common/res/values-cs/strings.xml
+++ b/java/com/android/contacts/common/res/values-cs/strings.xml
@@ -250,7 +250,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Zadejte poznámku, která se odešle pomocí volání…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ODESLAT A ZAVOLAT"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Karta <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="few"> Karta <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepřečtené položky. </item>
diff --git a/java/com/android/contacts/common/res/values-da/strings.xml b/java/com/android/contacts/common/res/values-da/strings.xml
index 430895a..965d04a 100644
--- a/java/com/android/contacts/common/res/values-da/strings.xml
+++ b/java/com/android/contacts/common/res/values-da/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Indtast en note, som skal sendes ved opkald..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SEND OG RING"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Fanen <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Fanen <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> ulæst element. </item>
diff --git a/java/com/android/contacts/common/res/values-de/strings.xml b/java/com/android/contacts/common/res/values-de/strings.xml
index a46f278..60c5e68 100644
--- a/java/com/android/contacts/common/res/values-de/strings.xml
+++ b/java/com/android/contacts/common/res/values-de/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Notiz eingeben, die beim Anrufen gesendet wird..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SENDEN UND ANRUFEN"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Tab \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other">Tab \"<xliff:g id="TITLE_2">%1$s</xliff:g>\". <xliff:g id="COUNT_3">%2$d</xliff:g> ungelesene Elemente. </item>
diff --git a/java/com/android/contacts/common/res/values-el/strings.xml b/java/com/android/contacts/common/res/values-el/strings.xml
index 567b8fb..9af3bc5 100644
--- a/java/com/android/contacts/common/res/values-el/strings.xml
+++ b/java/com/android/contacts/common/res/values-el/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Πληκτρολογήστε μια σημείωση για αποστολή με την κλήση…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ΑΠΟΣΤΟΛΗ ΚΑΙ ΚΛΗΣΗ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Καρτέλα <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Καρτέλα <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> μη αναγνωσμένα στοιχεία. </item>
diff --git a/java/com/android/contacts/common/res/values-en-rAU/strings.xml b/java/com/android/contacts/common/res/values-en-rAU/strings.xml
index 660993d..996c6ee 100644
--- a/java/com/android/contacts/common/res/values-en-rAU/strings.xml
+++ b/java/com/android/contacts/common/res/values-en-rAU/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Type a note to send with call ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SEND &amp; CALL"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> tab."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item>
diff --git a/java/com/android/contacts/common/res/values-en-rGB/strings.xml b/java/com/android/contacts/common/res/values-en-rGB/strings.xml
index 660993d..996c6ee 100644
--- a/java/com/android/contacts/common/res/values-en-rGB/strings.xml
+++ b/java/com/android/contacts/common/res/values-en-rGB/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Type a note to send with call ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SEND &amp; CALL"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> tab."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item>
diff --git a/java/com/android/contacts/common/res/values-en-rIN/strings.xml b/java/com/android/contacts/common/res/values-en-rIN/strings.xml
index 660993d..996c6ee 100644
--- a/java/com/android/contacts/common/res/values-en-rIN/strings.xml
+++ b/java/com/android/contacts/common/res/values-en-rIN/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Type a note to send with call ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SEND &amp; CALL"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> tab."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item>
diff --git a/java/com/android/contacts/common/res/values-es-rUS/strings.xml b/java/com/android/contacts/common/res/values-es-rUS/strings.xml
index 1c0339a..acb563c 100644
--- a/java/com/android/contacts/common/res/values-es-rUS/strings.xml
+++ b/java/com/android/contacts/common/res/values-es-rUS/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Escribe una nota para enviar con la llamada…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR Y LLAMAR"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Pestaña <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Pestaña <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elementos no leídos. </item>
diff --git a/java/com/android/contacts/common/res/values-es/strings.xml b/java/com/android/contacts/common/res/values-es/strings.xml
index b0956ec..def7a44 100644
--- a/java/com/android/contacts/common/res/values-es/strings.xml
+++ b/java/com/android/contacts/common/res/values-es/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Escribe una nota para enviarla con la llamada..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR Y LLAMAR"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Pestaña <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Pestaña <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elementos no leídos. </item>
diff --git a/java/com/android/contacts/common/res/values-et/strings.xml b/java/com/android/contacts/common/res/values-et/strings.xml
index e152f59..c80d542 100644
--- a/java/com/android/contacts/common/res/values-et/strings.xml
+++ b/java/com/android/contacts/common/res/values-et/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Sisestage märkus, mis koos kõnega saata ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SAADA JA HELISTA"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Vahekaart <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Vahekaart <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> lugemata üksust. </item>
diff --git a/java/com/android/contacts/common/res/values-eu/strings.xml b/java/com/android/contacts/common/res/values-eu/strings.xml
index 967b635..868d668 100644
--- a/java/com/android/contacts/common/res/values-eu/strings.xml
+++ b/java/com/android/contacts/common/res/values-eu/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Idatzi deiarekin batera bidali beharreko oharra…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"BIDALI ETA DEITU"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g>: <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> fitxa."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> fitxa. Irakurri gabeko <xliff:g id="COUNT_3">%2$d</xliff:g> elementu. </item>
diff --git a/java/com/android/contacts/common/res/values-fa/strings.xml b/java/com/android/contacts/common/res/values-fa/strings.xml
index 3650e46..dda1064 100644
--- a/java/com/android/contacts/common/res/values-fa/strings.xml
+++ b/java/com/android/contacts/common/res/values-fa/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"یادداشتی بنویسید که همراه تماس ارسال شود…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ارسال و تماس"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / ‏<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"برگه «<xliff:g id="TITLE">%1$s</xliff:g>»."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> برگه «<xliff:g id="TITLE_2">%1$s</xliff:g>». <xliff:g id="COUNT_3">%2$d</xliff:g> مورد خوانده‌نشده. </item>
diff --git a/java/com/android/contacts/common/res/values-fi/strings.xml b/java/com/android/contacts/common/res/values-fi/strings.xml
index b7739de..b8065b2 100644
--- a/java/com/android/contacts/common/res/values-fi/strings.xml
+++ b/java/com/android/contacts/common/res/values-fi/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Kirjoita muistiinpano lähetettäväksi puhelun kanssa…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"LÄHETÄ JA SOITA"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>-välilehti."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>-välilehti. <xliff:g id="COUNT_3">%2$d</xliff:g> lukematonta kohdetta. </item>
diff --git a/java/com/android/contacts/common/res/values-fr-rCA/strings.xml b/java/com/android/contacts/common/res/values-fr-rCA/strings.xml
index c20b882..82f5492 100644
--- a/java/com/android/contacts/common/res/values-fr-rCA/strings.xml
+++ b/java/com/android/contacts/common/res/values-fr-rCA/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Tapez une note à envoyer avec l\'appel..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ENVOYER ET APPELER"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> : <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Onglet <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Onglet <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> élément non lu. </item>
diff --git a/java/com/android/contacts/common/res/values-fr/strings.xml b/java/com/android/contacts/common/res/values-fr/strings.xml
index 93b52dc..474d721 100644
--- a/java/com/android/contacts/common/res/values-fr/strings.xml
+++ b/java/com/android/contacts/common/res/values-fr/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Saisissez une note pour accompagner l\'appel..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ENVOYER ET APPELER"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Onglet <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Onglet <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> élément non lu. </item>
diff --git a/java/com/android/contacts/common/res/values-gl/strings.xml b/java/com/android/contacts/common/res/values-gl/strings.xml
index 4aa1fc1..4a3262a 100644
--- a/java/com/android/contacts/common/res/values-gl/strings.xml
+++ b/java/com/android/contacts/common/res/values-gl/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Escribe unha nota para enviala coa chamada…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR E CHAMAR"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Pestana <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Pestana <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elementos non lidos. </item>
diff --git a/java/com/android/contacts/common/res/values-gu/strings.xml b/java/com/android/contacts/common/res/values-gu/strings.xml
index 8bbfb3a..536aceb 100644
--- a/java/com/android/contacts/common/res/values-gu/strings.xml
+++ b/java/com/android/contacts/common/res/values-gu/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"કૉલ સાથે મોકલવા માટે એક નોંધ લખો ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"મોકલો અને કૉલ કરો"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ટૅબ."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ટૅબ. <xliff:g id="COUNT_3">%2$d</xliff:g> વાંચ્યા વગરની આઇટમ. </item>
diff --git a/java/com/android/contacts/common/res/values-hi/strings.xml b/java/com/android/contacts/common/res/values-hi/strings.xml
index c1af9b7..c61e195 100644
--- a/java/com/android/contacts/common/res/values-hi/strings.xml
+++ b/java/com/android/contacts/common/res/values-hi/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"कॉल के साथ भेजने के लिए नोट लिखें ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"भेजें और कॉल करें"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> टैब."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> टैब. <xliff:g id="COUNT_3">%2$d</xliff:g> नहीं पढ़े गए आइटम. </item>
diff --git a/java/com/android/contacts/common/res/values-hr/strings.xml b/java/com/android/contacts/common/res/values-hr/strings.xml
index a60c884..66986dd 100644
--- a/java/com/android/contacts/common/res/values-hr/strings.xml
+++ b/java/com/android/contacts/common/res/values-hr/strings.xml
@@ -249,7 +249,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Napišite bilješku koju ćete poslati uz poziv..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"POŠALJI I NAZOVI"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Kartica <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Kartica <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepročitana stavka. </item>
diff --git a/java/com/android/contacts/common/res/values-hu/strings.xml b/java/com/android/contacts/common/res/values-hu/strings.xml
index 19fbbe8..22bf509 100644
--- a/java/com/android/contacts/common/res/values-hu/strings.xml
+++ b/java/com/android/contacts/common/res/values-hu/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Írjon üzenetet, amelyet elküldhetünk a hívással együtt…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"KÜLDÉS ÉS HÍVÁS"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="LIMIT">%2$s</xliff:g>/<xliff:g id="COUNT">%1$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> lap."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> lap. <xliff:g id="COUNT_3">%2$d</xliff:g> olvasatlan elem. </item>
diff --git a/java/com/android/contacts/common/res/values-hy/strings.xml b/java/com/android/contacts/common/res/values-hy/strings.xml
index b3ed5e5..85c9023 100644
--- a/java/com/android/contacts/common/res/values-hy/strings.xml
+++ b/java/com/android/contacts/common/res/values-hy/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Մուտքագրեք նշում՝ զանգի հետ ուղարկելու համար ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ՈՒՂԱՐԿԵԼ ԵՎ ԶԱՆԳԵԼ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ներդիր:"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item>
diff --git a/java/com/android/contacts/common/res/values-in/strings.xml b/java/com/android/contacts/common/res/values-in/strings.xml
index 13252a5..d7ee8bf 100644
--- a/java/com/android/contacts/common/res/values-in/strings.xml
+++ b/java/com/android/contacts/common/res/values-in/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Ketik catatan untuk dikirim dengan panggilan telepon ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"KIRIM &amp; TELEPON"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Tab <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Tab <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> item belum dibaca. </item>
diff --git a/java/com/android/contacts/common/res/values-is/strings.xml b/java/com/android/contacts/common/res/values-is/strings.xml
index 569c10f..26c1aef 100644
--- a/java/com/android/contacts/common/res/values-is/strings.xml
+++ b/java/com/android/contacts/common/res/values-is/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Sláðu inn texta til að senda með símtalinu..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SENDA OG HRINGJA"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Flipinn <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Flipinn <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> ólesið atriði. </item>
diff --git a/java/com/android/contacts/common/res/values-it/strings.xml b/java/com/android/contacts/common/res/values-it/strings.xml
index 342cd61..8ea5648 100644
--- a/java/com/android/contacts/common/res/values-it/strings.xml
+++ b/java/com/android/contacts/common/res/values-it/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Digita una nota da inviare con la chiamata..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"INVIA E CHIAMA"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Scheda <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Scheda <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elementi da leggere. </item>
diff --git a/java/com/android/contacts/common/res/values-iw/strings.xml b/java/com/android/contacts/common/res/values-iw/strings.xml
index e0d8e5d..2a6b2c1 100644
--- a/java/com/android/contacts/common/res/values-iw/strings.xml
+++ b/java/com/android/contacts/common/res/values-iw/strings.xml
@@ -250,7 +250,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"הקלד הערה לשליחה עם השיחה..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"שלח והתקשר"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"‎<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>‎"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"הכרטיסייה <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="two">הכרטיסייה <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> פריטים שלא נקראו. </item>
diff --git a/java/com/android/contacts/common/res/values-ja/strings.xml b/java/com/android/contacts/common/res/values-ja/strings.xml
index e224a38..3271b46 100644
--- a/java/com/android/contacts/common/res/values-ja/strings.xml
+++ b/java/com/android/contacts/common/res/values-ja/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"発信時に送信するメモを入力..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"送信 / 通話"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g>、<xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> タブ。"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> タブ。<xliff:g id="COUNT_3">%2$d</xliff:g> 件の未読項目。</item>
diff --git a/java/com/android/contacts/common/res/values-ka/strings.xml b/java/com/android/contacts/common/res/values-ka/strings.xml
index 86273b3..ebbee6e 100644
--- a/java/com/android/contacts/common/res/values-ka/strings.xml
+++ b/java/com/android/contacts/common/res/values-ka/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"აკრიფეთ შენიშვნა ზართან ერთად გასაგზავნად ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"გაგზავნა და დარეკვა"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ცხრ."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ცხრ. <xliff:g id="COUNT_3">%2$d</xliff:g> წაუკითხავი ერთეული. </item>
diff --git a/java/com/android/contacts/common/res/values-kk/strings.xml b/java/com/android/contacts/common/res/values-kk/strings.xml
index 45df334..327532a 100644
--- a/java/com/android/contacts/common/res/values-kk/strings.xml
+++ b/java/com/android/contacts/common/res/values-kk/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Қоңыраумен жіберу үшін ескертпе теріңіз ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ЖІБЕРУ ЖӘНЕ ҚОҢЫРАУ ШАЛУ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> қойындысы."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> қойындысы. <xliff:g id="COUNT_3">%2$d</xliff:g> оқылмаған элемент. </item>
diff --git a/java/com/android/contacts/common/res/values-km/strings.xml b/java/com/android/contacts/common/res/values-km/strings.xml
index 8d4ba2a..5030167 100644
--- a/java/com/android/contacts/common/res/values-km/strings.xml
+++ b/java/com/android/contacts/common/res/values-km/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"វាយបញ្ចូលចំណាំដែលត្រូវផ្ញើជាមួយការហៅទូរស័ព្ទ ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ផ្ញើ &amp; ហៅ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"ផ្ទាំង <xliff:g id="TITLE">%1$s</xliff:g>។"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other">ផ្ទាំង <xliff:g id="TITLE_2">%1$s</xliff:g>។ ធាតុមិនទាន់​អាន <xliff:g id="COUNT_3">%2$d</xliff:g> </item>
diff --git a/java/com/android/contacts/common/res/values-kn/strings.xml b/java/com/android/contacts/common/res/values-kn/strings.xml
index 0dfdaa6..446e078 100644
--- a/java/com/android/contacts/common/res/values-kn/strings.xml
+++ b/java/com/android/contacts/common/res/values-kn/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"ಕರೆ ಕಳುಹಿಸಲು ಟಿಪ್ಪಣಿಯನ್ನು ಟೈಪ್ ಮಾಡಿ ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ಕಳುಹಿಸು ಮತ್ತು ಕರೆಮಾಡು"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ಟ್ಯಾಬ್."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ಟ್ಯಾಬ್. <xliff:g id="COUNT_3">%2$d</xliff:g> ಓದದಿರುವ ಐಟಂಗಳು. </item>
diff --git a/java/com/android/contacts/common/res/values-ko/strings.xml b/java/com/android/contacts/common/res/values-ko/strings.xml
index 13edcc1..4c2bd4f 100644
--- a/java/com/android/contacts/common/res/values-ko/strings.xml
+++ b/java/com/android/contacts/common/res/values-ko/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"통화에 함께 전송할 메모를 입력하세요..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"보내기 및 전화 걸기"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> 탭"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> 탭. 읽지 않은 항목 <xliff:g id="COUNT_3">%2$d</xliff:g>개 </item>
diff --git a/java/com/android/contacts/common/res/values-ky/strings.xml b/java/com/android/contacts/common/res/values-ky/strings.xml
index 43e12e7..e5bab45 100644
--- a/java/com/android/contacts/common/res/values-ky/strings.xml
+++ b/java/com/android/contacts/common/res/values-ky/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Чалуу менен жөнөтүлө турган кыска жазууну териңиз …"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ЖӨНӨТҮҮ ЖАНА ЧАЛУУ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"\"<xliff:g id="TITLE">%1$s</xliff:g>\" өтмөгү."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> \"<xliff:g id="TITLE_2">%1$s</xliff:g>\" өтмөгү. <xliff:g id="COUNT_3">%2$d</xliff:g> нерсе окула элек. </item>
diff --git a/java/com/android/contacts/common/res/values-lo/strings.xml b/java/com/android/contacts/common/res/values-lo/strings.xml
index d98ec8b..c649539 100644
--- a/java/com/android/contacts/common/res/values-lo/strings.xml
+++ b/java/com/android/contacts/common/res/values-lo/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"ພິມ​ບັນ​ທຶກ ເພື່ອ​ສົ່ງ​ກັບ​ການ​ໂທ ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ສົ່ງ ແລະ ໂທ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"ແຖບ <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other">ແຖບ <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> ລາຍການບໍ່ທັນໄດ້ອ່ານ. </item>
diff --git a/java/com/android/contacts/common/res/values-lt/strings.xml b/java/com/android/contacts/common/res/values-lt/strings.xml
index 53773b2..b74bd99 100644
--- a/java/com/android/contacts/common/res/values-lt/strings.xml
+++ b/java/com/android/contacts/common/res/values-lt/strings.xml
@@ -250,7 +250,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Įveskite užrašą, kurį galima išsiųsti skambinant..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SIŲSTI IR SKAMBINTI"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Skirtukas „<xliff:g id="TITLE">%1$s</xliff:g>“."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Skirtukas „<xliff:g id="TITLE_2">%1$s</xliff:g>“. <xliff:g id="COUNT_3">%2$d</xliff:g> neskaitytas elementas. </item>
diff --git a/java/com/android/contacts/common/res/values-lv/strings.xml b/java/com/android/contacts/common/res/values-lv/strings.xml
index cc56901..c09a27f 100644
--- a/java/com/android/contacts/common/res/values-lv/strings.xml
+++ b/java/com/android/contacts/common/res/values-lv/strings.xml
@@ -249,7 +249,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Ierakstiet piezīmi, ko nosūtīt ar zvanu..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SŪTĪT UN ZVANĪT"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> no <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g>: <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Cilne “<xliff:g id="TITLE">%1$s</xliff:g>”"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="zero"> Cilne “<xliff:g id="TITLE_2">%1$s</xliff:g>”. <xliff:g id="COUNT_3">%2$d</xliff:g> nelasīti vienumi. </item>
diff --git a/java/com/android/contacts/common/res/values-mk/strings.xml b/java/com/android/contacts/common/res/values-mk/strings.xml
index f6a4af8..da1530f 100644
--- a/java/com/android/contacts/common/res/values-mk/strings.xml
+++ b/java/com/android/contacts/common/res/values-mk/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Напишете белешка да се испрати со повикот..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ИСПРАТИ И ПОВИКАЈ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Картичка <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Картичка <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрочитана ставка. </item>
diff --git a/java/com/android/contacts/common/res/values-ml/strings.xml b/java/com/android/contacts/common/res/values-ml/strings.xml
index dfc21ff..7e92749 100644
--- a/java/com/android/contacts/common/res/values-ml/strings.xml
+++ b/java/com/android/contacts/common/res/values-ml/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"കോളിനൊപ്പം അയയ്ക്കുന്നതിന് ഒരു കുറിപ്പ് ടൈപ്പുചെയ്യുക ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"അയയ്‌ക്കുകയും വിളിക്കുകയും ചെയ്യുക"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ടാബ്."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ടാബ്. <xliff:g id="COUNT_3">%2$d</xliff:g> വായിക്കാത്ത ഇനങ്ങൾ. </item>
diff --git a/java/com/android/contacts/common/res/values-mn/strings.xml b/java/com/android/contacts/common/res/values-mn/strings.xml
index a5c2afd..f0a8c92 100644
--- a/java/com/android/contacts/common/res/values-mn/strings.xml
+++ b/java/com/android/contacts/common/res/values-mn/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Дуудлаганд илгээх тэмдэглэл бичнэ үү..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ИЛГЭЭХ, ДУУДЛАГА"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> таб."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> таб. <xliff:g id="COUNT_3">%2$d</xliff:g> уншаагүй зүйл. </item>
diff --git a/java/com/android/contacts/common/res/values-mr/strings.xml b/java/com/android/contacts/common/res/values-mr/strings.xml
index d632bb1..96504c7 100644
--- a/java/com/android/contacts/common/res/values-mr/strings.xml
+++ b/java/com/android/contacts/common/res/values-mr/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"कॉलसह पाठविण्‍यासाठी एक टीप टाइप करा..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"पाठवा आणि कॉल करा"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> टॅब."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> टॅब. <xliff:g id="COUNT_3">%2$d</xliff:g> न वाचलेला आयटम. </item>
diff --git a/java/com/android/contacts/common/res/values-ms/strings.xml b/java/com/android/contacts/common/res/values-ms/strings.xml
index 24ff737..60d2b7a 100644
--- a/java/com/android/contacts/common/res/values-ms/strings.xml
+++ b/java/com/android/contacts/common/res/values-ms/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Taip nota untuk dihantar dengan panggilan…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"HANTAR &amp; PANGGIL"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Tab <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other">Tab <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> item belum dibaca. </item>
diff --git a/java/com/android/contacts/common/res/values-my/strings.xml b/java/com/android/contacts/common/res/values-my/strings.xml
index c0cb020..d81e895 100644
--- a/java/com/android/contacts/common/res/values-my/strings.xml
+++ b/java/com/android/contacts/common/res/values-my/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"ခေါ်ဆိုမှုဖြင့် ပေးပို့ရန် မှတ်စုတစ်ခု ရိုက်ပါ ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ပေးပို့ပြီး ခေါ်ပါ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> တဘ်။"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> တဘ်။ မဖတ်ရသေးသည့် အရာ <xliff:g id="COUNT_3">%2$d</xliff:g> ခု။ </item>
diff --git a/java/com/android/contacts/common/res/values-nb/strings.xml b/java/com/android/contacts/common/res/values-nb/strings.xml
index 80507fc..7085cb3 100644
--- a/java/com/android/contacts/common/res/values-nb/strings.xml
+++ b/java/com/android/contacts/common/res/values-nb/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Skriv et notat du vil sende med anropet …"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SEND OG RING"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>-fanen."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>-fanen. <xliff:g id="COUNT_3">%2$d</xliff:g> uleste elementer. </item>
diff --git a/java/com/android/contacts/common/res/values-ne/strings.xml b/java/com/android/contacts/common/res/values-ne/strings.xml
index 2459c8a..1f54232 100644
--- a/java/com/android/contacts/common/res/values-ne/strings.xml
+++ b/java/com/android/contacts/common/res/values-ne/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"यस कलसँग पठाउन एक टिप्पणी  टाइप गर्नुहोस्"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"पठाउनुहोस् र कल गर्नुहोस्"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ट्याब।"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ट्याब। <xliff:g id="COUNT_3">%2$d</xliff:g> नपढिएका वस्तुहरू। </item>
diff --git a/java/com/android/contacts/common/res/values-nl/strings.xml b/java/com/android/contacts/common/res/values-nl/strings.xml
index c92249b..9d41899 100644
--- a/java/com/android/contacts/common/res/values-nl/strings.xml
+++ b/java/com/android/contacts/common/res/values-nl/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Typ een notitie om te verzenden met de oproep..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"VERZENDEN EN BELLEN"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Tabblad <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other">Tabblad <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> ongelezen items. </item>
diff --git a/java/com/android/contacts/common/res/values-no/strings.xml b/java/com/android/contacts/common/res/values-no/strings.xml
index 80507fc..7085cb3 100644
--- a/java/com/android/contacts/common/res/values-no/strings.xml
+++ b/java/com/android/contacts/common/res/values-no/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Skriv et notat du vil sende med anropet …"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SEND OG RING"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>-fanen."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>-fanen. <xliff:g id="COUNT_3">%2$d</xliff:g> uleste elementer. </item>
diff --git a/java/com/android/contacts/common/res/values-pa/strings.xml b/java/com/android/contacts/common/res/values-pa/strings.xml
index 6401993..c96510c 100644
--- a/java/com/android/contacts/common/res/values-pa/strings.xml
+++ b/java/com/android/contacts/common/res/values-pa/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"ਕਾਲ ਦੇ ਨਾਲ ਭੇਜਣ ਲਈ ਕੋਈ ਨੋਟ ਟਾਈਪ ਕਰੋ ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ਭੇਜੋ ਅਤੇ ਕਾਲ ਕਰੋ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ਟੈਬ।"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ਟੈਬ। <xliff:g id="COUNT_3">%2$d</xliff:g> ਅਣ-ਪੜ੍ਹੀਆਂ ਆਈਟਮਾਂ। </item>
diff --git a/java/com/android/contacts/common/res/values-pl/strings.xml b/java/com/android/contacts/common/res/values-pl/strings.xml
index c10bb1f..c4e65f5 100644
--- a/java/com/android/contacts/common/res/values-pl/strings.xml
+++ b/java/com/android/contacts/common/res/values-pl/strings.xml
@@ -250,7 +250,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Wpisz notatkę, którą chcesz wysłać razem z połączeniem..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"WYŚLIJ I ZADZWOŃ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Karta <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="few"> Karta <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nieprzeczytane elementy. </item>
diff --git a/java/com/android/contacts/common/res/values-pt-rBR/strings.xml b/java/com/android/contacts/common/res/values-pt-rBR/strings.xml
index 95bbb0b..ee2b87c 100644
--- a/java/com/android/contacts/common/res/values-pt-rBR/strings.xml
+++ b/java/com/android/contacts/common/res/values-pt-rBR/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Escreva uma nota para enviar com a chamada..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR E LIGAR"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Guia \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one">Guia \"<xliff:g id="TITLE_2">%1$s</xliff:g>\". <xliff:g id="COUNT_3">%2$d</xliff:g> item não lido. </item>
diff --git a/java/com/android/contacts/common/res/values-pt-rPT/strings.xml b/java/com/android/contacts/common/res/values-pt-rPT/strings.xml
index c3b50e0..44bba14 100644
--- a/java/com/android/contacts/common/res/values-pt-rPT/strings.xml
+++ b/java/com/android/contacts/common/res/values-pt-rPT/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Escrever uma nota para enviar com a chamada..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR E LIGAR"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Separador <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item>
diff --git a/java/com/android/contacts/common/res/values-pt/strings.xml b/java/com/android/contacts/common/res/values-pt/strings.xml
index 95bbb0b..ee2b87c 100644
--- a/java/com/android/contacts/common/res/values-pt/strings.xml
+++ b/java/com/android/contacts/common/res/values-pt/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Escreva uma nota para enviar com a chamada..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR E LIGAR"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Guia \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one">Guia \"<xliff:g id="TITLE_2">%1$s</xliff:g>\". <xliff:g id="COUNT_3">%2$d</xliff:g> item não lido. </item>
diff --git a/java/com/android/contacts/common/res/values-ro/strings.xml b/java/com/android/contacts/common/res/values-ro/strings.xml
index da0d5da..358e7af 100644
--- a/java/com/android/contacts/common/res/values-ro/strings.xml
+++ b/java/com/android/contacts/common/res/values-ro/strings.xml
@@ -249,7 +249,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Introduceți o notă ca să o trimiteți împreună cu apelul..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"TRIMITEȚI ȘI APELAȚI"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Fila <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="few"> Fila <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elemente necitite. </item>
diff --git a/java/com/android/contacts/common/res/values-ru/strings.xml b/java/com/android/contacts/common/res/values-ru/strings.xml
index f4e1d84..3442f2c 100644
--- a/java/com/android/contacts/common/res/values-ru/strings.xml
+++ b/java/com/android/contacts/common/res/values-ru/strings.xml
@@ -250,7 +250,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Введите текст…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ОТПРАВИТЬ И ПОЗВОНИТЬ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Вкладка \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one">Вкладка <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрочитанный элемент. </item>
diff --git a/java/com/android/contacts/common/res/values-si/strings.xml b/java/com/android/contacts/common/res/values-si/strings.xml
index fc121f6..72ca32d 100644
--- a/java/com/android/contacts/common/res/values-si/strings.xml
+++ b/java/com/android/contacts/common/res/values-si/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"ඇමතුම සමග යැවීමට සටහනක් ටයිප් කරන්න ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"යවන්න සහ අමතන්න"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ටැබය."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ටැබය. නොකියවූ අයිතම <xliff:g id="COUNT_3">%2$d</xliff:g>. </item>
diff --git a/java/com/android/contacts/common/res/values-sk/strings.xml b/java/com/android/contacts/common/res/values-sk/strings.xml
index 90a4752..b85f63f 100644
--- a/java/com/android/contacts/common/res/values-sk/strings.xml
+++ b/java/com/android/contacts/common/res/values-sk/strings.xml
@@ -250,7 +250,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Napíšte poznámku, ktorá sa odošle s hovorom..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ODOSLAŤ A VOLAŤ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Karta <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="few"> Karta <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> neprečítané položky. </item>
diff --git a/java/com/android/contacts/common/res/values-sl/strings.xml b/java/com/android/contacts/common/res/values-sl/strings.xml
index ef2e1a3..f4c39de 100644
--- a/java/com/android/contacts/common/res/values-sl/strings.xml
+++ b/java/com/android/contacts/common/res/values-sl/strings.xml
@@ -250,7 +250,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Vnesite zapisek, ki ga želite poslati s klicem ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"POŠLJI IN KLIČI"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g>: <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Zavihek »<xliff:g id="TITLE">%1$s</xliff:g>«."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Zavihek »<xliff:g id="TITLE_2">%1$s</xliff:g>«. <xliff:g id="COUNT_3">%2$d</xliff:g> neprebran element. </item>
diff --git a/java/com/android/contacts/common/res/values-sq/strings.xml b/java/com/android/contacts/common/res/values-sq/strings.xml
index 3011492..553c46d 100644
--- a/java/com/android/contacts/common/res/values-sq/strings.xml
+++ b/java/com/android/contacts/common/res/values-sq/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Shkruaj një shënim për të dërguar një telefonatë..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"DËRGO DHE TELEFONO"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Skeda <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Skeda <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> artikuj të palexuar. </item>
diff --git a/java/com/android/contacts/common/res/values-sr/strings.xml b/java/com/android/contacts/common/res/values-sr/strings.xml
index 25adf7b..99997e6 100644
--- a/java/com/android/contacts/common/res/values-sr/strings.xml
+++ b/java/com/android/contacts/common/res/values-sr/strings.xml
@@ -249,7 +249,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Унесите белешку коју ћете послати уз позив..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ПОШАЉИ И ПОЗОВИ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Картица <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Картица <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрочитана ставка. </item>
diff --git a/java/com/android/contacts/common/res/values-sv/strings.xml b/java/com/android/contacts/common/res/values-sv/strings.xml
index ee748a4..79e56e5 100644
--- a/java/com/android/contacts/common/res/values-sv/strings.xml
+++ b/java/com/android/contacts/common/res/values-sv/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Gör en anteckning som skickas när du ringer …"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SKICKA OCH RING"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Fliken <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other">Fliken <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> olästa poster. </item>
diff --git a/java/com/android/contacts/common/res/values-sw/strings.xml b/java/com/android/contacts/common/res/values-sw/strings.xml
index 7bd0835..4d30271 100644
--- a/java/com/android/contacts/common/res/values-sw/strings.xml
+++ b/java/com/android/contacts/common/res/values-sw/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Andika dokezo litakaloambatana na simu utakayopiga ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"TUMA na UPIGE SIMU"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Kichupo cha <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Kichupo cha <xliff:g id="TITLE_2">%1$s</xliff:g>. Vipengee <xliff:g id="COUNT_3">%2$d</xliff:g> havijasomwa. </item>
diff --git a/java/com/android/contacts/common/res/values-ta/strings.xml b/java/com/android/contacts/common/res/values-ta/strings.xml
index d5b3f93..e041a99 100644
--- a/java/com/android/contacts/common/res/values-ta/strings.xml
+++ b/java/com/android/contacts/common/res/values-ta/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"அழைப்புடன் சேர்த்து அனுப்ப, குறிப்பை உள்ளிடவும்..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"அனுப்பி அழை"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> தாவல்."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> தாவல். படிக்காதவை (<xliff:g id="COUNT_3">%2$d</xliff:g>). </item>
diff --git a/java/com/android/contacts/common/res/values-te/strings.xml b/java/com/android/contacts/common/res/values-te/strings.xml
index 4126ddc..6dd0e21 100644
--- a/java/com/android/contacts/common/res/values-te/strings.xml
+++ b/java/com/android/contacts/common/res/values-te/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"కాల్‌తో పాటు పంపడానికి గమనికను టైప్ చేయండి ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"పంపు &amp; కాల్ చేయి"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ట్యాబ్."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ట్యాబ్. <xliff:g id="COUNT_3">%2$d</xliff:g> చదవని అంశాలు. </item>
diff --git a/java/com/android/contacts/common/res/values-th/strings.xml b/java/com/android/contacts/common/res/values-th/strings.xml
index 2d52f34..b979e74 100644
--- a/java/com/android/contacts/common/res/values-th/strings.xml
+++ b/java/com/android/contacts/common/res/values-th/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"พิมพ์โน้ตเพื่อส่งพร้อมการโทร ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ส่งและโทร"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"แท็บ <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> แท็บ <xliff:g id="TITLE_2">%1$s</xliff:g> ยังไม่อ่าน <xliff:g id="COUNT_3">%2$d</xliff:g> รายการ </item>
diff --git a/java/com/android/contacts/common/res/values-tl/strings.xml b/java/com/android/contacts/common/res/values-tl/strings.xml
index 30978db..62caef8 100644
--- a/java/com/android/contacts/common/res/values-tl/strings.xml
+++ b/java/com/android/contacts/common/res/values-tl/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Mag-type ng isang tala na ipadadala kasama ng tawag ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"IPADALA AT TAWAGAN"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Tab ng <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Tab ng <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> hindi pa nababasang item. </item>
diff --git a/java/com/android/contacts/common/res/values-tr/strings.xml b/java/com/android/contacts/common/res/values-tr/strings.xml
index c18097a..ce3c109 100644
--- a/java/com/android/contacts/common/res/values-tr/strings.xml
+++ b/java/com/android/contacts/common/res/values-tr/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Çağrıyla göndermek için bir not yazın..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"GÖNDER VE ARA"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> sekmesi."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> sekmesi. <xliff:g id="COUNT_3">%2$d</xliff:g> okunmamış öğe. </item>
diff --git a/java/com/android/contacts/common/res/values-uk/strings.xml b/java/com/android/contacts/common/res/values-uk/strings.xml
index 94d09db..f6d1e47 100644
--- a/java/com/android/contacts/common/res/values-uk/strings.xml
+++ b/java/com/android/contacts/common/res/values-uk/strings.xml
@@ -250,7 +250,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Введіть нотатку, яку хочете надіслати під час дзвінка…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ЗАТЕЛЕФОНУВАТИ Й НАДІСЛАТИ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> з <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Вкладка \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Вкладка \"<xliff:g id="TITLE_2">%1$s</xliff:g>\". <xliff:g id="COUNT_3">%2$d</xliff:g> непрочитаний елемент. </item>
diff --git a/java/com/android/contacts/common/res/values-ur/strings.xml b/java/com/android/contacts/common/res/values-ur/strings.xml
index 75c761f..b34c78d 100644
--- a/java/com/android/contacts/common/res/values-ur/strings.xml
+++ b/java/com/android/contacts/common/res/values-ur/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"کال کے ساتھ بھیجنے کیلئے ایک نوٹ ٹائپ کریں…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"بھیجیں اور کال کریں"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ٹیب۔"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ٹیب۔ <xliff:g id="COUNT_3">%2$d</xliff:g> بغیر پڑھی ہوئی آئٹمز۔ </item>
diff --git a/java/com/android/contacts/common/res/values-uz/strings.xml b/java/com/android/contacts/common/res/values-uz/strings.xml
index 69b07d1..44bfd99 100644
--- a/java/com/android/contacts/common/res/values-uz/strings.xml
+++ b/java/com/android/contacts/common/res/values-uz/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Qo‘ng‘iroqqa qo‘shib yuborish uchun izoh yozing ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"YUBORISH va QO‘NG‘IROQ QILISH"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ichki oynasi."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ichki oynasi. <xliff:g id="COUNT_3">%2$d</xliff:g> ta o‘qilmagan narsa. </item>
diff --git a/java/com/android/contacts/common/res/values-vi/strings.xml b/java/com/android/contacts/common/res/values-vi/strings.xml
index c167573..dadb78a 100644
--- a/java/com/android/contacts/common/res/values-vi/strings.xml
+++ b/java/com/android/contacts/common/res/values-vi/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Nhập ghi chú để gửi kèm cuộc gọi..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"GỬI và GỌI"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Tab <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Tab <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> mục chưa đọc. </item>
diff --git a/java/com/android/contacts/common/res/values-zh-rCN/strings.xml b/java/com/android/contacts/common/res/values-zh-rCN/strings.xml
index 367b78f..161638e 100644
--- a/java/com/android/contacts/common/res/values-zh-rCN/strings.xml
+++ b/java/com/android/contacts/common/res/values-zh-rCN/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"输入要在拨打电话时发送的备注…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"发送并拨打电话"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g>：<xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>标签。"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>标签。<xliff:g id="COUNT_3">%2$d</xliff:g> 项未读内容。</item>
diff --git a/java/com/android/contacts/common/res/values-zh-rHK/strings.xml b/java/com/android/contacts/common/res/values-zh-rHK/strings.xml
index 733d980..9952ab6 100644
--- a/java/com/android/contacts/common/res/values-zh-rHK/strings.xml
+++ b/java/com/android/contacts/common/res/values-zh-rHK/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"撥號時可以書寫和傳送筆記…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"傳送和撥號"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"「<xliff:g id="TITLE">%1$s</xliff:g>」標籤。"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other">「<xliff:g id="TITLE_2">%1$s</xliff:g>」標籤 (<xliff:g id="COUNT_3">%2$d</xliff:g> 個未讀取項目)。</item>
diff --git a/java/com/android/contacts/common/res/values-zh-rTW/strings.xml b/java/com/android/contacts/common/res/values-zh-rTW/strings.xml
index af7843f..e5ad61f 100644
--- a/java/com/android/contacts/common/res/values-zh-rTW/strings.xml
+++ b/java/com/android/contacts/common/res/values-zh-rTW/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"輸入可在撥號時傳送的備註..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"傳送並撥打"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>分頁。"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>分頁。<xliff:g id="COUNT_3">%2$d</xliff:g> 個未讀項目。</item>
diff --git a/java/com/android/contacts/common/res/values-zu/strings.xml b/java/com/android/contacts/common/res/values-zu/strings.xml
index 5906ee1..adca139 100644
--- a/java/com/android/contacts/common/res/values-zu/strings.xml
+++ b/java/com/android/contacts/common/res/values-zu/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Thayipha inothi ukuthumela nekholi ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"THUMELA FUTHI YENZA IKHOLI"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ithebhu."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"><xliff:g id="TITLE_2">%1$s</xliff:g> ithebhu. <xliff:g id="COUNT_3">%2$d</xliff:g> izinto ezingafundiwe. </item>
diff --git a/java/com/android/contacts/common/res/values/ids.xml b/java/com/android/contacts/common/res/values/ids.xml
index 65969c4..871f5a6 100644
--- a/java/com/android/contacts/common/res/values/ids.xml
+++ b/java/com/android/contacts/common/res/values/ids.xml
@@ -27,5 +27,4 @@
 
   <item name="contact_tile_image" type="id"/>
   <item name="contact_tile_name" type="id"/>
-  <item name="call_to_action" type="id"/>
 </resources>
diff --git a/java/com/android/contacts/common/res/values/strings.xml b/java/com/android/contacts/common/res/values/strings.xml
index 371d5b4..9ac9fef 100644
--- a/java/com/android/contacts/common/res/values/strings.xml
+++ b/java/com/android/contacts/common/res/values/strings.xml
@@ -744,9 +744,9 @@
        compared to the character limit.  Example: 2 / 64 -->
   <string name="call_subject_limit"><xliff:g example="4" id="count">%1$s</xliff:g> / <xliff:g example="64" id="limit">%2$s</xliff:g></string>
 
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <string name="call_subject_type_and_number"><xliff:g example="Mobile" id="type">%1$s</xliff:g> <xliff:g example="(650) 555-1212" id="number">%2$s</xliff:g></string>
+  <!-- String used to build a phone number bype and phone number string.
+       Example: Mobile • 650-555-1212  -->
+  <string name="call_subject_type_and_number"><xliff:g example="Mobile" id="type">%1$s</xliff:g> • <xliff:g example="(650) 555-1212" id="number">%2$s</xliff:g></string>
 
   <!-- String format to describe a tab e.g.call history tab. -->
   <string name="tab_title"><xliff:g id="title">%1$s</xliff:g> tab.</string>
diff --git a/java/com/android/contacts/common/res/values/styles.xml b/java/com/android/contacts/common/res/values/styles.xml
index bb19afe..07d4a02 100644
--- a/java/com/android/contacts/common/res/values/styles.xml
+++ b/java/com/android/contacts/common/res/values/styles.xml
@@ -43,6 +43,7 @@
     <item name="android:layout_height">wrap_content</item>
     <!-- See comments for @dimen/list_section_divider_min_height -->
     <item name="android:minHeight">@dimen/list_section_divider_min_height</item>
+    <item name="android:background">@drawable/list_section_divider_holo_custom</item>
     <item name="android:textAppearance">@style/DirectoryHeaderStyle</item>
     <item name="android:gravity">center_vertical</item>
     <item name="android:paddingLeft">8dip</item>
diff --git a/java/com/android/contacts/common/util/AccountFilterUtil.java b/java/com/android/contacts/common/util/AccountFilterUtil.java
index 25f937c..18743c6 100644
--- a/java/com/android/contacts/common/util/AccountFilterUtil.java
+++ b/java/com/android/contacts/common/util/AccountFilterUtil.java
@@ -16,15 +16,35 @@
 
 package com.android.contacts.common.util;
 
+import android.app.Activity;
 import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
 import android.view.View;
 import android.widget.TextView;
 import com.android.contacts.common.R;
 import com.android.contacts.common.list.ContactListFilter;
+import com.android.contacts.common.list.ContactListFilterController;
 
 /** Utility class for account filter manipulation. */
 public class AccountFilterUtil {
 
+  public static final String EXTRA_CONTACT_LIST_FILTER = "contactListFilter";
+  private static final String TAG = AccountFilterUtil.class.getSimpleName();
+
+  /**
+   * Find TextView with the id "account_filter_header" and set correct text for the account filter
+   * header.
+   *
+   * @param filterContainer View containing TextView with id "account_filter_header"
+   * @return true when header text is set in the call. You may use this for conditionally showing or
+   *     hiding this entire view.
+   */
+  public static boolean updateAccountFilterTitleForPeople(
+      View filterContainer, ContactListFilter filter, boolean showTitleForAllAccounts) {
+    return updateAccountFilterTitle(filterContainer, filter, showTitleForAllAccounts, false);
+  }
+
   /**
    * Similar to {@link #updateAccountFilterTitleForPeople(View, ContactListFilter, boolean,
    * boolean)}, but for Phone UI.
@@ -58,6 +78,8 @@
         } else if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
           headerTextView.setText(R.string.listCustomView);
           textWasSet = true;
+        } else {
+          Log.w(TAG, "Filter type \"" + filter.filterType + "\" isn't expected.");
         }
       } else {
         if (filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) {
@@ -75,9 +97,29 @@
         } else if (filter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) {
           headerTextView.setText(R.string.listSingleContact);
           textWasSet = true;
+        } else {
+          Log.w(TAG, "Filter type \"" + filter.filterType + "\" isn't expected.");
         }
       }
+    } else {
+      Log.w(TAG, "Filter is null.");
     }
     return textWasSet;
   }
+
+  /** This will update filter via a given ContactListFilterController. */
+  public static void handleAccountFilterResult(
+      ContactListFilterController filterController, int resultCode, Intent data) {
+    if (resultCode == Activity.RESULT_OK) {
+      final ContactListFilter filter = data.getParcelableExtra(EXTRA_CONTACT_LIST_FILTER);
+      if (filter == null) {
+        return;
+      }
+      if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
+        filterController.selectCustomFilter();
+      } else {
+        filterController.setContactListFilter(filter, true);
+      }
+    }
+  }
 }
diff --git a/java/com/android/contacts/common/util/BitmapUtil.java b/java/com/android/contacts/common/util/BitmapUtil.java
index 51f65f2..20f916a 100644
--- a/java/com/android/contacts/common/util/BitmapUtil.java
+++ b/java/com/android/contacts/common/util/BitmapUtil.java
@@ -24,6 +24,8 @@
 import android.graphics.PorterDuffXfermode;
 import android.graphics.Rect;
 import android.graphics.RectF;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
 
 /** Provides static functions to decode bitmaps at the optimal size */
 public class BitmapUtil {
@@ -89,6 +91,30 @@
   }
 
   /**
+   * Retrieves a copy of the specified drawable resource, rotated by a specified angle.
+   *
+   * @param resources The current resources.
+   * @param resourceId The resource ID of the drawable to rotate.
+   * @param angle The angle of rotation.
+   * @return Rotated drawable.
+   */
+  public static Drawable getRotatedDrawable(
+      android.content.res.Resources resources, int resourceId, float angle) {
+
+    // Get the original drawable and make a copy which will be rotated.
+    Bitmap original = BitmapFactory.decodeResource(resources, resourceId);
+    Bitmap rotated =
+        Bitmap.createBitmap(original.getWidth(), original.getHeight(), Bitmap.Config.ARGB_8888);
+
+    // Perform the rotation.
+    Canvas tempCanvas = new Canvas(rotated);
+    tempCanvas.rotate(angle, original.getWidth() / 2, original.getHeight() / 2);
+    tempCanvas.drawBitmap(original, 0, 0, null);
+
+    return new BitmapDrawable(resources, rotated);
+  }
+
+  /**
    * Given an input bitmap, scales it to the given width/height and makes it round.
    *
    * @param input {@link Bitmap} to scale and crop
diff --git a/java/com/android/contacts/common/util/ContactDisplayUtils.java b/java/com/android/contacts/common/util/ContactDisplayUtils.java
index ff22f28..1586784 100644
--- a/java/com/android/contacts/common/util/ContactDisplayUtils.java
+++ b/java/com/android/contacts/common/util/ContactDisplayUtils.java
@@ -16,20 +16,21 @@
 
 package com.android.contacts.common.util;
 
+import static android.provider.ContactsContract.CommonDataKinds.Phone;
+
 import android.content.Context;
 import android.content.res.Resources;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.text.Spannable;
 import android.text.SpannableString;
 import android.text.TextUtils;
 import android.text.style.TtsSpan;
+import android.util.Log;
 import android.util.Patterns;
 import com.android.contacts.common.R;
 import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
 import com.android.contacts.common.preference.ContactsPreferences;
-import com.android.dialer.common.LogUtil;
 import java.util.Objects;
 
 /** Methods for handling various contact data labels. */
@@ -37,6 +38,7 @@
 
   public static final int INTERACTION_CALL = 1;
   public static final int INTERACTION_SMS = 2;
+  private static final String TAG = ContactDisplayUtils.class.getSimpleName();
 
   /**
    * Checks if the given data type is a custom type.
@@ -72,9 +74,9 @@
       } else {
         resId = getPhoneLabelResourceId(type);
         if (interactionType != INTERACTION_CALL) {
-          LogUtil.e(
-              "ContactDisplayUtils.getLabelForCallOrSms",
-              "un-recognized interaction type: "
+          Log.e(
+              TAG,
+              "Un-recognized interaction type: "
                   + interactionType
                   + ". Defaulting to ContactDisplayUtils.INTERACTION_CALL.");
         }
diff --git a/java/com/android/contacts/common/util/DateUtils.java b/java/com/android/contacts/common/util/DateUtils.java
index 09d52bc..1935d72 100644
--- a/java/com/android/contacts/common/util/DateUtils.java
+++ b/java/com/android/contacts/common/util/DateUtils.java
@@ -16,11 +16,252 @@
 
 package com.android.contacts.common.util;
 
+import android.content.Context;
+import android.text.format.DateFormat;
 import android.text.format.Time;
+import java.text.ParsePosition;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.Locale;
+import java.util.TimeZone;
 
 /** Utility methods for processing dates. */
 public class DateUtils {
 
+  public static final TimeZone UTC_TIMEZONE = TimeZone.getTimeZone("UTC");
+
+  /**
+   * When parsing a date without a year, the system assumes 1970, which wasn't a leap-year. Let's
+   * add a one-off hack for that day of the year
+   */
+  public static final String NO_YEAR_DATE_FEB29TH = "--02-29";
+
+  // Variations of ISO 8601 date format.  Do not change the order - it does affect the
+  // result in ambiguous cases.
+  private static final SimpleDateFormat[] DATE_FORMATS = {
+    CommonDateUtils.FULL_DATE_FORMAT,
+    CommonDateUtils.DATE_AND_TIME_FORMAT,
+    new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'", Locale.US),
+    new SimpleDateFormat("yyyyMMdd", Locale.US),
+    new SimpleDateFormat("yyyyMMdd'T'HHmmssSSS'Z'", Locale.US),
+    new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'", Locale.US),
+    new SimpleDateFormat("yyyyMMdd'T'HHmm'Z'", Locale.US),
+  };
+
+  static {
+    for (SimpleDateFormat format : DATE_FORMATS) {
+      format.setLenient(true);
+      format.setTimeZone(UTC_TIMEZONE);
+    }
+    CommonDateUtils.NO_YEAR_DATE_FORMAT.setTimeZone(UTC_TIMEZONE);
+  }
+
+  /**
+   * Parses the supplied string to see if it looks like a date.
+   *
+   * @param string The string representation of the provided date
+   * @param mustContainYear If true, the string is parsed as a date containing a year. If false, the
+   *     string is parsed into a valid date even if the year field is missing.
+   * @return A Calendar object corresponding to the date if the string is successfully parsed. If
+   *     not, null is returned.
+   */
+  public static Calendar parseDate(String string, boolean mustContainYear) {
+    ParsePosition parsePosition = new ParsePosition(0);
+    Date date;
+    if (!mustContainYear) {
+      final boolean noYearParsed;
+      // Unfortunately, we can't parse Feb 29th correctly, so let's handle this day seperately
+      if (NO_YEAR_DATE_FEB29TH.equals(string)) {
+        return getUtcDate(0, Calendar.FEBRUARY, 29);
+      } else {
+        synchronized (CommonDateUtils.NO_YEAR_DATE_FORMAT) {
+          date = CommonDateUtils.NO_YEAR_DATE_FORMAT.parse(string, parsePosition);
+        }
+        noYearParsed = parsePosition.getIndex() == string.length();
+      }
+
+      if (noYearParsed) {
+        return getUtcDate(date, true);
+      }
+    }
+    for (int i = 0; i < DATE_FORMATS.length; i++) {
+      SimpleDateFormat f = DATE_FORMATS[i];
+      synchronized (f) {
+        parsePosition.setIndex(0);
+        date = f.parse(string, parsePosition);
+        if (parsePosition.getIndex() == string.length()) {
+          return getUtcDate(date, false);
+        }
+      }
+    }
+    return null;
+  }
+
+  private static final Calendar getUtcDate(Date date, boolean noYear) {
+    final Calendar calendar = Calendar.getInstance(UTC_TIMEZONE, Locale.US);
+    calendar.setTime(date);
+    if (noYear) {
+      calendar.set(Calendar.YEAR, 0);
+    }
+    return calendar;
+  }
+
+  private static final Calendar getUtcDate(int year, int month, int dayOfMonth) {
+    final Calendar calendar = Calendar.getInstance(UTC_TIMEZONE, Locale.US);
+    calendar.clear();
+    calendar.set(Calendar.YEAR, year);
+    calendar.set(Calendar.MONTH, month);
+    calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
+    return calendar;
+  }
+
+  public static boolean isYearSet(Calendar cal) {
+    // use the Calendar.YEAR field to track whether or not the year is set instead of
+    // Calendar.isSet() because doing Calendar.get() causes Calendar.isSet() to become
+    // true irregardless of what the previous value was
+    return cal.get(Calendar.YEAR) > 1;
+  }
+
+  /**
+   * Same as {@link #formatDate(Context context, String string, boolean longForm)}, with longForm
+   * set to {@code true} by default.
+   *
+   * @param context Valid context
+   * @param string String representation of a date to parse
+   * @return Returns the same date in a cleaned up format. If the supplied string does not look like
+   *     a date, return it unchanged.
+   */
+  public static String formatDate(Context context, String string) {
+    return formatDate(context, string, true);
+  }
+
+  /**
+   * Parses the supplied string to see if it looks like a date.
+   *
+   * @param context Valid context
+   * @param string String representation of a date to parse
+   * @param longForm If true, return the date formatted into its long string representation. If
+   *     false, return the date formatted using its short form representation (i.e. 12/11/2012)
+   * @return Returns the same date in a cleaned up format. If the supplied string does not look like
+   *     a date, return it unchanged.
+   */
+  public static String formatDate(Context context, String string, boolean longForm) {
+    if (string == null) {
+      return null;
+    }
+
+    string = string.trim();
+    if (string.length() == 0) {
+      return string;
+    }
+    final Calendar cal = parseDate(string, false);
+
+    // we weren't able to parse the string successfully so just return it unchanged
+    if (cal == null) {
+      return string;
+    }
+
+    final boolean isYearSet = isYearSet(cal);
+    final java.text.DateFormat outFormat;
+    if (!isYearSet) {
+      outFormat = getLocalizedDateFormatWithoutYear(context);
+    } else {
+      outFormat =
+          longForm ? DateFormat.getLongDateFormat(context) : DateFormat.getDateFormat(context);
+    }
+    synchronized (outFormat) {
+      outFormat.setTimeZone(UTC_TIMEZONE);
+      return outFormat.format(cal.getTime());
+    }
+  }
+
+  public static boolean isMonthBeforeDay(Context context) {
+    char[] dateFormatOrder = DateFormat.getDateFormatOrder(context);
+    for (int i = 0; i < dateFormatOrder.length; i++) {
+      if (dateFormatOrder[i] == 'd') {
+        return false;
+      }
+      if (dateFormatOrder[i] == 'M') {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  /**
+   * Returns a SimpleDateFormat object without the year fields by using a regular expression to
+   * eliminate the year in the string pattern. In the rare occurence that the resulting pattern
+   * cannot be reconverted into a SimpleDateFormat, it uses the provided context to determine
+   * whether the month field should be displayed before the day field, and returns either "MMMM dd"
+   * or "dd MMMM" converted into a SimpleDateFormat.
+   */
+  public static java.text.DateFormat getLocalizedDateFormatWithoutYear(Context context) {
+    final String pattern =
+        ((SimpleDateFormat) SimpleDateFormat.getDateInstance(java.text.DateFormat.LONG))
+            .toPattern();
+    // Determine the correct regex pattern for year.
+    // Special case handling for Spanish locale by checking for "de"
+    final String yearPattern =
+        pattern.contains("de") ? "[^Mm]*[Yy]+[^Mm]*" : "[^DdMm]*[Yy]+[^DdMm]*";
+    try {
+      // Eliminate the substring in pattern that matches the format for that of year
+      return new SimpleDateFormat(pattern.replaceAll(yearPattern, ""));
+    } catch (IllegalArgumentException e) {
+      return new SimpleDateFormat(DateUtils.isMonthBeforeDay(context) ? "MMMM dd" : "dd MMMM");
+    }
+  }
+
+  /**
+   * Given a calendar (possibly containing only a day of the year), returns the earliest possible
+   * anniversary of the date that is equal to or after the current point in time if the date does
+   * not contain a year, or the date converted to the local time zone (if the date contains a year.
+   *
+   * @param target The date we wish to convert(in the UTC time zone).
+   * @return If date does not contain a year (year < 1900), returns the next earliest anniversary
+   *     that is after the current point in time (in the local time zone). Otherwise, returns the
+   *     adjusted Date in the local time zone.
+   */
+  public static Date getNextAnnualDate(Calendar target) {
+    final Calendar today = Calendar.getInstance();
+    today.setTime(new Date());
+
+    // Round the current time to the exact start of today so that when we compare
+    // today against the target date, both dates are set to exactly 0000H.
+    today.set(Calendar.HOUR_OF_DAY, 0);
+    today.set(Calendar.MINUTE, 0);
+    today.set(Calendar.SECOND, 0);
+    today.set(Calendar.MILLISECOND, 0);
+
+    final boolean isYearSet = isYearSet(target);
+    final int targetYear = target.get(Calendar.YEAR);
+    final int targetMonth = target.get(Calendar.MONTH);
+    final int targetDay = target.get(Calendar.DAY_OF_MONTH);
+    final boolean isFeb29 = (targetMonth == Calendar.FEBRUARY && targetDay == 29);
+    final GregorianCalendar anniversary = new GregorianCalendar();
+    // Convert from the UTC date to the local date. Set the year to today's year if the
+    // there is no provided year (targetYear < 1900)
+    anniversary.set(!isYearSet ? today.get(Calendar.YEAR) : targetYear, targetMonth, targetDay);
+    // If the anniversary's date is before the start of today and there is no year set,
+    // increment the year by 1 so that the returned date is always equal to or greater than
+    // today. If the day is a leap year, keep going until we get the next leap year anniversary
+    // Otherwise if there is already a year set, simply return the exact date.
+    if (!isYearSet) {
+      int anniversaryYear = today.get(Calendar.YEAR);
+      if (anniversary.before(today) || (isFeb29 && !anniversary.isLeapYear(anniversaryYear))) {
+        // If the target date is not Feb 29, then set the anniversary to the next year.
+        // Otherwise, keep going until we find the next leap year (this is not guaranteed
+        // to be in 4 years time).
+        do {
+          anniversaryYear += 1;
+        } while (isFeb29 && !anniversary.isLeapYear(anniversaryYear));
+        anniversary.set(anniversaryYear, targetMonth, targetDay);
+      }
+    }
+    return anniversary.getTime();
+  }
+
   /**
    * Determine the difference, in days between two dates. Uses similar logic as the {@link
    * android.text.format.DateUtils.getRelativeTimeSpanString} method.
diff --git a/java/com/android/contacts/common/util/MaterialColorMapUtils.java b/java/com/android/contacts/common/util/MaterialColorMapUtils.java
index bd32faa..a2d9847 100644
--- a/java/com/android/contacts/common/util/MaterialColorMapUtils.java
+++ b/java/com/android/contacts/common/util/MaterialColorMapUtils.java
@@ -21,6 +21,7 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.os.Trace;
+import com.android.contacts.common.R;
 
 public class MaterialColorMapUtils {
 
@@ -34,6 +35,13 @@
         resources.obtainTypedArray(com.android.contacts.common.R.array.letter_tile_colors_dark);
   }
 
+  public static MaterialPalette getDefaultPrimaryAndSecondaryColors(Resources resources) {
+    final int primaryColor = resources.getColor(R.color.quickcontact_default_photo_tint_color);
+    final int secondaryColor =
+        resources.getColor(R.color.quickcontact_default_photo_tint_color_dark);
+    return new MaterialPalette(primaryColor, secondaryColor);
+  }
+
   /**
    * Returns the hue component of a color int.
    *
diff --git a/java/com/android/contacts/common/util/NameConverter.java b/java/com/android/contacts/common/util/NameConverter.java
new file mode 100644
index 0000000..ae3275d
--- /dev/null
+++ b/java/com/android/contacts/common/util/NameConverter.java
@@ -0,0 +1,242 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.contacts.common.util;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.net.Uri.Builder;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.text.TextUtils;
+import com.android.contacts.common.model.dataitem.StructuredNameDataItem;
+import java.util.Map;
+import java.util.TreeMap;
+
+/**
+ * Utility class for converting between a display name and structured name (and vice-versa), via
+ * calls to the contact provider.
+ */
+public class NameConverter {
+
+  /** The array of fields that comprise a structured name. */
+  public static final String[] STRUCTURED_NAME_FIELDS =
+      new String[] {
+        StructuredName.PREFIX,
+        StructuredName.GIVEN_NAME,
+        StructuredName.MIDDLE_NAME,
+        StructuredName.FAMILY_NAME,
+        StructuredName.SUFFIX
+      };
+
+  /**
+   * Converts the given structured name (provided as a map from {@link StructuredName} fields to
+   * corresponding values) into a display name string.
+   *
+   * <p>Note that this operates via a call back to the ContactProvider, but it does not access the
+   * database, so it should be safe to call from the UI thread. See ContactsProvider2.completeName()
+   * for the underlying method call.
+   *
+   * @param context Activity context.
+   * @param structuredName The structured name map to convert.
+   * @return The display name computed from the structured name map.
+   */
+  public static String structuredNameToDisplayName(
+      Context context, Map<String, String> structuredName) {
+    Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath("complete_name");
+    for (String key : STRUCTURED_NAME_FIELDS) {
+      if (structuredName.containsKey(key)) {
+        appendQueryParameter(builder, key, structuredName.get(key));
+      }
+    }
+    return fetchDisplayName(context, builder.build());
+  }
+
+  /**
+   * Converts the given structured name (provided as ContentValues) into a display name string.
+   *
+   * @param context Activity context.
+   * @param values The content values containing values comprising the structured name.
+   */
+  public static String structuredNameToDisplayName(Context context, ContentValues values) {
+    Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath("complete_name");
+    for (String key : STRUCTURED_NAME_FIELDS) {
+      if (values.containsKey(key)) {
+        appendQueryParameter(builder, key, values.getAsString(key));
+      }
+    }
+    return fetchDisplayName(context, builder.build());
+  }
+
+  /** Helper method for fetching the display name via the given URI. */
+  private static String fetchDisplayName(Context context, Uri uri) {
+    String displayName = null;
+    Cursor cursor =
+        context
+            .getContentResolver()
+            .query(
+                uri,
+                new String[] {
+                  StructuredName.DISPLAY_NAME,
+                },
+                null,
+                null,
+                null);
+
+    if (cursor != null) {
+      try {
+        if (cursor.moveToFirst()) {
+          displayName = cursor.getString(0);
+        }
+      } finally {
+        cursor.close();
+      }
+    }
+    return displayName;
+  }
+
+  /**
+   * Converts the given display name string into a structured name (as a map from {@link
+   * StructuredName} fields to corresponding values).
+   *
+   * <p>Note that this operates via a call back to the ContactProvider, but it does not access the
+   * database, so it should be safe to call from the UI thread.
+   *
+   * @param context Activity context.
+   * @param displayName The display name to convert.
+   * @return The structured name map computed from the display name.
+   */
+  public static Map<String, String> displayNameToStructuredName(
+      Context context, String displayName) {
+    Map<String, String> structuredName = new TreeMap<String, String>();
+    Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath("complete_name");
+
+    appendQueryParameter(builder, StructuredName.DISPLAY_NAME, displayName);
+    Cursor cursor =
+        context
+            .getContentResolver()
+            .query(builder.build(), STRUCTURED_NAME_FIELDS, null, null, null);
+
+    if (cursor != null) {
+      try {
+        if (cursor.moveToFirst()) {
+          for (int i = 0; i < STRUCTURED_NAME_FIELDS.length; i++) {
+            structuredName.put(STRUCTURED_NAME_FIELDS[i], cursor.getString(i));
+          }
+        }
+      } finally {
+        cursor.close();
+      }
+    }
+    return structuredName;
+  }
+
+  /**
+   * Converts the given display name string into a structured name (inserting the structured values
+   * into a new or existing ContentValues object).
+   *
+   * <p>Note that this operates via a call back to the ContactProvider, but it does not access the
+   * database, so it should be safe to call from the UI thread.
+   *
+   * @param context Activity context.
+   * @param displayName The display name to convert.
+   * @param contentValues The content values object to place the structured name values into. If
+   *     null, a new one will be created and returned.
+   * @return The ContentValues object containing the structured name fields derived from the display
+   *     name.
+   */
+  public static ContentValues displayNameToStructuredName(
+      Context context, String displayName, ContentValues contentValues) {
+    if (contentValues == null) {
+      contentValues = new ContentValues();
+    }
+    Map<String, String> mapValues = displayNameToStructuredName(context, displayName);
+    for (String key : mapValues.keySet()) {
+      contentValues.put(key, mapValues.get(key));
+    }
+    return contentValues;
+  }
+
+  private static void appendQueryParameter(Builder builder, String field, String value) {
+    if (!TextUtils.isEmpty(value)) {
+      builder.appendQueryParameter(field, value);
+    }
+  }
+
+  /**
+   * Parses phonetic name and returns parsed data (family, middle, given) as ContentValues. Parsed
+   * data should be {@link StructuredName#PHONETIC_FAMILY_NAME}, {@link
+   * StructuredName#PHONETIC_MIDDLE_NAME}, and {@link StructuredName#PHONETIC_GIVEN_NAME}. If this
+   * method cannot parse given phoneticName, null values will be stored.
+   *
+   * @param phoneticName Phonetic name to be parsed
+   * @param values ContentValues to be used for storing data. If null, new instance will be created.
+   * @return ContentValues with parsed data. Those data can be null.
+   */
+  public static StructuredNameDataItem parsePhoneticName(
+      String phoneticName, StructuredNameDataItem item) {
+    String family = null;
+    String middle = null;
+    String given = null;
+
+    if (!TextUtils.isEmpty(phoneticName)) {
+      String[] strings = phoneticName.split(" ", 3);
+      switch (strings.length) {
+        case 1:
+          family = strings[0];
+          break;
+        case 2:
+          family = strings[0];
+          given = strings[1];
+          break;
+        case 3:
+          family = strings[0];
+          middle = strings[1];
+          given = strings[2];
+          break;
+      }
+    }
+
+    if (item == null) {
+      item = new StructuredNameDataItem();
+    }
+    item.setPhoneticFamilyName(family);
+    item.setPhoneticMiddleName(middle);
+    item.setPhoneticGivenName(given);
+    return item;
+  }
+
+  /** Constructs and returns a phonetic full name from given parts. */
+  public static String buildPhoneticName(String family, String middle, String given) {
+    if (!TextUtils.isEmpty(family) || !TextUtils.isEmpty(middle) || !TextUtils.isEmpty(given)) {
+      StringBuilder sb = new StringBuilder();
+      if (!TextUtils.isEmpty(family)) {
+        sb.append(family.trim()).append(' ');
+      }
+      if (!TextUtils.isEmpty(middle)) {
+        sb.append(middle.trim()).append(' ');
+      }
+      if (!TextUtils.isEmpty(given)) {
+        sb.append(given.trim()).append(' ');
+      }
+      sb.setLength(sb.length() - 1); // Yank the last space
+      return sb.toString();
+    } else {
+      return null;
+    }
+  }
+}
diff --git a/java/com/android/contacts/common/util/StopWatch.java b/java/com/android/contacts/common/util/StopWatch.java
index 7986d10..b944b98 100644
--- a/java/com/android/contacts/common/util/StopWatch.java
+++ b/java/com/android/contacts/common/util/StopWatch.java
@@ -16,7 +16,7 @@
 
 package com.android.contacts.common.util;
 
-import com.android.dialer.common.LogUtil;
+import android.util.Log;
 import java.util.ArrayList;
 
 /** A {@link StopWatch} records start, laps and stop, and print them to logcat. */
@@ -37,6 +37,11 @@
     return new StopWatch(label);
   }
 
+  /** Return a dummy instance that does no operations. */
+  public static StopWatch getNullStopWatch() {
+    return NullStopWatch.INSTANCE;
+  }
+
   /** Record a lap. */
   public void lap(String lapLabel) {
     mTimes.add(System.currentTimeMillis());
@@ -71,6 +76,25 @@
       sb.append(" ");
       last = current;
     }
-    LogUtil.v(TAG, sb.toString());
+    Log.v(TAG, sb.toString());
+  }
+
+  private static class NullStopWatch extends StopWatch {
+
+    public static final NullStopWatch INSTANCE = new NullStopWatch();
+
+    public NullStopWatch() {
+      super(null);
+    }
+
+    @Override
+    public void lap(String lapLabel) {
+      // noop
+    }
+
+    @Override
+    public void stopAndLog(String TAG, int timeThresholdToLog) {
+      // noop
+    }
   }
 }
diff --git a/java/com/android/contacts/common/util/TelephonyManagerUtils.java b/java/com/android/contacts/common/util/TelephonyManagerUtils.java
index e4c2c63..b664268 100644
--- a/java/com/android/contacts/common/util/TelephonyManagerUtils.java
+++ b/java/com/android/contacts/common/util/TelephonyManagerUtils.java
@@ -33,4 +33,13 @@
     final String voiceMailLabel = telephonyManager.getVoiceMailAlphaTag();
     return voiceMailLabel;
   }
+
+  /**
+   * @param context Current application context.
+   * @return True if there is a subscription which supports video calls. False otherwise.
+   */
+  public static boolean hasVideoCallSubscription(Context context) {
+    // TODO: Check the telephony manager's subscriptions to see if any support video calls.
+    return true;
+  }
 }
diff --git a/java/com/android/contacts/common/util/TrafficStatsTags.java b/java/com/android/contacts/common/util/TrafficStatsTags.java
new file mode 100644
index 0000000..b0e7fb5
--- /dev/null
+++ b/java/com/android/contacts/common/util/TrafficStatsTags.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.contacts.common.util;
+
+public class TrafficStatsTags {
+
+  public static final int CONTACT_PHOTO_DOWNLOAD_TAG = 0x0001;
+  public static final int TAG_MAX = 0x9999;
+}
diff --git a/java/com/android/dialer/about/AndroidManifest.xml b/java/com/android/dialer/about/AndroidManifest.xml
index 85c7508..e9489ce 100644
--- a/java/com/android/dialer/about/AndroidManifest.xml
+++ b/java/com/android/dialer/about/AndroidManifest.xml
@@ -1,6 +1,6 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.android.dialer.about">
-  <application android:theme="@style/Theme.AppCompat">
+  <application>
     <activity
         android:name="com.android.dialer.about.LicenseMenuActivity"
         android:label="@string/licenseActivityLabel"
diff --git a/java/com/android/dialer/about/res/raw/keep.xml b/java/com/android/dialer/about/res/raw/keep.xml
index 9215627..e41b8b8 100644
--- a/java/com/android/dialer/about/res/raw/keep.xml
+++ b/java/com/android/dialer/about/res/raw/keep.xml
@@ -16,3 +16,4 @@
   -->
 <resources xmlns:tools="http://schemas.android.com/tools"
     tools:keep="@raw/*"/>
+
diff --git a/java/com/android/dialer/app/AndroidManifest.xml b/java/com/android/dialer/app/AndroidManifest.xml
index 4200082..de4b48c 100644
--- a/java/com/android/dialer/app/AndroidManifest.xml
+++ b/java/com/android/dialer/app/AndroidManifest.xml
@@ -39,7 +39,6 @@
   <uses-permission android:name="android.permission.USE_CREDENTIALS"/>
   <uses-permission android:name="android.permission.VIBRATE"/>
   <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
-  <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
   <uses-permission android:name="com.android.voicemail.permission.ADD_VOICEMAIL"/>
   <uses-permission android:name="com.android.voicemail.permission.WRITE_VOICEMAIL"/>
   <uses-permission android:name="com.android.voicemail.permission.READ_VOICEMAIL"/>
diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java
index b5e6150..6e2c6be 100644
--- a/java/com/android/dialer/app/DialtactsActivity.java
+++ b/java/com/android/dialer/app/DialtactsActivity.java
@@ -91,7 +91,6 @@
 import com.android.dialer.callintent.CallIntentBuilder;
 import com.android.dialer.callintent.CallSpecificAppData;
 import com.android.dialer.common.Assert;
-import com.android.dialer.common.ConfigProviderBindings;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.database.Database;
 import com.android.dialer.database.DialerDatabaseHelper;
@@ -107,7 +106,6 @@
 import com.android.dialer.p13n.logging.P13nLogging;
 import com.android.dialer.postcall.PostCall;
 import com.android.dialer.proguard.UsedByReflection;
-import com.android.dialer.searchfragment.NewSearchFragment;
 import com.android.dialer.simulator.Simulator;
 import com.android.dialer.simulator.SimulatorComponent;
 import com.android.dialer.smartdial.SmartDialNameMatcher;
@@ -156,7 +154,6 @@
   private static final String KEY_FIRST_LAUNCH = "first_launch";
   private static final String KEY_WAS_CONFIGURATION_CHANGE = "was_configuration_change";
   private static final String KEY_IS_DIALPAD_SHOWN = "is_dialpad_shown";
-  private static final String TAG_NEW_SEARCH_FRAGMENT = "new_search";
   private static final String TAG_REGULAR_SEARCH_FRAGMENT = "search";
   private static final String TAG_SMARTDIAL_SEARCH_FRAGMENT = "smartdial";
   private static final String TAG_FAVORITES_FRAGMENT = "favorites";
@@ -165,7 +162,6 @@
 
   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;
 
@@ -184,9 +180,6 @@
   /** Fragment for searching phone numbers using the dialpad. */
   private SmartDialSearchFragment mSmartDialSearchFragment;
 
-  /** new Fragment for search phone numbers using the keyboard and the dialpad. */
-  private NewSearchFragment mNewSearchFragment;
-
   /** Animation that slides in. */
   private Animation mSlideIn;
 
@@ -269,7 +262,6 @@
           }
           mSearchQuery = newText;
 
-          // TODO: show p13n when newText is empty.
           // Show search fragment only when the query string is changed to non-empty text.
           if (!TextUtils.isEmpty(newText)) {
             // Call enterSearchUi only if we are switching search modes, or showing a search
@@ -285,8 +277,6 @@
             mSmartDialSearchFragment.setQueryString(mSearchQuery);
           } else if (mRegularSearchFragment != null && mRegularSearchFragment.isVisible()) {
             mRegularSearchFragment.setQueryString(mSearchQuery);
-          } else if (mNewSearchFragment != null) {
-            mNewSearchFragment.setQuery(mSearchQuery);
           }
         }
 
@@ -640,8 +630,6 @@
     } else if (fragment instanceof ListsFragment) {
       mListsFragment = (ListsFragment) fragment;
       mListsFragment.addOnPageChangeListener(this);
-    } else if (fragment instanceof NewSearchFragment) {
-      mNewSearchFragment = (NewSearchFragment) fragment;
     }
     if (fragment instanceof SearchFragment) {
       final SearchFragment searchFragment = (SearchFragment) fragment;
@@ -797,7 +785,6 @@
 
     if (animate) {
       mFloatingActionButtonController.scaleOut();
-      maybeEnterSearchUi();
     } else {
       mFloatingActionButtonController.setVisible(false);
       maybeEnterSearchUi();
@@ -1070,11 +1057,7 @@
     }
 
     final String tag;
-    boolean useNewSearch =
-        ConfigProviderBindings.get(this).getBoolean("enable_new_search_fragment", false);
-    if (useNewSearch) {
-      tag = TAG_NEW_SEARCH_FRAGMENT;
-    } else if (smartDialSearch) {
+    if (smartDialSearch) {
       tag = TAG_SMARTDIAL_SEARCH_FRAGMENT;
     } else {
       tag = TAG_REGULAR_SEARCH_FRAGMENT;
@@ -1084,52 +1067,40 @@
 
     mFloatingActionButtonController.scaleOut();
 
+    SearchFragment fragment = (SearchFragment) getFragmentManager().findFragmentByTag(tag);
     if (animate) {
       transaction.setCustomAnimations(android.R.animator.fade_in, 0);
     } else {
       transaction.setTransition(FragmentTransaction.TRANSIT_NONE);
     }
-
-    Fragment fragment = getFragmentManager().findFragmentByTag(tag);
     if (fragment == null) {
-      if (useNewSearch) {
-        fragment = new NewSearchFragment();
-      } else if (smartDialSearch) {
+      if (smartDialSearch) {
         fragment = new SmartDialSearchFragment();
       } else {
         fragment = Bindings.getLegacy(this).newRegularSearchFragment();
-        ((SearchFragment) fragment)
-            .setOnTouchListener(
-                (v, event) -> {
-                  // Show the FAB when the user touches the lists fragment and the soft
-                  // keyboard is hidden.
-                  hideDialpadFragment(true, false);
-                  v.performClick();
-                  return false;
-                });
+        fragment.setOnTouchListener(
+            new View.OnTouchListener() {
+              @Override
+              public boolean onTouch(View v, MotionEvent event) {
+                // Show the FAB when the user touches the lists fragment and the soft
+                // keyboard is hidden.
+                hideDialpadFragment(true, false);
+                showFabInSearchUi();
+                v.performClick();
+                return false;
+              }
+            });
       }
       transaction.add(R.id.dialtacts_frame, fragment, tag);
     } else {
-      // TODO: if this is a transition from dialpad to searchbar, animate fragment
-      // down, and vice versa. Perhaps just add a coordinator behavior with the search bar.
       transaction.show(fragment);
     }
-
     // DialtactsActivity will provide the options menu
     fragment.setHasOptionsMenu(false);
-
     // Will show empty list if P13nRanker is not enabled. Else, re-ranked list by the ranker.
-    if (!useNewSearch) {
-      ((SearchFragment) fragment)
-          .setShowEmptyListForNullQuery(mP13nRanker.shouldShowEmptyListForNullQuery());
-    } else {
-      // TODO: add p13n ranker to new search.
-    }
-
-    if (!smartDialSearch && !useNewSearch) {
-      ((SearchFragment) fragment).setQueryString(query);
-    } else if (useNewSearch) {
-      ((NewSearchFragment) fragment).setQuery(query);
+    fragment.setShowEmptyListForNullQuery(mP13nRanker.shouldShowEmptyListForNullQuery());
+    if (!smartDialSearch) {
+      fragment.setQueryString(query);
     }
     transaction.commit();
 
@@ -1175,9 +1146,6 @@
     if (mRegularSearchFragment != null) {
       transaction.remove(mRegularSearchFragment);
     }
-    if (mNewSearchFragment != null) {
-      transaction.remove(mNewSearchFragment);
-    }
     transaction.commit();
 
     Assert.isNotNull(mListsFragment.getView()).animate().alpha(1).withLayer();
@@ -1509,7 +1477,6 @@
             Arrays.toString(grantResults)));
   }
 
-  /** Popup menu accessible from the search bar */
   protected class OptionsPopupMenu extends PopupMenu {
 
     public OptionsPopupMenu(Context context, View anchor) {
diff --git a/java/com/android/dialer/app/SpecialCharSequenceMgr.java b/java/com/android/dialer/app/SpecialCharSequenceMgr.java
index 20222d6..85c2ea6 100644
--- a/java/com/android/dialer/app/SpecialCharSequenceMgr.java
+++ b/java/com/android/dialer/app/SpecialCharSequenceMgr.java
@@ -47,6 +47,7 @@
 import com.android.dialer.calllogutils.PhoneAccountUtils;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.compat.CompatUtils;
 import com.android.dialer.oem.MotorolaUtils;
 import com.android.dialer.telecom.TelecomUtil;
 import java.util.ArrayList;
@@ -298,7 +299,9 @@
               : R.string.meid;
 
       List<String> deviceIds = new ArrayList<String>();
-      if (TelephonyManagerCompat.getPhoneCount(telephonyManager) > 1) {
+      if (TelephonyManagerCompat.getPhoneCount(telephonyManager) > 1
+          && CompatUtils.isMethodAvailable(
+              TelephonyManagerCompat.TELEPHONY_MANAGER_CLASS, "getDeviceId", Integer.TYPE)) {
         for (int slot = 0; slot < telephonyManager.getPhoneCount(); slot++) {
           String deviceId = telephonyManager.getDeviceId(slot);
           if (!TextUtils.isEmpty(deviceId)) {
diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java
index 3357ee2..2f8a58c 100644
--- a/java/com/android/dialer/app/calllog/CallLogAdapter.java
+++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java
@@ -86,7 +86,6 @@
 import com.android.dialer.phonenumberutil.PhoneNumberHelper;
 import com.android.dialer.spam.Spam;
 import com.android.dialer.util.PermissionsUtil;
-import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -106,12 +105,11 @@
 
   private static final String KEY_EXPANDED_POSITION = "expanded_position";
   private static final String KEY_EXPANDED_ROW_ID = "expanded_row_id";
-  private static final String KEY_ACTION_MODE = "action_mode_selected_items";
 
   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 = true;
+  public static final boolean ENABLE_CALL_LOG_MULTI_SELECT_FLAG = false;
 
   protected final Activity mActivity;
   protected final VoicemailPlaybackPresenter mVoicemailPlaybackPresenter;
@@ -119,7 +117,6 @@
   protected final CallLogCache mCallLogCache;
 
   private final CallFetcher mCallFetcher;
-  private final MultiSelectRemoveView mMultiSelectRemoveView;
   @NonNull private final FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler;
   private final int mActivityType;
 
@@ -139,8 +136,6 @@
   private final CallLogAlertManager mCallLogAlertManager;
 
   public ActionMode mActionMode = null;
-  public boolean selectAllMode = false;
-  public boolean deselectAllMode = false;
   private final SparseArray<String> selectedItems = new SparseArray<>();
 
   private final ActionMode.Callback mActionModeCallback =
@@ -149,16 +144,10 @@
         // Called when the action mode is created; startActionMode() was called
         @Override
         public boolean onCreateActionMode(ActionMode mode, Menu menu) {
-          if (mActivity != null) {
-            announceforAccessibility(
-                mActivity.getCurrentFocus(),
-                mActivity.getString(R.string.description_entering_bulk_action_mode));
-          }
           mActionMode = mode;
           // Inflate a menu resource providing context menu items
           MenuInflater inflater = mode.getMenuInflater();
           inflater.inflate(R.menu.actionbar_delete, menu);
-          mMultiSelectRemoveView.showMultiSelectRemoveView(true);
           return true;
         }
 
@@ -176,6 +165,7 @@
             if (selectedItems.size() > 0) {
               showDeleteSelectedItemsDialog();
             }
+            mode.finish();
             return true;
           } else {
             return false;
@@ -185,16 +175,8 @@
         // Called when the user exits the action mode
         @Override
         public void onDestroyActionMode(ActionMode mode) {
-          if (mActivity != null) {
-            announceforAccessibility(
-                mActivity.getCurrentFocus(),
-                mActivity.getString(R.string.description_leaving_bulk_action_mode));
-          }
           selectedItems.clear();
           mActionMode = null;
-          selectAllMode = false;
-          deselectAllMode = false;
-          mMultiSelectRemoveView.showMultiSelectRemoveView(false);
           notifyDataSetChanged();
         }
       };
@@ -220,7 +202,6 @@
           @Override
           public void onClick(DialogInterface dialog, int id) {
             deleteSelectedItems(voicemailsToDeleteOnConfirmation);
-            mActionMode.finish();
             dialog.cancel();
           }
         });
@@ -277,15 +258,22 @@
             return;
           }
           if (mActionMode != null && viewHolder.voicemailUri != null) {
-            selectAllMode = false;
-            deselectAllMode = false;
-            mMultiSelectRemoveView.setSelectAllModeToFalse();
             int id = getVoicemailId(viewHolder.voicemailUri);
             if (selectedItems.get(id) != null) {
-              uncheckMarkCallLogEntry(viewHolder, id);
+              selectedItems.delete(id);
+              viewHolder.checkBoxView.setVisibility(View.GONE);
+              viewHolder.quickContactView.setVisibility(View.VISIBLE);
             } else {
-              checkMarkCallLogEntry(viewHolder);
+              viewHolder.quickContactView.setVisibility(View.GONE);
+              viewHolder.checkBoxView.setVisibility(View.VISIBLE);
+              selectedItems.put(getVoicemailId(viewHolder.voicemailUri), viewHolder.voicemailUri);
             }
+
+            if (selectedItems.size() == 0) {
+              mActionMode.finish();
+              return;
+            }
+            mActionMode.setTitle(Integer.toString(selectedItems.size()));
             return;
           }
 
@@ -324,48 +312,6 @@
         }
       };
 
-  private void checkMarkCallLogEntry(CallLogListItemViewHolder viewHolder) {
-    announceforAccessibility(
-        mActivity.getCurrentFocus(),
-        mActivity.getString(
-            R.string.description_selecting_bulk_action_mode, viewHolder.nameOrNumber));
-    viewHolder.quickContactView.setVisibility(View.GONE);
-    viewHolder.checkBoxView.setVisibility(View.VISIBLE);
-    selectedItems.put(getVoicemailId(viewHolder.voicemailUri), viewHolder.voicemailUri);
-    updateActionBar();
-  }
-
-  private void announceforAccessibility(View view, String announcement) {
-    if (view != null) {
-      view.announceForAccessibility(announcement);
-    }
-  }
-
-  private void updateActionBar() {
-    if (mActionMode == null && selectedItems.size() > 0) {
-      mActivity.startActionMode(mActionModeCallback);
-    }
-    if (mActionMode != null) {
-      mActionMode.setTitle(
-          mActivity
-              .getResources()
-              .getString(
-                  R.string.voicemailMultiSelectActionBarTitle,
-                  Integer.toString(selectedItems.size())));
-    }
-  }
-
-  private void uncheckMarkCallLogEntry(CallLogListItemViewHolder viewHolder, int id) {
-    announceforAccessibility(
-        mActivity.getCurrentFocus(),
-        mActivity.getString(
-            R.string.description_unselecting_bulk_action_mode, viewHolder.nameOrNumber));
-    selectedItems.delete(id);
-    viewHolder.checkBoxView.setVisibility(View.GONE);
-    viewHolder.quickContactView.setVisibility(View.VISIBLE);
-    updateActionBar();
-  }
-
   private static int getVoicemailId(String voicemailUri) {
     Assert.checkArgument(voicemailUri != null);
     Assert.checkArgument(voicemailUri.length() > 0);
@@ -412,7 +358,6 @@
       Activity activity,
       ViewGroup alertContainer,
       CallFetcher callFetcher,
-      MultiSelectRemoveView multiSelectRemoveView,
       CallLogCache callLogCache,
       ContactInfoCache contactInfoCache,
       VoicemailPlaybackPresenter voicemailPlaybackPresenter,
@@ -422,7 +367,6 @@
 
     mActivity = activity;
     mCallFetcher = callFetcher;
-    mMultiSelectRemoveView = multiSelectRemoveView;
     mVoicemailPlaybackPresenter = voicemailPlaybackPresenter;
     if (mVoicemailPlaybackPresenter != null) {
       mVoicemailPlaybackPresenter.setOnVoicemailDeletedListener(this);
@@ -482,14 +426,6 @@
   public void onSaveInstanceState(Bundle outState) {
     outState.putInt(KEY_EXPANDED_POSITION, mCurrentlyExpandedPosition);
     outState.putLong(KEY_EXPANDED_ROW_ID, mCurrentlyExpandedRowId);
-
-    ArrayList<String> listOfSelectedItems = new ArrayList<>();
-    if (selectedItems.size() > 0) {
-      for (int i = 0; i < selectedItems.size(); i++) {
-        listOfSelectedItems.add(Integer.toString(selectedItems.keyAt(i)));
-      }
-    }
-    outState.putStringArrayList(KEY_ACTION_MODE, listOfSelectedItems);
   }
 
   public void onRestoreInstanceState(Bundle savedInstanceState) {
@@ -498,18 +434,6 @@
           savedInstanceState.getInt(KEY_EXPANDED_POSITION, RecyclerView.NO_POSITION);
       mCurrentlyExpandedRowId =
           savedInstanceState.getLong(KEY_EXPANDED_ROW_ID, NO_EXPANDED_LIST_ITEM);
-
-      // Restoring multi selected entries
-      ArrayList<String> listOfSelectedItems =
-          savedInstanceState.getStringArrayList(KEY_ACTION_MODE);
-      if (!listOfSelectedItems.isEmpty()) {
-        for (int i = 0; i < listOfSelectedItems.size(); i++) {
-          String voicemailId = listOfSelectedItems.get(i);
-          int id = Integer.parseInt(voicemailId);
-          selectedItems.put(id, voicemailId);
-        }
-        updateActionBar();
-      }
     }
   }
 
@@ -635,8 +559,6 @@
   public void onViewRecycled(ViewHolder viewHolder) {
     if (viewHolder.getItemViewType() == VIEW_TYPE_CALLLOG) {
       CallLogListItemViewHolder views = (CallLogListItemViewHolder) viewHolder;
-      updateCheckMarkedStatusOfEntry(views);
-
       if (views.asyncTask != null) {
         views.asyncTask.cancel(true);
       }
@@ -669,8 +591,6 @@
       return;
     }
     CallLogListItemViewHolder views = (CallLogListItemViewHolder) viewHolder;
-    updateCheckMarkedStatusOfEntry(views);
-
     views.isLoaded = false;
     int groupSize = getGroupSize(position);
     CallDetailsEntries callDetailsEntries = createCallDetailsEntries(c, groupSize);
@@ -689,17 +609,6 @@
     loadAndRender(views, views.rowId, details, callDetailsEntries);
   }
 
-  private void updateCheckMarkedStatusOfEntry(CallLogListItemViewHolder views) {
-    if (selectedItems.size() > 0 && views.voicemailUri != null) {
-      int id = getVoicemailId(views.voicemailUri);
-      if (selectedItems.get(id) != null) {
-        checkMarkCallLogEntry(views);
-      } else {
-        uncheckMarkCallLogEntry(views, id);
-      }
-    }
-  }
-
   private void loadAndRender(
       final CallLogListItemViewHolder views,
       final long rowId,
@@ -1008,12 +917,6 @@
     views.workIconView.setVisibility(
         details.contactUserType == ContactsUtils.USER_TYPE_WORK ? View.VISIBLE : View.GONE);
 
-    if (selectAllMode && views.voicemailUri != null) {
-      selectedItems.put(getVoicemailId(views.voicemailUri), views.voicemailUri);
-    }
-    if (deselectAllMode && views.voicemailUri != null) {
-      selectedItems.delete(getVoicemailId(views.voicemailUri));
-    }
     if (views.voicemailUri != null
         && selectedItems.get(getVoicemailId(views.voicemailUri)) != null) {
       views.checkBoxView.setVisibility(View.VISIBLE);
@@ -1022,6 +925,7 @@
       views.checkBoxView.setVisibility(View.GONE);
       views.quickContactView.setVisibility(View.VISIBLE);
     }
+
     mCallLogListItemHelper.setPhoneCallDetails(views, details);
     if (mCurrentlyExpandedRowId == views.rowId) {
       // In case ViewHolders were added/removed, update the expanded position if the rowIds
@@ -1288,41 +1192,9 @@
     notifyDataSetChanged();
   }
 
-  public void onAllSelected() {
-    selectAllMode = true;
-    deselectAllMode = false;
-    selectedItems.clear();
-    for (int i = 0; i < getItemCount(); i++) {
-      Cursor c = (Cursor) getItem(i);
-      if (c != null) {
-        Assert.checkArgument(CallLogQuery.VOICEMAIL_URI == c.getColumnIndex("voicemail_uri"));
-        String voicemailUri = c.getString(CallLogQuery.VOICEMAIL_URI);
-        selectedItems.put(getVoicemailId(voicemailUri), voicemailUri);
-      }
-    }
-    updateActionBar();
-    notifyDataSetChanged();
-  }
-
-  public void onAllDeselected() {
-    selectAllMode = false;
-    deselectAllMode = true;
-    selectedItems.clear();
-    updateActionBar();
-    notifyDataSetChanged();
-  }
-
   /** Interface used to initiate a refresh of the content. */
   public interface CallFetcher {
 
     void fetchCalls();
   }
-
-  /** Interface used to hide the fragments. */
-  public interface MultiSelectRemoveView {
-
-    void showMultiSelectRemoveView(boolean show);
-
-    void setSelectAllModeToFalse();
-  }
 }
diff --git a/java/com/android/dialer/app/calllog/CallLogFragment.java b/java/com/android/dialer/app/calllog/CallLogFragment.java
index 1571c1a..6e4b23f 100644
--- a/java/com/android/dialer/app/calllog/CallLogFragment.java
+++ b/java/com/android/dialer/app/calllog/CallLogFragment.java
@@ -49,16 +49,15 @@
 import com.android.dialer.app.contactinfo.ExpirableCacheHeadlessFragment;
 import com.android.dialer.app.list.ListsFragment;
 import com.android.dialer.app.voicemail.VoicemailPlaybackPresenter;
+import com.android.dialer.app.widget.EmptyContentView;
+import com.android.dialer.app.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
 import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.database.CallLogQueryHandler;
 import com.android.dialer.location.GeoUtil;
-import com.android.dialer.oem.CequintCallerIdManager;
 import com.android.dialer.phonenumbercache.ContactInfoHelper;
 import com.android.dialer.util.PermissionsUtil;
-import com.android.dialer.widget.EmptyContentView;
-import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
 
 /**
  * Displays a list of call log entries. To filter for a particular kind of call (all, missed or
@@ -67,7 +66,6 @@
 public class CallLogFragment extends Fragment
     implements CallLogQueryHandler.Listener,
         CallLogAdapter.CallFetcher,
-        CallLogAdapter.MultiSelectRemoveView,
         OnEmptyViewActionButtonClickedListener,
         FragmentCompat.OnRequestPermissionsResultCallback,
         CallLogModalAlertManager.Listener {
@@ -319,7 +317,6 @@
                 getActivity(),
                 mRecyclerView,
                 this,
-                this,
                 CallLogCache.getCallLogCache(getActivity()),
                 mContactInfoCache,
                 getVoicemailPlaybackPresenter(),
@@ -383,16 +380,6 @@
   }
 
   @Override
-  public void onStart() {
-    super.onStart();
-    CequintCallerIdManager cequintCallerIdManager = null;
-    if (CequintCallerIdManager.isCequintCallerIdEnabled(getContext())) {
-      cequintCallerIdManager = CequintCallerIdManager.createInstanceForCallLog();
-    }
-    mContactInfoCache.setCequintCallerIdManager(cequintCallerIdManager);
-  }
-
-  @Override
   public void onStop() {
     updateOnTransition();
 
@@ -464,8 +451,6 @@
       mEmptyListView.setActionLabel(EmptyContentView.NO_LABEL);
     } else if (filterType == CallLogQueryHandler.CALL_TYPE_ALL) {
       mEmptyListView.setActionLabel(R.string.call_log_all_empty_action);
-    } else {
-      mEmptyListView.setActionLabel(EmptyContentView.NO_LABEL);
     }
   }
 
@@ -604,16 +589,6 @@
     }
   }
 
-  @Override
-  public void showMultiSelectRemoveView(boolean show) {
-    ((ListsFragment) getParentFragment()).showMultiSelectRemoveView(show);
-  }
-
-  @Override
-  public void setSelectAllModeToFalse() {
-    ((ListsFragment) getParentFragment()).setSelectAllModeToFalse();
-  }
-
   public interface HostInterface {
 
     void showDialpad();
diff --git a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
index a9a4d1d..1daccd1 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;
@@ -32,6 +31,7 @@
 import android.support.v7.widget.CardView;
 import android.support.v7.widget.RecyclerView;
 import android.telecom.PhoneAccountHandle;
+import android.telecom.TelecomManager;
 import android.telephony.PhoneNumberUtils;
 import android.text.BidiFormatter;
 import android.text.TextDirectionHeuristics;
@@ -44,13 +44,10 @@
 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;
 import com.android.contacts.common.dialog.CallSubjectDialog;
-import com.android.contacts.common.lettertiles.LetterTileDrawable;
-import com.android.contacts.common.lettertiles.LetterTileDrawable.ContactType;
 import com.android.contacts.common.util.UriUtils;
 import com.android.dialer.app.DialtactsActivity;
 import com.android.dialer.app.R;
@@ -61,16 +58,15 @@
 import com.android.dialer.blocking.FilteredNumberCompat;
 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.dialercontact.DialerContact;
 import com.android.dialer.lightbringer.Lightbringer;
 import com.android.dialer.lightbringer.LightbringerComponent;
 import com.android.dialer.logging.ContactSource;
 import com.android.dialer.logging.DialerImpression;
-import com.android.dialer.logging.InteractionEvent;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.logging.ScreenEvent;
 import com.android.dialer.phonenumbercache.CachedNumberLookupService;
@@ -255,20 +251,6 @@
     phoneCallDetailsViews.nameView.setElegantTextHeight(false);
     phoneCallDetailsViews.callLocationAndDate.setElegantTextHeight(false);
 
-    if (mContext instanceof CallLogActivity) {
-      Logger.get(mContext)
-          .logQuickContactOnTouch(
-              quickContactView, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CALL_HISTORY, true);
-    } else if (mVoicemailPlaybackPresenter == null) {
-      Logger.get(mContext)
-          .logQuickContactOnTouch(
-              quickContactView, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CALL_LOG, true);
-    } else {
-      Logger.get(mContext)
-          .logQuickContactOnTouch(
-              quickContactView, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_VOICEMAIL, false);
-    }
-
     quickContactView.setOverlay(null);
     if (CompatUtils.hasPrioritizedMimeType()) {
       quickContactView.setPrioritizedMimeType(Phone.CONTENT_ITEM_TYPE);
@@ -485,7 +467,7 @@
         primaryActionButtonView.setContentDescription(
             TextUtils.expandTemplate(
                 mContext.getString(R.string.description_call_action), validNameOrNumber));
-        primaryActionButtonView.setImageResource(R.drawable.quantum_ic_call_vd_theme_24);
+        primaryActionButtonView.setImageResource(R.drawable.quantum_ic_call_white_24);
         primaryActionButtonView.setVisibility(View.VISIBLE);
       } else {
         primaryActionButtonView.setTag(null);
@@ -735,14 +717,19 @@
             getContactType());
   }
 
-  private @ContactType int getContactType() {
-    return LetterTileDrawable.getContactTypeFromPrimitives(
-        mCallLogCache.isVoicemailNumber(accountHandle, number),
-        isSpam,
-        mCachedNumberLookupService != null
-            && mCachedNumberLookupService.isBusiness(info.sourceType),
-        numberPresentation,
-        false);
+  private int getContactType() {
+    int contactType = ContactPhotoManager.TYPE_DEFAULT;
+    if (mCallLogCache.isVoicemailNumber(accountHandle, number)) {
+      contactType = ContactPhotoManager.TYPE_VOICEMAIL;
+    } else if (isSpam) {
+      contactType = ContactPhotoManager.TYPE_SPAM;
+    } else if (mCachedNumberLookupService != null
+        && mCachedNumberLookupService.isBusiness(info.sourceType)) {
+      contactType = ContactPhotoManager.TYPE_BUSINESS;
+    } else if (numberPresentation == TelecomManager.PRESENTATION_RESTRICTED) {
+      contactType = ContactPhotoManager.TYPE_GENERIC_AVATAR;
+    }
+    return contactType;
   }
 
   @Override
@@ -808,40 +795,19 @@
       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 DialerContact buildContact() {
-    DialerContact.Builder contact = DialerContact.newBuilder();
+  private CallComposerContact buildContact() {
+    CallComposerContact.Builder contact = CallComposerContact.newBuilder();
     contact.setPhotoId(info.photoId);
     if (info.photoUri != null) {
       contact.setPhotoUri(info.photoUri.toString());
diff --git a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
index 1f45f70..58fe6fa 100644
--- a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
+++ b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
@@ -225,18 +225,14 @@
       int count,
       String voicemailNumber,
       PendingIntent callVoicemailIntent,
-      PendingIntent voicemailSettingIntent,
-      boolean isRefresh) {
+      PendingIntent voicemailSettingIntent) {
     Assert.isNotNull(phoneAccountHandle);
     Assert.checkArgument(BuildCompat.isAtLeastO());
     TelephonyManager telephonyManager =
         context
             .getSystemService(TelephonyManager.class)
             .createForPhoneAccountHandle(phoneAccountHandle);
-    if (telephonyManager == null) {
-      LogUtil.e(TAG, "invalid PhoneAccountHandle, ignoring");
-      return;
-    }
+    Assert.isNotNull(telephonyManager);
     LogUtil.i(TAG, "Creating legacy voicemail notification");
 
     PersistableBundle carrierConfig = telephonyManager.getCarrierConfig();
@@ -279,8 +275,7 @@
         .setSound(telephonyManager.getVoicemailRingtoneUri(phoneAccountHandle))
         .setOngoing(
             carrierConfig.getBoolean(
-                CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL))
-        .setOnlyAlertOnce(isRefresh);
+                CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL));
 
     if (telephonyManager.isVoicemailVibrationEnabled(phoneAccountHandle)) {
       builder.setDefaults(Notification.DEFAULT_VIBRATE);
diff --git a/java/com/android/dialer/app/calllog/IntentProvider.java b/java/com/android/dialer/app/calllog/IntentProvider.java
index 9c3c18b..a94c678 100644
--- a/java/com/android/dialer/app/calllog/IntentProvider.java
+++ b/java/com/android/dialer/app/calllog/IntentProvider.java
@@ -24,14 +24,12 @@
 import android.telecom.PhoneAccountHandle;
 import com.android.contacts.common.model.Contact;
 import com.android.contacts.common.model.ContactLoader;
+import com.android.dialer.callcomposer.CallComposerContact;
 import com.android.dialer.calldetails.CallDetailsActivity;
 import com.android.dialer.calldetails.CallDetailsEntries;
 import com.android.dialer.callintent.CallInitiationType;
 import com.android.dialer.callintent.CallIntentBuilder;
-import com.android.dialer.dialercontact.DialerContact;
 import com.android.dialer.lightbringer.LightbringerComponent;
-import com.android.dialer.logging.DialerImpression;
-import com.android.dialer.logging.Logger;
 import com.android.dialer.util.CallUtil;
 import com.android.dialer.util.IntentUtil;
 import java.util.ArrayList;
@@ -70,7 +68,6 @@
     return new IntentProvider() {
       @Override
       public Intent getIntent(Context context) {
-        Logger.get(context).logImpression(DialerImpression.Type.IMS_VIDEO_REQUESTED_FROM_CALL_LOG);
         return new CallIntentBuilder(number, CallInitiationType.Type.CALL_LOG)
             .setPhoneAccountHandle(accountHandle)
             .setIsVideoCall(true)
@@ -83,8 +80,6 @@
     return new IntentProvider() {
       @Override
       public Intent getIntent(Context context) {
-        Logger.get(context)
-            .logImpression(DialerImpression.Type.LIGHTBRINGER_VIDEO_REQUESTED_FROM_CALL_LOG);
         return LightbringerComponent.get(context).getLightbringer().getIntent(context, number);
       }
     };
@@ -117,7 +112,7 @@
    * @return The call details intent provider.
    */
   public static IntentProvider getCallDetailIntentProvider(
-      CallDetailsEntries callDetailsEntries, DialerContact contact) {
+      CallDetailsEntries callDetailsEntries, CallComposerContact contact) {
     return new IntentProvider() {
       @Override
       public Intent getIntent(Context context) {
diff --git a/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java b/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java
index 6728dfb..7645a33 100644
--- a/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java
+++ b/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.telecom.PhoneAccountHandle;
 import com.android.dialer.app.calllog.CallLogAdapter;
+import com.android.dialer.compat.CompatUtils;
 import com.android.dialer.util.CallUtil;
 
 /**
@@ -45,7 +46,10 @@
 
   /** Return the most compatible version of the TelecomCallLogCache. */
   public static CallLogCache getCallLogCache(Context context) {
-    return new CallLogCacheLollipopMr1(context);
+    if (CompatUtils.isClassAvailable("android.telecom.PhoneAccountHandle")) {
+      return new CallLogCacheLollipopMr1(context);
+    }
+    return new CallLogCacheLollipop(context);
   }
 
   public void reset() {
diff --git a/java/com/android/dialer/app/calllog/calllogcache/CallLogCacheLollipop.java b/java/com/android/dialer/app/calllog/calllogcache/CallLogCacheLollipop.java
new file mode 100644
index 0000000..78aaa41
--- /dev/null
+++ b/java/com/android/dialer/app/calllog/calllogcache/CallLogCacheLollipop.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.app.calllog.calllogcache;
+
+import android.content.Context;
+import android.telecom.PhoneAccount;
+import android.telecom.PhoneAccountHandle;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+
+/**
+ * This is a compatibility class for the CallLogCache for versions of dialer before Lollipop Mr1
+ * (the introduction of phone accounts).
+ *
+ * <p>This class should not be initialized directly and instead be acquired from {@link
+ * CallLogCache#getCallLogCache}.
+ */
+class CallLogCacheLollipop extends CallLogCache {
+
+  private String mVoicemailNumber;
+
+  /* package */ CallLogCacheLollipop(Context context) {
+    super(context);
+  }
+
+  @Override
+  public boolean isVoicemailNumber(PhoneAccountHandle accountHandle, CharSequence number) {
+    if (TextUtils.isEmpty(number)) {
+      return false;
+    }
+
+    String numberString = number.toString();
+
+    if (!TextUtils.isEmpty(mVoicemailNumber)) {
+      return PhoneNumberUtils.compare(numberString, mVoicemailNumber);
+    }
+
+    if (PhoneNumberUtils.isVoiceMailNumber(numberString)) {
+      mVoicemailNumber = numberString;
+      return true;
+    }
+
+    return false;
+  }
+
+  @Override
+  public String getAccountLabel(PhoneAccountHandle accountHandle) {
+    return null;
+  }
+
+  @Override
+  public int getAccountColor(PhoneAccountHandle accountHandle) {
+    return PhoneAccount.NO_HIGHLIGHT_COLOR;
+  }
+
+  @Override
+  public boolean doesAccountSupportCallSubject(PhoneAccountHandle accountHandle) {
+    return false;
+  }
+}
diff --git a/java/com/android/dialer/app/contactinfo/ContactInfoCache.java b/java/com/android/dialer/app/contactinfo/ContactInfoCache.java
index 32bbf06..e561b56 100644
--- a/java/com/android/dialer/app/contactinfo/ContactInfoCache.java
+++ b/java/com/android/dialer/app/contactinfo/ContactInfoCache.java
@@ -24,7 +24,6 @@
 import android.text.TextUtils;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.logging.ContactSource.Type;
-import com.android.dialer.oem.CequintCallerIdManager;
 import com.android.dialer.phonenumbercache.ContactInfo;
 import com.android.dialer.phonenumbercache.ContactInfoHelper;
 import com.android.dialer.util.ExpirableCache;
@@ -56,7 +55,6 @@
   private final OnContactInfoChangedListener mOnContactInfoChangedListener;
   private final BlockingQueue<ContactInfoRequest> mUpdateRequests;
   private final Handler mHandler;
-  private CequintCallerIdManager mCequintCallerIdManager;
   private QueryThread mContactInfoQueryThread;
   private volatile boolean mRequestProcessingDisabled = false;
 
@@ -97,10 +95,6 @@
     mHandler = new InnerHandler(new WeakReference<>(this));
   }
 
-  public void setCequintCallerIdManager(CequintCallerIdManager cequintCallerIdManager) {
-    mCequintCallerIdManager = cequintCallerIdManager;
-  }
-
   public ContactInfo getValue(
       String number,
       String countryIso,
@@ -166,7 +160,7 @@
         // TODO: Maybe skip look up if it's already available in cached number lookup
         // service.
         long start = SystemClock.elapsedRealtime();
-        mContactInfoHelper.updateFromCequintCallerId(mCequintCallerIdManager, info, request.number);
+        mContactInfoHelper.updateFromCequintCallerId(info, request.number);
         long time = SystemClock.elapsedRealtime() - start;
         LogUtil.d(
             "ContactInfoCache.queryContactInfo", "Cequint Caller Id look up takes %d ms", time);
diff --git a/java/com/android/dialer/app/dialpad/DialpadFragment.java b/java/com/android/dialer/app/dialpad/DialpadFragment.java
index c0b26c9..e9d57b3 100644
--- a/java/com/android/dialer/app/dialpad/DialpadFragment.java
+++ b/java/com/android/dialer/app/dialpad/DialpadFragment.java
@@ -29,7 +29,6 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.pm.PackageManager;
-import android.content.res.Resources;
 import android.database.Cursor;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
@@ -85,7 +84,6 @@
 import com.android.dialer.dialpadview.DialpadKeyButton;
 import com.android.dialer.dialpadview.DialpadView;
 import com.android.dialer.location.GeoUtil;
-import com.android.dialer.oem.MotorolaUtils;
 import com.android.dialer.proguard.UsedByReflection;
 import com.android.dialer.telecom.TelecomUtil;
 import com.android.dialer.util.CallUtil;
@@ -628,14 +626,6 @@
     Trace.beginSection(TAG + " onResume");
     super.onResume();
 
-    Resources res = getResources();
-    int iconId = R.drawable.quantum_ic_call_vd_theme_24;
-    if (MotorolaUtils.isWifiCallingAvailable(getContext())) {
-      iconId = R.drawable.ic_wifi_calling;
-    }
-    mFloatingActionButtonController.changeIcon(
-        res.getDrawable(iconId, null), res.getString(R.string.description_dial_button));
-
     final DialtactsActivity activity = (DialtactsActivity) getActivity();
     mDialpadQueryListener = activity;
 
diff --git a/java/com/android/dialer/app/filterednumber/NumbersAdapter.java b/java/com/android/dialer/app/filterednumber/NumbersAdapter.java
index d98395e..f71517a 100644
--- a/java/com/android/dialer/app/filterednumber/NumbersAdapter.java
+++ b/java/com/android/dialer/app/filterednumber/NumbersAdapter.java
@@ -28,7 +28,6 @@
 import android.widget.TextView;
 import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
-import com.android.contacts.common.lettertiles.LetterTileDrawable;
 import com.android.contacts.common.util.UriUtils;
 import com.android.dialer.app.R;
 import com.android.dialer.compat.CompatUtils;
@@ -99,8 +98,8 @@
         info.lookupUri == null ? null : UriUtils.getLookupKeyFromUri(info.lookupUri);
     final int contactType =
         mContactInfoHelper.isBusiness(info.sourceType)
-            ? LetterTileDrawable.TYPE_BUSINESS
-            : LetterTileDrawable.TYPE_DEFAULT;
+            ? ContactPhotoManager.TYPE_BUSINESS
+            : ContactPhotoManager.TYPE_DEFAULT;
     final DefaultImageRequest request =
         new DefaultImageRequest(displayName, lookupKey, contactType, true /* isCircular */);
     badge.assignContactUri(info.lookupUri);
diff --git a/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java b/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java
index c208fd5..1cdeb21 100644
--- a/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java
+++ b/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java
@@ -40,7 +40,6 @@
       Activity activity,
       ViewGroup alertContainer,
       CallLogAdapter.CallFetcher callFetcher,
-      CallLogAdapter.MultiSelectRemoveView multiSelectRemoveView,
       CallLogCache callLogCache,
       ContactInfoCache contactInfoCache,
       VoicemailPlaybackPresenter voicemailPlaybackPresenter,
diff --git a/java/com/android/dialer/app/legacybindings/DialerLegacyBindingsStub.java b/java/com/android/dialer/app/legacybindings/DialerLegacyBindingsStub.java
index 19fa1a7..6e32843 100644
--- a/java/com/android/dialer/app/legacybindings/DialerLegacyBindingsStub.java
+++ b/java/com/android/dialer/app/legacybindings/DialerLegacyBindingsStub.java
@@ -34,7 +34,6 @@
       Activity activity,
       ViewGroup alertContainer,
       CallLogAdapter.CallFetcher callFetcher,
-      CallLogAdapter.MultiSelectRemoveView multiSelectRemoveView,
       CallLogCache callLogCache,
       ContactInfoCache contactInfoCache,
       VoicemailPlaybackPresenter voicemailPlaybackPresenter,
@@ -44,7 +43,6 @@
         activity,
         alertContainer,
         callFetcher,
-        multiSelectRemoveView,
         callLogCache,
         contactInfoCache,
         voicemailPlaybackPresenter,
diff --git a/java/com/android/dialer/app/list/AllContactsFragment.java b/java/com/android/dialer/app/list/AllContactsFragment.java
index f5fdb9e..0460997 100644
--- a/java/com/android/dialer/app/list/AllContactsFragment.java
+++ b/java/com/android/dialer/app/list/AllContactsFragment.java
@@ -38,14 +38,12 @@
 import com.android.contacts.common.list.ContactListFilter;
 import com.android.contacts.common.list.DefaultContactListAdapter;
 import com.android.dialer.app.R;
+import com.android.dialer.app.widget.EmptyContentView;
+import com.android.dialer.app.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
 import com.android.dialer.compat.CompatUtils;
-import com.android.dialer.logging.InteractionEvent;
-import com.android.dialer.logging.Logger;
 import com.android.dialer.util.DialerUtils;
 import com.android.dialer.util.IntentUtil;
 import com.android.dialer.util.PermissionsUtil;
-import com.android.dialer.widget.EmptyContentView;
-import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
 
 /** Fragments to show all contacts with phone numbers. */
 public class AllContactsFragment extends ContactEntryListFragment<ContactEntryListAdapter>
@@ -151,8 +149,6 @@
   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
     final Uri uri = (Uri) view.getTag();
     if (uri != null) {
-      Logger.get(getContext())
-          .logInteraction(InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_ALL_CONTACTS_GENERAL);
       if (CompatUtils.hasPrioritizedMimeType()) {
         QuickContact.showQuickContact(getContext(), view, uri, null, Phone.CONTENT_ITEM_TYPE);
       } else {
diff --git a/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java b/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java
index 04927cf..537f488 100644
--- a/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java
+++ b/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java
@@ -19,7 +19,6 @@
 import android.content.Context;
 import android.content.res.Resources;
 import android.database.Cursor;
-import android.graphics.drawable.Drawable;
 import android.telephony.PhoneNumberUtils;
 import android.text.BidiFormatter;
 import android.text.TextDirectionHeuristics;
@@ -30,6 +29,7 @@
 import com.android.contacts.common.util.ContactDisplayUtils;
 import com.android.dialer.app.R;
 import com.android.dialer.location.GeoUtil;
+import com.android.dialer.util.CallUtil;
 
 /**
  * {@link PhoneNumberListAdapter} with the following added shortcuts, that are displayed as list
@@ -50,6 +50,7 @@
 
   private final boolean[] mShortcutEnabled = new boolean[SHORTCUT_COUNT];
   private final BidiFormatter mBidiFormatter = BidiFormatter.getInstance();
+  private final boolean mVideoCallingEnabled;
   private final String mCountryIso;
 
   private String mFormattedQueryString;
@@ -58,6 +59,7 @@
     super(context);
 
     mCountryIso = GeoUtil.getCurrentCountryIso(context);
+    mVideoCallingEnabled = CallUtil.isVideoEnabled(context);
   }
 
   @Override
@@ -108,7 +110,8 @@
         return convertView;
       } else {
         final ContactListItemView v =
-            new ContactListItemView(getContext(), null, mIsImsVideoEnabled);
+            new ContactListItemView(
+                getContext(), null, mVideoCallingEnabled, isCallAndShareEnabled());
         assignShortcutToView(v, shortcutType);
         return v;
       }
@@ -122,7 +125,8 @@
       Context context, int partition, Cursor cursor, int position, ViewGroup parent) {
     final ContactListItemView view = super.newView(context, partition, cursor, position, parent);
 
-    view.setSupportVideoCallIcon(mIsImsVideoEnabled);
+    view.setSupportVideoCallIcon(mVideoCallingEnabled);
+    view.setSupportCallAndShareIcon(isCallAndShareEnabled());
     return view;
   }
 
@@ -167,7 +171,7 @@
 
   private void assignShortcutToView(ContactListItemView v, int shortcutType) {
     final CharSequence text;
-    final Drawable drawable;
+    final int drawableId;
     final Resources resources = getContext().getResources();
     final String number = getFormattedQueryString();
     switch (shortcutType) {
@@ -177,39 +181,34 @@
                 resources,
                 R.string.search_shortcut_call_number,
                 mBidiFormatter.unicodeWrap(number, TextDirectionHeuristics.LTR));
-        drawable = getContext().getResources().getDrawable(R.drawable.quantum_ic_call_vd_theme_24);
+        drawableId = R.drawable.ic_search_phone;
         break;
       case SHORTCUT_CREATE_NEW_CONTACT:
         text = resources.getString(R.string.search_shortcut_create_new_contact);
-        drawable =
-            getContext().getResources().getDrawable(R.drawable.quantum_ic_person_add_vd_theme_24);
-        drawable.setAutoMirrored(true);
+        drawableId = R.drawable.ic_search_add_contact;
         break;
       case SHORTCUT_ADD_TO_EXISTING_CONTACT:
         text = resources.getString(R.string.search_shortcut_add_to_contact);
-        drawable =
-            getContext().getResources().getDrawable(R.drawable.quantum_ic_person_add_vd_theme_24);
+        drawableId = R.drawable.quantum_ic_person_white_24;
         break;
       case SHORTCUT_SEND_SMS_MESSAGE:
         text = resources.getString(R.string.search_shortcut_send_sms_message);
-        drawable =
-            getContext().getResources().getDrawable(R.drawable.quantum_ic_message_vd_theme_24);
+        drawableId = R.drawable.quantum_ic_message_white_24;
         break;
       case SHORTCUT_MAKE_VIDEO_CALL:
         text = resources.getString(R.string.search_shortcut_make_video_call);
-        drawable =
-            getContext().getResources().getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24);
+        drawableId = R.drawable.quantum_ic_videocam_white_24;
         break;
       case SHORTCUT_BLOCK_NUMBER:
         text = resources.getString(R.string.search_shortcut_block_number);
-        drawable =
-            getContext().getResources().getDrawable(R.drawable.ic_not_interested_googblue_24dp);
+        drawableId = R.drawable.ic_not_interested_googblue_24dp;
         break;
       default:
         throw new IllegalArgumentException("Invalid shortcut type");
     }
-    v.setDrawable(drawable);
+    v.setDrawableResource(drawableId);
     v.setDisplayName(text);
+    v.setPhotoPosition(super.getPhotoPosition());
     v.setAdjustSelectionBoundsEnabled(false);
   }
 
diff --git a/java/com/android/dialer/app/list/DialerViewPager.java b/java/com/android/dialer/app/list/DialerViewPager.java
deleted file mode 100644
index ae99f05..0000000
--- a/java/com/android/dialer/app/list/DialerViewPager.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dialer.app.list;
-
-import android.content.Context;
-import android.support.v4.view.ViewPager;
-import android.util.AttributeSet;
-import android.view.MotionEvent;
-
-/** Class that handles enabling/disabling swiping between @{ViewPagerTabs}. */
-public class DialerViewPager extends ViewPager {
-
-  private boolean enableSwipingPages;
-
-  public DialerViewPager(Context context, AttributeSet attributeSet) {
-    super(context, attributeSet);
-    enableSwipingPages = true;
-  }
-
-  @Override
-  public boolean onInterceptTouchEvent(MotionEvent event) {
-    if (enableSwipingPages) {
-      return super.onInterceptTouchEvent(event);
-    }
-
-    return false;
-  }
-
-  @Override
-  public boolean onTouchEvent(MotionEvent event) {
-    if (enableSwipingPages) {
-      return super.onTouchEvent(event);
-    }
-
-    return false;
-  }
-
-  public void setEnableSwipingPages(boolean enabled) {
-    enableSwipingPages = enabled;
-  }
-}
diff --git a/java/com/android/dialer/app/list/ListsFragment.java b/java/com/android/dialer/app/list/ListsFragment.java
index 32501d5..8dd52a9 100644
--- a/java/com/android/dialer/app/list/ListsFragment.java
+++ b/java/com/android/dialer/app/list/ListsFragment.java
@@ -31,23 +31,19 @@
 import android.os.Trace;
 import android.preference.PreferenceManager;
 import android.provider.VoicemailContract;
+import android.support.v4.view.ViewPager;
 import android.support.v4.view.ViewPager.OnPageChangeListener;
 import android.view.LayoutInflater;
 import android.view.View;
-import android.view.View.OnClickListener;
 import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.TextView;
 import com.android.contacts.common.list.ViewPagerTabs;
 import com.android.dialer.app.R;
 import com.android.dialer.app.calllog.CallLogFragment;
 import com.android.dialer.app.calllog.CallLogNotificationsService;
-import com.android.dialer.app.calllog.VisualVoicemailCallLogFragment;
 import com.android.dialer.app.voicemail.error.VoicemailStatusCorruptionHandler;
 import com.android.dialer.app.voicemail.error.VoicemailStatusCorruptionHandler.Source;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.database.CallLogQueryHandler;
-import com.android.dialer.database.CallLogQueryHandler.Listener;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.logging.ScreenEvent;
@@ -65,28 +61,24 @@
  * containing the lists up above the search bar and pin it against the top of the screen.
  */
 public class ListsFragment extends Fragment
-    implements OnPageChangeListener, Listener, OnClickListener {
+    implements ViewPager.OnPageChangeListener, CallLogQueryHandler.Listener {
 
   private static final String TAG = "ListsFragment";
-  private DialerViewPager mViewPager;
+  private ViewPager mViewPager;
   private ViewPagerTabs mViewPagerTabs;
   private DialtactsPagerAdapter mAdapter;
   private RemoveView mRemoveView;
   private View mRemoveViewContent;
-  private View mMultiSelectSelectAllViewContent;
-  private TextView mSelectUnselectAllViewText;
-  private ImageView mSelectUnselectAllIcon;
   private Fragment mCurrentPage;
   private SharedPreferences mPrefs;
   private boolean mHasFetchedVoicemailStatus;
-  private boolean selectAllMode;
   private boolean mShowVoicemailTabAfterVoicemailStatusIsFetched;
   private VoicemailStatusHelper mVoicemailStatusHelper;
   private final ArrayList<OnPageChangeListener> mOnPageChangeListeners = new ArrayList<>();
   /** The position of the currently selected tab. */
   private int mTabIndex = TAB_INDEX_SPEED_DIAL;
-
   private boolean mPaused;
+
   private CallLogQueryHandler mCallLogQueryHandler;
 
   private final ContentObserver mVoicemailStatusObserver =
@@ -171,7 +163,7 @@
     tabIcons[TAB_INDEX_ALL_CONTACTS] = R.drawable.quantum_ic_people_white_24;
     tabIcons[TAB_INDEX_VOICEMAIL] = R.drawable.quantum_ic_voicemail_white_24;
 
-    mViewPager = (DialerViewPager) parentView.findViewById(R.id.lists_pager);
+    mViewPager = (ViewPager) parentView.findViewById(R.id.lists_pager);
     mAdapter =
         new DialtactsPagerAdapter(
             getContext(),
@@ -188,15 +180,9 @@
     mViewPagerTabs.configureTabIcons(tabIcons);
     mViewPagerTabs.setViewPager(mViewPager);
     addOnPageChangeListener(mViewPagerTabs);
+
     mRemoveView = (RemoveView) parentView.findViewById(R.id.remove_view);
     mRemoveViewContent = parentView.findViewById(R.id.remove_view_content);
-    mMultiSelectSelectAllViewContent =
-        parentView.findViewById(R.id.multi_select_select_all_view_content);
-    mSelectUnselectAllViewText = (TextView) parentView.findViewById(R.id.select_all_view_text);
-    mSelectUnselectAllIcon = (ImageView) parentView.findViewById(R.id.select_all_view_icon);
-    mMultiSelectSelectAllViewContent.setOnClickListener(null);
-    mSelectUnselectAllIcon.setOnClickListener(this);
-    mSelectUnselectAllViewText.setOnClickListener(this);
 
     if (PermissionsUtil.hasReadVoicemailPermissions(getContext())
         && PermissionsUtil.hasAddVoicemailPermissions(getContext())) {
@@ -205,7 +191,7 @@
           .registerContentObserver(
               VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver);
     } else {
-      LogUtil.w("ListsFragment.onCreateView", "no voicemail read permissions");
+      LogUtil.w("ListsFragment.onCreateView", "no voicemail read/add permissions");
     }
 
     Trace.endSection();
@@ -399,13 +385,6 @@
     mRemoveView.animate().alpha(show ? 1 : 0).start();
   }
 
-  public void showMultiSelectRemoveView(boolean show) {
-    mMultiSelectSelectAllViewContent.setVisibility(show ? View.VISIBLE : View.GONE);
-    mMultiSelectSelectAllViewContent.setAlpha(show ? 0 : 1);
-    mMultiSelectSelectAllViewContent.animate().alpha(show ? 1 : 0).start();
-    mViewPager.setEnableSwipingPages(!show);
-  }
-
   public boolean hasFrequents() {
     Fragment page = mAdapter.getItem(mAdapter.getRtlPosition(TAB_INDEX_SPEED_DIAL));
     return page instanceof OldSpeedDialFragment
@@ -445,28 +424,4 @@
     }
     Logger.get(getActivity()).logScreenView(screenType, getActivity());
   }
-
-  @Override
-  public void onClick(View v) {
-    updateSelectAllIcon();
-    selectAllMode = !selectAllMode;
-  }
-
-  public void setSelectAllModeToFalse() {
-    selectAllMode = false;
-    mSelectUnselectAllIcon.setImageDrawable(
-        getContext().getDrawable(R.drawable.ic_empty_check_mark_white_24dp));
-  }
-
-  private void updateSelectAllIcon() {
-    if (selectAllMode) {
-      mSelectUnselectAllIcon.setImageDrawable(
-          getContext().getDrawable(R.drawable.ic_empty_check_mark_white_24dp));
-      ((VisualVoicemailCallLogFragment) mCurrentPage).getAdapter().onAllDeselected();
-    } else {
-      mSelectUnselectAllIcon.setImageDrawable(
-          getContext().getDrawable(R.drawable.ic_check_mark_blue_24dp));
-      ((VisualVoicemailCallLogFragment) mCurrentPage).getAdapter().onAllSelected();
-    }
-  }
 }
diff --git a/java/com/android/dialer/app/list/OldSpeedDialFragment.java b/java/com/android/dialer/app/list/OldSpeedDialFragment.java
index 1ddc0f4..40fe745 100644
--- a/java/com/android/dialer/app/list/OldSpeedDialFragment.java
+++ b/java/com/android/dialer/app/list/OldSpeedDialFragment.java
@@ -50,11 +50,12 @@
 import com.android.contacts.common.list.ContactTileView;
 import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
 import com.android.dialer.app.R;
+import com.android.dialer.app.widget.EmptyContentView;
+import com.android.dialer.callintent.CallInitiationType;
 import com.android.dialer.callintent.CallSpecificAppData;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.util.PermissionsUtil;
 import com.android.dialer.util.ViewUtil;
-import com.android.dialer.widget.EmptyContentView;
 import java.util.ArrayList;
 
 /** This fragment displays the user's favorite/frequent contacts in a grid. */
@@ -429,7 +430,7 @@
     void showAllContactsTab();
   }
 
-  class ContactTileLoaderListener implements LoaderManager.LoaderCallbacks<Cursor> {
+  private class ContactTileLoaderListener implements LoaderManager.LoaderCallbacks<Cursor> {
 
     @Override
     public CursorLoader onCreateLoader(int id, Bundle args) {
@@ -459,17 +460,24 @@
   private class ContactTileAdapterListener implements ContactTileView.Listener {
 
     @Override
-    public void onContactSelected(
-        Uri contactUri, Rect targetRect, CallSpecificAppData callSpecificAppData) {
+    public void onContactSelected(Uri contactUri, Rect targetRect) {
       if (mPhoneNumberPickerActionListener != null) {
+        CallSpecificAppData callSpecificAppData =
+            CallSpecificAppData.newBuilder()
+                .setCallInitiationType(CallInitiationType.Type.SPEED_DIAL)
+                .build();
         mPhoneNumberPickerActionListener.onPickDataUri(
             contactUri, false /* isVideoCall */, callSpecificAppData);
       }
     }
 
     @Override
-    public void onCallNumberDirectly(String phoneNumber, CallSpecificAppData callSpecificAppData) {
+    public void onCallNumberDirectly(String phoneNumber) {
       if (mPhoneNumberPickerActionListener != null) {
+        CallSpecificAppData callSpecificAppData =
+            CallSpecificAppData.newBuilder()
+                .setCallInitiationType(CallInitiationType.Type.SPEED_DIAL)
+                .build();
         mPhoneNumberPickerActionListener.onPickPhoneNumber(
             phoneNumber, false /* isVideoCall */, callSpecificAppData);
       }
diff --git a/java/com/android/dialer/app/list/PhoneFavoriteListView.java b/java/com/android/dialer/app/list/PhoneFavoriteListView.java
index f4f395f..9516f06 100644
--- a/java/com/android/dialer/app/list/PhoneFavoriteListView.java
+++ b/java/com/android/dialer/app/list/PhoneFavoriteListView.java
@@ -1,5 +1,6 @@
 /*
- * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2012 Google Inc.
+ * Licensed to The Android Open Source Project.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,6 +24,7 @@
 import android.graphics.Bitmap;
 import android.os.Handler;
 import android.util.AttributeSet;
+import android.util.Log;
 import android.view.DragEvent;
 import android.view.MotionEvent;
 import android.view.View;
@@ -31,7 +33,6 @@
 import android.widget.ImageView;
 import com.android.dialer.app.R;
 import com.android.dialer.app.list.DragDropController.DragItemContainer;
-import com.android.dialer.common.LogUtil;
 
 /** Viewgroup that presents the user's speed dial contacts in a grid. */
 public class PhoneFavoriteListView extends GridView
@@ -39,14 +40,14 @@
 
   public static final String LOG_TAG = PhoneFavoriteListView.class.getSimpleName();
   final int[] mLocationOnScreen = new int[2];
-  private static final long SCROLL_HANDLER_DELAY_MILLIS = 5;
-  private static final int DRAG_SCROLL_PX_UNIT = 25;
-  private static final float DRAG_SHADOW_ALPHA = 0.7f;
+  private final long SCROLL_HANDLER_DELAY_MILLIS = 5;
+  private final int DRAG_SCROLL_PX_UNIT = 25;
+  private final float DRAG_SHADOW_ALPHA = 0.7f;
   /**
    * {@link #mTopScrollBound} and {@link mBottomScrollBound} will be offseted to the top / bottom by
    * {@link #getHeight} * {@link #BOUND_GAP_RATIO} pixels.
    */
-  private static final float BOUND_GAP_RATIO = 0.2f;
+  private final float BOUND_GAP_RATIO = 0.2f;
 
   private float mTouchSlop;
   private int mTopScrollBound;
@@ -66,6 +67,7 @@
         }
       };
   private boolean mIsDragScrollerRunning = false;
+  private int mTouchDownForDragStartX;
   private int mTouchDownForDragStartY;
   private Bitmap mDragShadowBitmap;
   private ImageView mDragShadowOverlay;
@@ -96,7 +98,7 @@
   }
 
   public PhoneFavoriteListView(Context context, AttributeSet attrs) {
-    this(context, attrs, 0);
+    this(context, attrs, -1);
   }
 
   public PhoneFavoriteListView(Context context, AttributeSet attrs, int defStyle) {
@@ -119,6 +121,7 @@
   @Override
   public boolean onInterceptTouchEvent(MotionEvent ev) {
     if (ev.getAction() == MotionEvent.ACTION_DOWN) {
+      mTouchDownForDragStartX = (int) ev.getX();
       mTouchDownForDragStartY = (int) ev.getY();
     }
 
@@ -284,7 +287,7 @@
       try {
         bitmap = cache.copy(Bitmap.Config.ARGB_8888, false);
       } catch (final OutOfMemoryError e) {
-        LogUtil.w(LOG_TAG, "Failed to copy bitmap from Drawing cache", e);
+        Log.w(LOG_TAG, "Failed to copy bitmap from Drawing cache", e);
         bitmap = null;
       }
     }
diff --git a/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java b/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java
index 40f23ea..5a18d03 100644
--- a/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java
+++ b/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java
@@ -26,8 +26,6 @@
 import com.android.contacts.common.list.ContactEntry;
 import com.android.dialer.app.R;
 import com.android.dialer.compat.CompatUtils;
-import com.android.dialer.logging.InteractionEvent;
-import com.android.dialer.logging.Logger;
 
 /** Displays the contact's picture overlaid with their name and number type in a tile. */
 public class PhoneFavoriteSquareTileView extends PhoneFavoriteTileView {
@@ -89,8 +87,6 @@
           new OnClickListener() {
             @Override
             public void onClick(View v) {
-              Logger.get(getContext())
-                  .logInteraction(InteractionEvent.Type.SPEED_DIAL_OPEN_CONTACT_CARD);
               launchQuickContact();
             }
           });
diff --git a/java/com/android/dialer/app/list/PhoneFavoriteTileView.java b/java/com/android/dialer/app/list/PhoneFavoriteTileView.java
index 835b448..db89cf3 100644
--- a/java/com/android/dialer/app/list/PhoneFavoriteTileView.java
+++ b/java/com/android/dialer/app/list/PhoneFavoriteTileView.java
@@ -18,22 +18,16 @@
 
 import android.content.ClipData;
 import android.content.Context;
-import android.provider.ContactsContract.PinnedPositions;
 import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.View;
 import android.widget.ImageView;
+import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
 import com.android.contacts.common.MoreContactUtils;
-import com.android.contacts.common.lettertiles.LetterTileDrawable;
 import com.android.contacts.common.list.ContactEntry;
 import com.android.contacts.common.list.ContactTileView;
 import com.android.dialer.app.R;
-import com.android.dialer.callintent.CallInitiationType;
-import com.android.dialer.callintent.CallSpecificAppData;
-import com.android.dialer.callintent.SpeedDialContactType;
-import com.android.dialer.logging.InteractionEvent;
-import com.android.dialer.logging.Logger;
 
 /**
  * A light version of the {@link com.android.contacts.common.list.ContactTileView} that is used in
@@ -48,6 +42,7 @@
   // tile is long pressed.
   static final String DRAG_PHONE_FAVORITE_TILE = "PHONE_FAVORITE_TILE";
   private static final String TAG = PhoneFavoriteTileView.class.getSimpleName();
+  private static final boolean DEBUG = false;
   // These parameters instruct the photo manager to display the default image/letter at 70% of
   // its normal size, and vertically offset upwards 12% towards the top of the letter tile, to
   // make room for the contact name and number label at the bottom of the image.
@@ -60,8 +55,6 @@
   private View mShadowOverlay;
   /** Users' most frequent phone number. */
   private String mPhoneNumberString;
-  private boolean isPinned;
-  private boolean isStarred;
 
   public PhoneFavoriteTileView(Context context, AttributeSet attrs) {
     super(context, attrs);
@@ -90,8 +83,6 @@
     super.loadFromContact(entry);
     // Set phone number to null in case we're reusing the view.
     mPhoneNumberString = null;
-    isPinned = (entry.pinned != PinnedPositions.UNPINNED);
-    isStarred = entry.isFavorite;
     if (entry != null) {
       // Grab the phone-number to call directly. See {@link onClick()}.
       mPhoneNumberString = entry.phoneNumber;
@@ -122,35 +113,16 @@
         if (mListener == null) {
           return;
         }
-
-        CallSpecificAppData.Builder callSpecificAppData =
-            CallSpecificAppData.newBuilder()
-                .setCallInitiationType(CallInitiationType.Type.SPEED_DIAL)
-                .setSpeedDialContactPosition(
-                    ((PhoneFavoriteListView) v.getParent()).getPositionForView(v));
-        if (isStarred) {
-          callSpecificAppData.addSpeedDialContactType(SpeedDialContactType.Type.STARRED_CONTACT);
-        } else {
-          callSpecificAppData.addSpeedDialContactType(SpeedDialContactType.Type.FREQUENT_CONTACT);
-        }
-        if (isPinned) {
-          callSpecificAppData.addSpeedDialContactType(SpeedDialContactType.Type.PINNED_CONTACT);
-        }
-
         if (TextUtils.isEmpty(mPhoneNumberString)) {
           // Copy "superclass" implementation
-          Logger.get(getContext())
-              .logInteraction(InteractionEvent.Type.SPEED_DIAL_CLICK_CONTACT_WITH_AMBIGUOUS_NUMBER);
           mListener.onContactSelected(
-              getLookupUri(),
-              MoreContactUtils.getTargetRectFromView(PhoneFavoriteTileView.this),
-              callSpecificAppData.build());
+              getLookupUri(), MoreContactUtils.getTargetRectFromView(PhoneFavoriteTileView.this));
         } else {
           // When you tap a frequently-called contact, you want to
           // call them at the number that you usually talk to them
           // at (i.e. the one displayed in the UI), regardless of
           // whether that's their default number.
-          mListener.onCallNumberDirectly(mPhoneNumberString, callSpecificAppData.build());
+          mListener.onCallNumberDirectly(mPhoneNumberString);
         }
       }
     };
@@ -161,7 +133,7 @@
     return new DefaultImageRequest(
         displayName,
         lookupKey,
-        LetterTileDrawable.TYPE_DEFAULT,
+        ContactPhotoManager.TYPE_DEFAULT,
         DEFAULT_IMAGE_LETTER_SCALE,
         DEFAULT_IMAGE_LETTER_OFFSET,
         false);
diff --git a/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java b/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java
index ce85982..c692eca 100644
--- a/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java
+++ b/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java
@@ -30,6 +30,7 @@
 import android.provider.ContactsContract.PinnedPositions;
 import android.support.annotation.VisibleForTesting;
 import android.text.TextUtils;
+import android.util.Log;
 import android.util.LongSparseArray;
 import android.view.View;
 import android.view.ViewGroup;
@@ -40,11 +41,6 @@
 import com.android.contacts.common.list.ContactTileView;
 import com.android.contacts.common.preference.ContactsPreferences;
 import com.android.dialer.app.R;
-import com.android.dialer.common.LogUtil;
-import com.android.dialer.lightbringer.Lightbringer;
-import com.android.dialer.lightbringer.LightbringerComponent;
-import com.android.dialer.logging.InteractionEvent;
-import com.android.dialer.logging.Logger;
 import com.android.dialer.shortcuts.ShortcutRefresher;
 import com.google.common.collect.ComparisonChain;
 import java.util.ArrayList;
@@ -194,14 +190,6 @@
     // Track the length of {@link #mContactEntries} and compare to {@link #TILES_SOFT_LIMIT}.
     int counter = 0;
 
-    // Data for logging
-    int starredContactsCount = 0;
-    int pinnedContactsCount = 0;
-    int multipleNumbersContactsCount = 0;
-    int contactsWithPhotoCount = 0;
-    int contactsWithNameCount = 0;
-    int duoReachableContactsCount = 0;
-
     // The cursor should not be closed since this is invoked from a CursorLoader.
     if (cursor.moveToFirst()) {
       int starredColumn = cursor.getColumnIndexOrThrow(Contacts.STARRED);
@@ -274,22 +262,6 @@
         contact.pinned = pinned;
         mContactEntries.add(contact);
 
-        // Set counts for logging
-        if (isStarred) {
-          // mNumStarred might be larger than the number of visible starred contact,
-          // since it includes invisible ones (starred contact with no phone number).
-          starredContactsCount++;
-        }
-        if (pinned != PinnedPositions.UNPINNED) {
-          pinnedContactsCount++;
-        }
-        if (!TextUtils.isEmpty(name)) {
-          contactsWithNameCount++;
-        }
-        if (photoUri != null) {
-          contactsWithPhotoCount++;
-        }
-
         duplicates.put(id, contact);
 
         counter++;
@@ -302,47 +274,6 @@
 
     ShortcutRefresher.refresh(mContext, mContactEntries);
     notifyDataSetChanged();
-
-    Lightbringer lightbringer = LightbringerComponent.get(mContext).getLightbringer();
-    for (ContactEntry contact : mContactEntries) {
-      if (contact.phoneNumber == null) {
-        multipleNumbersContactsCount++;
-      } else if (lightbringer.isReachable(mContext, contact.phoneNumber)) {
-        duoReachableContactsCount++;
-      }
-    }
-
-    Logger.get(mContext)
-        .logSpeedDialContactComposition(
-            counter,
-            starredContactsCount,
-            pinnedContactsCount,
-            multipleNumbersContactsCount,
-            contactsWithPhotoCount,
-            contactsWithNameCount,
-            duoReachableContactsCount);
-    // Logs for manual testing
-    LogUtil.v("PhoneFavoritesTileAdapter.saveCursorToCache", "counter: %d", counter);
-    LogUtil.v(
-        "PhoneFavoritesTileAdapter.saveCursorToCache",
-        "starredContactsCount: %d",
-        starredContactsCount);
-    LogUtil.v(
-        "PhoneFavoritesTileAdapter.saveCursorToCache",
-        "pinnedContactsCount: %d",
-        pinnedContactsCount);
-    LogUtil.v(
-        "PhoneFavoritesTileAdapter.saveCursorToCache",
-        "multipleNumbersContactsCount: %d",
-        multipleNumbersContactsCount);
-    LogUtil.v(
-        "PhoneFavoritesTileAdapter.saveCursorToCache",
-        "contactsWithPhotoCount: %d",
-        contactsWithPhotoCount);
-    LogUtil.v(
-        "PhoneFavoritesTileAdapter.saveCursorToCache",
-        "contactsWithNameCount: %d",
-        contactsWithNameCount);
   }
 
   /** Iterates over the {@link Cursor} Returns position of the first NON Starred Contact */
@@ -416,7 +347,7 @@
   @Override
   public void notifyDataSetChanged() {
     if (DEBUG) {
-      LogUtil.v(TAG, "notifyDataSetChanged");
+      Log.v(TAG, "notifyDataSetChanged");
     }
     super.notifyDataSetChanged();
   }
@@ -424,7 +355,7 @@
   @Override
   public View getView(int position, View convertView, ViewGroup parent) {
     if (DEBUG) {
-      LogUtil.v(TAG, "get view for " + position);
+      Log.v(TAG, "get view for " + String.valueOf(position));
     }
 
     PhoneFavoriteTileView tileView = null;
@@ -524,9 +455,8 @@
           // update the database here with the new pinned positions
           try {
             mContext.getContentResolver().applyBatch(ContactsContract.AUTHORITY, operations);
-            Logger.get(mContext).logInteraction(InteractionEvent.Type.SPEED_DIAL_PIN_CONTACT);
           } catch (RemoteException | OperationApplicationException e) {
-            LogUtil.e(TAG, "Exception thrown when pinning contacts", e);
+            Log.e(TAG, "Exception thrown when pinning contacts", e);
           }
         }
       }
@@ -679,7 +609,6 @@
     if (mDraggedEntry != null) {
       unstarAndUnpinContact(mDraggedEntry.lookupUri);
       mAwaitingRemove = true;
-      Logger.get(mContext).logInteraction(InteractionEvent.Type.SPEED_DIAL_REMOVE_CONTACT);
     }
   }
 
diff --git a/java/com/android/dialer/app/list/RegularSearchFragment.java b/java/com/android/dialer/app/list/RegularSearchFragment.java
index 4f03203..0289679 100644
--- a/java/com/android/dialer/app/list/RegularSearchFragment.java
+++ b/java/com/android/dialer/app/list/RegularSearchFragment.java
@@ -25,12 +25,12 @@
 import com.android.contacts.common.list.ContactEntryListAdapter;
 import com.android.contacts.common.list.PinnedHeaderListView;
 import com.android.dialer.app.R;
+import com.android.dialer.app.widget.EmptyContentView;
+import com.android.dialer.app.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
 import com.android.dialer.callintent.CallInitiationType;
 import com.android.dialer.phonenumbercache.CachedNumberLookupService;
 import com.android.dialer.phonenumbercache.PhoneNumberCache;
 import com.android.dialer.util.PermissionsUtil;
-import com.android.dialer.widget.EmptyContentView;
-import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
 
 public class RegularSearchFragment extends SearchFragment
     implements OnEmptyViewActionButtonClickedListener,
diff --git a/java/com/android/dialer/app/list/RemoveView.java b/java/com/android/dialer/app/list/RemoveView.java
index 1d566c5..3b917db 100644
--- a/java/com/android/dialer/app/list/RemoveView.java
+++ b/java/com/android/dialer/app/list/RemoveView.java
@@ -41,7 +41,7 @@
   }
 
   public RemoveView(Context context, AttributeSet attrs) {
-    this(context, attrs, 0);
+    this(context, attrs, -1);
   }
 
   public RemoveView(Context context, AttributeSet attrs, int defStyle) {
diff --git a/java/com/android/dialer/app/list/SearchFragment.java b/java/com/android/dialer/app/list/SearchFragment.java
index 7f2d176..fcf8236 100644
--- a/java/com/android/dialer/app/list/SearchFragment.java
+++ b/java/com/android/dialer/app/list/SearchFragment.java
@@ -34,18 +34,19 @@
 import android.widget.ListView;
 import android.widget.Space;
 import com.android.contacts.common.list.ContactEntryListAdapter;
+import com.android.contacts.common.list.ContactListItemView;
 import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
 import com.android.contacts.common.list.PhoneNumberPickerFragment;
 import com.android.dialer.animation.AnimUtils;
 import com.android.dialer.app.R;
 import com.android.dialer.app.dialpad.DialpadFragment.ErrorDialogFragment;
 import com.android.dialer.app.widget.DialpadSearchEmptyContentView;
+import com.android.dialer.app.widget.EmptyContentView;
 import com.android.dialer.callintent.CallSpecificAppData;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.util.DialerUtils;
 import com.android.dialer.util.IntentUtil;
 import com.android.dialer.util.PermissionsUtil;
-import com.android.dialer.widget.EmptyContentView;
 
 public class SearchFragment extends PhoneNumberPickerFragment {
 
@@ -79,6 +80,7 @@
     setQuickContactEnabled(true);
     setAdjustSelectionBoundsEnabled(false);
     setDarkTheme(false);
+    setPhotoPosition(ContactListItemView.getDefaultPhotoPosition(false /* opposite */));
     setUseCallableUri(true);
 
     try {
diff --git a/java/com/android/dialer/app/list/SmartDialSearchFragment.java b/java/com/android/dialer/app/list/SmartDialSearchFragment.java
index fc21c8b..eb1508c 100644
--- a/java/com/android/dialer/app/list/SmartDialSearchFragment.java
+++ b/java/com/android/dialer/app/list/SmartDialSearchFragment.java
@@ -29,11 +29,11 @@
 import com.android.contacts.common.list.ContactEntryListAdapter;
 import com.android.dialer.app.R;
 import com.android.dialer.app.dialpad.SmartDialCursorLoader;
+import com.android.dialer.app.widget.EmptyContentView;
 import com.android.dialer.callintent.CallInitiationType;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.database.DialerDatabaseHelper;
 import com.android.dialer.util.PermissionsUtil;
-import com.android.dialer.widget.EmptyContentView;
 
 /** Implements a fragment to load and display SmartDial search results. */
 public class SmartDialSearchFragment extends SearchFragment
diff --git a/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml b/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml
index 7c6df94..ca93da0 100644
--- a/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml
+++ b/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml
@@ -19,7 +19,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.android.dialer.app">
 
-  <application android:theme="@style/Theme.AppCompat">
+  <application>
 
     <activity
       android:exported="false"
diff --git a/java/com/android/dialer/widget/res/drawable-hdpi/empty_contacts.png b/java/com/android/dialer/app/res/drawable-hdpi/empty_contacts.png
similarity index 100%
rename from java/com/android/dialer/widget/res/drawable-hdpi/empty_contacts.png
rename to java/com/android/dialer/app/res/drawable-hdpi/empty_contacts.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_48dp.png
deleted file mode 100644
index eeed895..0000000
--- a/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_48dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_blue_24dp.png b/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_blue_24dp.png
deleted file mode 100644
index b041a74..0000000
--- a/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_blue_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-hdpi/ic_empty_check_mark_white_24dp.png b/java/com/android/dialer/app/res/drawable-hdpi/ic_empty_check_mark_white_24dp.png
deleted file mode 100644
index 2c5ba8d..0000000
--- a/java/com/android/dialer/app/res/drawable-hdpi/ic_empty_check_mark_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-hdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-hdpi/ic_results_phone.png
new file mode 100644
index 0000000..3a1a7a7
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-hdpi/ic_results_phone.png
Binary files differ
diff --git a/java/com/android/dialer/widget/res/drawable-mdpi/empty_contacts.png b/java/com/android/dialer/app/res/drawable-mdpi/empty_contacts.png
similarity index 100%
rename from java/com/android/dialer/widget/res/drawable-mdpi/empty_contacts.png
rename to java/com/android/dialer/app/res/drawable-mdpi/empty_contacts.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-mdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-mdpi/ic_check_mark_48dp.png
deleted file mode 100644
index f3b76be..0000000
--- a/java/com/android/dialer/app/res/drawable-mdpi/ic_check_mark_48dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-mdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-mdpi/ic_results_phone.png
new file mode 100644
index 0000000..74ccf14
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-mdpi/ic_results_phone.png
Binary files differ
diff --git a/java/com/android/dialer/widget/res/drawable-xhdpi/empty_contacts.png b/java/com/android/dialer/app/res/drawable-xhdpi/empty_contacts.png
similarity index 100%
rename from java/com/android/dialer/widget/res/drawable-xhdpi/empty_contacts.png
rename to java/com/android/dialer/app/res/drawable-xhdpi/empty_contacts.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xhdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-xhdpi/ic_check_mark_48dp.png
deleted file mode 100644
index 01a3bbe..0000000
--- a/java/com/android/dialer/app/res/drawable-xhdpi/ic_check_mark_48dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xhdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-xhdpi/ic_results_phone.png
new file mode 100644
index 0000000..0e24fa4
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-xhdpi/ic_results_phone.png
Binary files differ
diff --git a/java/com/android/dialer/widget/res/drawable-xxhdpi/empty_contacts.png b/java/com/android/dialer/app/res/drawable-xxhdpi/empty_contacts.png
similarity index 100%
rename from java/com/android/dialer/widget/res/drawable-xxhdpi/empty_contacts.png
rename to java/com/android/dialer/app/res/drawable-xxhdpi/empty_contacts.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xxhdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-xxhdpi/ic_check_mark_48dp.png
deleted file mode 100644
index 2043279..0000000
--- a/java/com/android/dialer/app/res/drawable-xxhdpi/ic_check_mark_48dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xxhdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-xxhdpi/ic_results_phone.png
new file mode 100644
index 0000000..9594619
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-xxhdpi/ic_results_phone.png
Binary files differ
diff --git a/java/com/android/dialer/widget/res/drawable-xxxhdpi/empty_contacts.png b/java/com/android/dialer/app/res/drawable-xxxhdpi/empty_contacts.png
similarity index 100%
rename from java/com/android/dialer/widget/res/drawable-xxxhdpi/empty_contacts.png
rename to java/com/android/dialer/app/res/drawable-xxxhdpi/empty_contacts.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_check_mark_48dp.png
deleted file mode 100644
index bfbe69e..0000000
--- a/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_check_mark_48dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_results_phone.png
new file mode 100644
index 0000000..395652c
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_results_phone.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable/ic_search_phone.xml b/java/com/android/dialer/app/res/drawable/ic_search_phone.xml
new file mode 100644
index 0000000..5d449ee
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable/ic_search_phone.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+  android:src="@drawable/ic_results_phone"
+  android:tint="@color/search_shortcut_icon_color"/>
diff --git a/java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml b/java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml
deleted file mode 100644
index 9687133..0000000
--- a/java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:height="24dp"
-    android:tint="?attr/colorControlNormal"
-    android:viewportHeight="30"
-    android:viewportWidth="30"
-    android:width="24dp">
-  <path
-      android:fillColor="@android:color/white"
-      android:pathData="M14.88,16.3h0L25,3.66a16.51,16.51 0,0 0,-20.3 0L14.88,16.3Z"/>
-  <path
-      android:fillColor="@android:color/white"
-      android:pathData="M26.42,18.88a1.25,1.25 0,0 0,-0.89 -0.36,1.28 1.28,0 0,0 -0.87,0.35 14.26,14.26 0,0 1,-3.32 2.31,1.24 1.24,0 0,0 -0.7,1.12v3.87a18.27,18.27 0,0 1,-5.75 0.91,18.63 18.63,0 0,1 -5.75,-0.9v-3.87a1.26,1.26 0,0 0,-0.7 -1.12,14.73 14.73,0 0,1 -3.34,-2.31 1.23,1.23 0,0 0,-0.87 -0.35,1.25 1.25,0 0,0 -0.89,0.36L0.24,22a1.24,1.24 0,0 0,-0.36 0.89,1.23 1.23,0 0,0 0.37,0.87 21.26,21.26 0,0 0,29.26 0,1.27 1.27,0 0,0 0,-1.77Z"/>
-</vector>
\ No newline at end of file
diff --git a/java/com/android/dialer/app/res/layout-land/empty_content_view_dialpad_search.xml b/java/com/android/dialer/app/res/layout-land/empty_content_view_dialpad_search.xml
index 59d1363..5f80680 100644
--- a/java/com/android/dialer/app/res/layout-land/empty_content_view_dialpad_search.xml
+++ b/java/com/android/dialer/app/res/layout-land/empty_content_view_dialpad_search.xml
@@ -26,14 +26,14 @@
       android:layout_height="0dp"
       android:layout_weight="1"/>
     <ImageView
-      android:id="@+id/empty_list_view_image"
+      android:id="@+id/emptyListViewImage"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_gravity="center_horizontal"
       android:importantForAccessibility="no"/>
 
     <TextView
-      android:id="@+id/empty_list_view_message"
+      android:id="@+id/emptyListViewMessage"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:paddingTop="8dp"
@@ -45,7 +45,7 @@
       android:textSize="@dimen/empty_list_message_text_size"/>
 
     <TextView
-      android:id="@+id/empty_list_view_action"
+      android:id="@+id/emptyListViewAction"
       style="@style/TextActionStyle"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
diff --git a/java/com/android/dialer/app/res/layout/action_mode_close_button.xml b/java/com/android/dialer/app/res/layout/action_mode_close_button.xml
deleted file mode 100644
index 4cb85d4..0000000
--- a/java/com/android/dialer/app/res/layout/action_mode_close_button.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/action_mode_close_button"
-    style="?attr/actionModeCloseButtonStyle"
-    android:layout_width="wrap_content"
-    android:layout_height="match_parent"
-    android:layout_marginEnd="16dip"
-    android:layout_marginRight="16dip"
-    android:paddingStart="8dp"
-    android:paddingLeft="8dp"
-    android:clickable="true"
-    android:contentDescription="@string/description_cancel_multi_select"
-    android:focusable="true"
-    android:src="@drawable/quantum_ic_close_white_24"/>
-
-
diff --git a/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml b/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml
index 422c529..17a4520 100644
--- a/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml
+++ b/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml
@@ -45,7 +45,7 @@
       android:cropToPadding="false"
       android:clipToPadding="false"/>
 
-    <com.android.dialer.widget.EmptyContentView
+    <com.android.dialer.app.widget.EmptyContentView
       android:id="@+id/empty_list_view"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
diff --git a/java/com/android/dialer/app/res/layout/call_log_fragment.xml b/java/com/android/dialer/app/res/layout/call_log_fragment.xml
index 8ed2d5b..64f7c10 100644
--- a/java/com/android/dialer/app/res/layout/call_log_fragment.xml
+++ b/java/com/android/dialer/app/res/layout/call_log_fragment.xml
@@ -37,7 +37,7 @@
     android:background="@color/background_dialer_call_log"
     android:clipToPadding="false"/>
 
-  <com.android.dialer.widget.EmptyContentView
+  <com.android.dialer.app.widget.EmptyContentView
     android:id="@+id/empty_list_view"
     android:layout_width="match_parent"
     android:layout_height="0dp"
diff --git a/java/com/android/dialer/app/res/layout/call_log_list_item.xml b/java/com/android/dialer/app/res/layout/call_log_list_item.xml
index 4a3a836..0fbbb9d 100644
--- a/java/com/android/dialer/app/res/layout/call_log_list_item.xml
+++ b/java/com/android/dialer/app/res/layout/call_log_list_item.xml
@@ -80,7 +80,7 @@
               android:layout_width="@dimen/contact_photo_size"
               android:layout_height="@dimen/contact_photo_size"
               android:visibility="gone"
-              android:src="@drawable/ic_check_mark_48dp" />
+              android:src="@drawable/quantum_ic_check_circle_googblue_24" />
 
         </FrameLayout>
 
diff --git a/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml b/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml
index 5046383..d3a5531 100644
--- a/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml
+++ b/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml
@@ -50,7 +50,7 @@
       <TextView
         android:id="@+id/call_action_text"
         style="@style/CallLogActionTextStyle"
-        android:text="@string/call"/>
+        android:text="@string/description_call_log_call_action"/>
 
       <TextView
         android:id="@+id/call_type_or_location_text"
@@ -135,7 +135,7 @@
 
     <ImageView
       style="@style/CallLogActionIconStyle"
-      android:src="@drawable/ic_phone_attach"/>
+      android:src="@drawable/ic_call_and_share"/>
 
     <TextView
       style="@style/CallLogActionTextStyle"
diff --git a/java/com/android/dialer/app/res/layout/dialpad_fragment.xml b/java/com/android/dialer/app/res/layout/dialpad_fragment.xml
index 9b95e1f..dd6dab7 100644
--- a/java/com/android/dialer/app/res/layout/dialpad_fragment.xml
+++ b/java/com/android/dialer/app/res/layout/dialpad_fragment.xml
@@ -21,42 +21,42 @@
     android:orientation="horizontal">
 
   <LinearLayout
-      android:layout_width="match_parent"
-      android:layout_height="wrap_content"
-      android:orientation="vertical">
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
 
     <!-- spacer view -->
     <View
-        android:id="@+id/spacer"
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_weight="1"
-        android:background="#00000000"/>
+      android:id="@+id/spacer"
+      android:layout_width="match_parent"
+      android:layout_height="0dp"
+      android:layout_weight="1"
+      android:background="#00000000"/>
     <!-- Dialpad shadow -->
     <View
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/shadow_length"
-        android:background="@drawable/shadow_fade_up"/>
+      android:layout_width="match_parent"
+      android:layout_height="@dimen/shadow_length"
+      android:background="@drawable/shadow_fade_up"/>
     <include layout="@layout/dialpad_view"/>
     <!-- "Dialpad chooser" UI, shown only when the user brings up the
              Dialer while a call is already in progress.
              When this UI is visible, the other Dialer elements
              (the textfield/button and the dialpad) are hidden. -->
     <ListView
-        android:id="@+id/dialpadChooser"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:background="@color/background_dialer_light"
-        android:visibility="gone"/>
+      android:id="@+id/dialpadChooser"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:background="@color/background_dialer_light"
+      android:visibility="gone"/>
 
   </LinearLayout>
 
   <!-- Margin bottom and alignParentBottom don't work well together, so use a Space instead. -->
   <Space
-      android:id="@+id/dialpad_floating_action_button_margin_bottom"
-      android:layout_width="match_parent"
-      android:layout_height="@dimen/floating_action_button_margin_bottom"
-      android:layout_alignParentBottom="true"/>
+    android:id="@+id/dialpad_floating_action_button_margin_bottom"
+    android:layout_width="match_parent"
+    android:layout_height="@dimen/floating_action_button_margin_bottom"
+    android:layout_alignParentBottom="true"/>
 
   <android.support.design.widget.FloatingActionButton
       android:id="@+id/dialpad_floating_action_button"
@@ -64,9 +64,8 @@
       android:layout_height="@dimen/floating_action_button_height"
       android:layout_above="@id/dialpad_floating_action_button_margin_bottom"
       android:layout_centerHorizontal="true"
+      android:src="@drawable/quantum_ic_call_white_24"
       android:contentDescription="@string/description_dial_button"
-      android:src="@drawable/quantum_ic_call_vd_theme_24"
-      app:backgroundTint="@color/dialpad_fab_green"
-      app:colorControlNormal="#ffffff"
-      app:elevation="@dimen/floating_action_button_translation_z"/>
+      app:elevation="@dimen/floating_action_button_translation_z"
+      app:backgroundTint="@color/dialpad_fab_green"/>
 </view>
diff --git a/java/com/android/dialer/widget/res/layout/empty_content_view.xml b/java/com/android/dialer/app/res/layout/empty_content_view.xml
similarity index 92%
rename from java/com/android/dialer/widget/res/layout/empty_content_view.xml
rename to java/com/android/dialer/app/res/layout/empty_content_view.xml
index 1777443..96a6a02 100644
--- a/java/com/android/dialer/widget/res/layout/empty_content_view.xml
+++ b/java/com/android/dialer/app/res/layout/empty_content_view.xml
@@ -16,13 +16,13 @@
 
 <merge xmlns:android="http://schemas.android.com/apk/res/android">
   <ImageView
-    android:id="@+id/empty_list_view_image"
+    android:id="@+id/emptyListViewImage"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:gravity="center_horizontal"/>
 
   <TextView
-    android:id="@+id/empty_list_view_message"
+    android:id="@+id/emptyListViewMessage"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:paddingTop="8dp"
@@ -34,7 +34,7 @@
     android:textSize="@dimen/empty_list_message_text_size"/>
 
   <TextView
-    android:id="@+id/empty_list_view_action"
+    android:id="@+id/emptyListViewAction"
     style="@style/TextActionStyle"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
diff --git a/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml b/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml
index 1d20479..e245aac 100644
--- a/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml
+++ b/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml
@@ -16,7 +16,7 @@
 
 <merge xmlns:android="http://schemas.android.com/apk/res/android">
   <ImageView
-    android:id="@+id/empty_list_view_image"
+    android:id="@+id/emptyListViewImage"
     android:layout_height="0dp"
     android:layout_weight="1"
     android:layout_width="match_parent"
@@ -24,7 +24,7 @@
     android:gravity="center_horizontal" />
 
   <TextView
-    android:id="@+id/empty_list_view_message"
+    android:id="@+id/emptyListViewMessage"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:gravity="center_horizontal|top"
@@ -36,7 +36,7 @@
     android:paddingBottom="8dp"/>
 
   <TextView
-    android:id="@+id/empty_list_view_action"
+    android:id="@+id/emptyListViewAction"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:gravity="center_horizontal"
diff --git a/java/com/android/dialer/app/res/layout/lists_fragment.xml b/java/com/android/dialer/app/res/layout/lists_fragment.xml
index 71867d7..442b428 100644
--- a/java/com/android/dialer/app/res/layout/lists_fragment.xml
+++ b/java/com/android/dialer/app/res/layout/lists_fragment.xml
@@ -15,41 +15,41 @@
 -->
 
 <FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/lists_frame"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:animateLayoutChanges="true">
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  android:id="@+id/lists_frame"
+  android:layout_width="match_parent"
+  android:layout_height="match_parent"
+  android:animateLayoutChanges="true">
 
   <LinearLayout
-      android:layout_width="match_parent"
-      android:layout_height="match_parent"
-      android:orientation="vertical">
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
 
     <!-- TODO: Apply background color to ActionBar instead of a FrameLayout. For now, this is
          the easiest way to preserve correct pane scrolling and searchbar collapse/expand
          behaviors. -->
     <FrameLayout
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/action_bar_height_large"
-        android:background="@color/actionbar_background_color"
-        android:elevation="@dimen/tab_elevation"/>
+      android:layout_width="match_parent"
+      android:layout_height="@dimen/action_bar_height_large"
+      android:background="@color/actionbar_background_color"
+      android:elevation="@dimen/tab_elevation"/>
 
     <com.android.contacts.common.list.ViewPagerTabs
-        android:id="@+id/lists_pager_header"
-        style="@style/DialtactsActionBarTabTextStyle"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/tab_height"
-        android:layout_gravity="top"
-        android:elevation="@dimen/tab_elevation"
-        android:orientation="horizontal"
-        android:textAllCaps="true"/>
+      android:id="@+id/lists_pager_header"
+      style="@style/DialtactsActionBarTabTextStyle"
+      android:layout_width="match_parent"
+      android:layout_height="@dimen/tab_height"
+      android:layout_gravity="top"
+      android:elevation="@dimen/tab_elevation"
+      android:orientation="horizontal"
+      android:textAllCaps="true"/>
 
-    <com.android.dialer.app.list.DialerViewPager
-        android:id="@+id/lists_pager"
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_weight="1"/>
+    <android.support.v4.view.ViewPager
+      android:id="@+id/lists_pager"
+      android:layout_width="match_parent"
+      android:layout_height="0dp"
+      android:layout_weight="1"/>
 
   </LinearLayout>
 
@@ -58,80 +58,41 @@
        This is required since drag and drop event is only sent to views are visible when drag
        starts. -->
   <com.android.dialer.app.list.RemoveView
-      android:id="@+id/remove_view"
-      android:layout_width="match_parent"
-      android:layout_height="@dimen/tab_height"
-      android:layout_marginTop="@dimen/action_bar_height_large"
-      android:contentDescription="@string/remove_contact"
-      android:importantForAccessibility="no">
+    android:id="@+id/remove_view"
+    android:layout_width="match_parent"
+    android:layout_height="@dimen/tab_height"
+    android:layout_marginTop="@dimen/action_bar_height_large"
+    android:contentDescription="@string/remove_contact"
+    android:importantForAccessibility="no">
 
     <LinearLayout
-        android:id="@+id/remove_view_content"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="@color/actionbar_background_color"
-        android:gravity="center"
-        android:orientation="horizontal"
-        android:visibility="gone">
+      android:id="@+id/remove_view_content"
+      android:layout_width="match_parent"
+      android:layout_height="match_parent"
+      android:background="@color/actionbar_background_color"
+      android:gravity="center"
+      android:orientation="horizontal"
+      android:visibility="gone">
 
       <ImageView
-          android:id="@+id/remove_view_icon"
-          android:layout_width="wrap_content"
-          android:layout_height="wrap_content"
-          android:layout_marginTop="8dp"
-          android:layout_marginBottom="8dp"
-          android:src="@drawable/ic_remove"
-          android:tint="@color/remove_text_color"/>
+        android:id="@+id/remove_view_icon"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="8dp"
+        android:layout_marginBottom="8dp"
+        android:src="@drawable/ic_remove"
+        android:tint="@color/remove_text_color"/>
 
       <TextView
-          android:id="@+id/remove_view_text"
-          android:layout_width="wrap_content"
-          android:layout_height="wrap_content"
-          android:text="@string/remove_contact"
-          android:textColor="@color/remove_text_color"
-          android:textSize="@dimen/remove_text_size"/>
+        android:id="@+id/remove_view_text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/remove_contact"
+        android:textColor="@color/remove_text_color"
+        android:textSize="@dimen/remove_text_size"/>
 
     </LinearLayout>
 
   </com.android.dialer.app.list.RemoveView>
 
-  <FrameLayout
-      android:id="@+id/multi_select_view"
-      android:layout_width="match_parent"
-      android:layout_height="@dimen/tab_height"
-      android:layout_marginTop="@dimen/action_bar_height_large"
-      android:contentDescription="@string/remove_contact"
-      android:importantForAccessibility="no">
-
-    <LinearLayout
-        android:id="@+id/multi_select_select_all_view_content"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_gravity="center"
-        android:background="@color/actionbar_background_color"
-        android:orientation="horizontal"
-        android:visibility="gone">
-
-      <ImageView
-          android:id="@+id/select_all_view_icon"
-          android:layout_width="wrap_content"
-          android:layout_height="match_parent"
-          android:paddingLeft="12dp"
-          android:gravity="center_vertical"
-          android:src="@drawable/ic_empty_check_mark_white_24dp"/>
-      <TextView
-          android:id="@+id/select_all_view_text"
-          android:layout_width="wrap_content"
-          android:layout_height="match_parent"
-          android:paddingLeft="30dp"
-          android:gravity="center_vertical"
-          android:text="@string/select_all"
-          android:textAllCaps="true"
-          android:textStyle="bold"
-          android:textColor="@color/remove_text_color"
-          android:textSize="@dimen/remove_text_size"/>
-    </LinearLayout>
-
-  </FrameLayout>
-
 </FrameLayout>
diff --git a/java/com/android/dialer/app/res/layout/search_edittext.xml b/java/com/android/dialer/app/res/layout/search_edittext.xml
index bb6a5f7..c02512d 100644
--- a/java/com/android/dialer/app/res/layout/search_edittext.xml
+++ b/java/com/android/dialer/app/res/layout/search_edittext.xml
@@ -29,7 +29,7 @@
       android:padding="@dimen/search_box_search_icon_padding"
       android:importantForAccessibility="no"
       android:scaleType="center"
-      android:src="@drawable/quantum_ic_search_vd_theme_24"
+      android:src="@drawable/quantum_ic_search_white_24"
       android:tint="@color/searchbox_icon_tint"/>
 
     <TextView
diff --git a/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml b/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml
index 3fa3be2..c778c6b 100644
--- a/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml
+++ b/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml
@@ -41,7 +41,7 @@
       android:numColumns="@integer/contact_tile_column_count_in_favorites"/>
   </FrameLayout>
 
-  <com.android.dialer.widget.EmptyContentView
+  <com.android.dialer.app.widget.EmptyContentView
     android:id="@+id/empty_list_view"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
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 4f4c65b..2eb462b 100644
--- a/java/com/android/dialer/app/res/values-af/strings.xml
+++ b/java/com/android/dialer/app/res/values-af/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Keer terug na oproep wat besig is"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Voeg oproep by"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Inkomende oproepe"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Gaan tans grootmaathandelingmodus in"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Het grootmaathandelingmodus verlaat"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Het <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> gekies"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Het <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ontkies"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Speel stemboodskap"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Bekyk kontak <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Bel <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Stemboodskap"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Kanselleer grootmaathandelingmodus"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"stemboodskap"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"stemboodskappe"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nee"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vee geselekteerde <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> uit?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> gekies"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> om <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Laai tans van SIM-kaart af…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM-kaartkontakte"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Geen kontakte-program beskikbaar nie"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Stemsoektog is nie beskikbaar nie"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Kan nie \'n foonoproep maak nie want die Foon-program is gedeaktiveer."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Deursoek kontakte"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nuwe gemiste oproepe"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Daar is nog niemand op jou spoedbel nie"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Voeg \'n gunsteling by"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Jy het nog nie enige kontakte nie"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Voeg \'n kontak by"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Raak aan prent om al die nommers te sien of raak en hou om te herorganiseer"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Verwyder"</string>
-    <string name="select_all" msgid="408601760696146245">"Kies alles"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Video-oproep"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Stuur \'n boodskap"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Oproepbesonderhede"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Geblokkeerde nommers"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is reeds geblokkeer."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Oproeprekeninge"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Skakel aan"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Stel toestemmings"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Skakel die kontaktetoestemming aan om spoedbel te aktiveer."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Skakel die foontoestemming aan om jou oproeprekord te sien."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Skakel die kontaktetoestemming aan om jou kontakte te sien."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Skakel die foontoestemming aan om na jou stemboodskapdiens te gaan."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Skakel die Kontakte-toestemmings aan om jou kontakte te deursoek."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Skakel die foontoestemming aan om \'n oproep te maak."</string>
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 7f4a622..8230301 100644
--- a/java/com/android/dialer/app/res/values-am/strings.xml
+++ b/java/com/android/dialer/app/res/values-am/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"በመካሄድ ላይ ወዳለው ጥሪ ተመለስ"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ጥሪ ያክሉ"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"ገቢ ጥሪዎች"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ወደ የጅምላ እርምጃ ሁነታ በመግባት ላይ"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ከጅምላ እርምጃ ሁነታ ለቀው ወጥተዋል"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ተመርጧል"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> አልተመረጠም"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"የድምፅ መልዕክት አጫውት"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"ዕውቂያ <xliff:g id="NAME">%1$s</xliff:g> ዕይ"</string>
     <string name="description_call" msgid="1532402285334775372">"ጥሪ <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"የድምፅ መልዕክት"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ሰከንድ"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> ደቂቃ <xliff:g id="SECONDS">%s</xliff:g> ሴከ"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"የጅምላ እርምጃ ሁነታ ይቅር"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"የድምፅ መልዕክት"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"የድምፅ መልዕክቶች"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"አዎ"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"አይ"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"የተመረጠው <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ይሰረዝ?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ተመርጠዋል"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g> ላይ"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"ከSIM ካርድ ላይ በመጫን ላይ..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"የSIM ካርድ ዕውቂያዎች"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"ምንም የእውቂያዎች መተግበሪያ አይገኝም"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"የድምጽ ፍለጋ አይገኝም"</string>
     <string name="call_not_available" msgid="7850148370757361155">"የስልክ መተግበሪያው ስለተሰናከለ የስልክ ጥሪ ማድረግ አይቻልም።"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"ዕውቅያዎችን ፈልግ"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> አዲስ ያልተመለሱ ጥሪዎች"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"በፈጥኖ መደወያ ላይ ገና ማንም የለዎትም"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ተወዳጅ አክል"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"ገና ምንም እውቂያዎች የሉዎትም"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ዕውቂያ አክል"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"ሁሉንም ቁጥሮች ለማየት ምስል ይንኩ ወይም ዳግም ለመደርደር ነክተው ይያዙት"</string>
     <string name="remove_contact" msgid="2353580570488923668">"አስወግድ"</string>
-    <string name="select_all" msgid="408601760696146245">"ሁሉንም ምረጥ"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"የቪዲዮ ጥሪ"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"መልእክት ላክ"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"የጥሪ ዝርዝሮች"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"የታገዱ ቁጥሮች"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ቀድሞውኑ ታግዷል።"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"የመደወያ መለያዎች"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"አብራ"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ፍቃዶችን አዋቅር"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"ፈጥኖ መደወያን ለማንቃት የእውቂያዎች ፍቃዱን ያብሩ።"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"የጥሪ ምዝግብ ማስታወአሽዎን ለማየት የስልክ ፍቃዱን ያብሩ።"</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"የእርስዎን እውቂያዎች ለማየት የእውቂያዎች ፍቃዱን ያብሩ።"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"የድምፅ መልዕክትዎን ለመድረስ የስልክ ፍቃዱን ያብሩ።"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"የእርስዎን እውቂያዎች ለመከታተል የእውቂያዎች ፍቃዶችን ያብሩ።"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"ስልክ ለመደወል የስልክ ፍቃዱን ያብሩ።"</string>
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 3687d0b..e4dfb4d 100644
--- a/java/com/android/dialer/app/res/values-ar/strings.xml
+++ b/java/com/android/dialer/app/res/values-ar/strings.xml
@@ -89,10 +89,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"عودة إلى المكالمة الجارية"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"إضافة مكالمة"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"المكالمات الواردة"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"يتم الدخول إلى وضع الإجراء المجمَّع"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"تمت مغادرة وضع الإجراء المجمَّع"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"تم تحديد <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"تم إلغاء تحديد <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"تشغيل البريد الصوتي"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"عرض جهة الاتصال <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"الاتصال بـ <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -107,13 +103,11 @@
     <string name="voicemail" msgid="8899540969000957954">"البريد الصوتي"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ثانية"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> دقيقة <xliff:g id="SECONDS">%s</xliff:g> ثانية"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"إلغاء وضع الإجراءات المجمَّع"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"البريد الصوتي"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"رسائل البريد الصوتي"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"نعم"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"لا"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"حذف رسائل <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> المحددة؟"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"تم تحديد <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> في <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -126,6 +120,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"‏جارٍ التحميل من شريحة SIM…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"‏شريحة SIM وجهات الاتصال"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"لا يتوفر تطبيق لجهات الاتصال"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"البحث الصوتي غير متاح"</string>
     <string name="call_not_available" msgid="7850148370757361155">"يتعذر إجراء مكالمة هاتفية نظرًا لأنه تم تعطيل تطبيق الهاتف."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"البحث في جهات الاتصال"</string>
@@ -154,9 +149,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> من المكالمات الجديدة الفائتة"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"لم تتم إضافة أية جهة اتصال إلى قائمة الاتصال السريع حتى الآن"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"إضافة مفضلة"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"ليست لديك أية جهات اتصال حتى الآن"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"إضافة جهة اتصال"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"المس الصورة للاطلاع على جميع الأرقام أو المس مع الاستمرار لإعادة الترتيب"</string>
     <string name="remove_contact" msgid="2353580570488923668">"إزالة"</string>
-    <string name="select_all" msgid="408601760696146245">"تحديد الكل"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"مكالمة فيديو"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"إرسال رسالة"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"تفاصيل المكالمة"</string>
@@ -225,9 +221,11 @@
     <string name="block_list" msgid="4701585783411870782">"الأرقام المحظورة"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"تم حظر <xliff:g id="NUMBER">%1$s</xliff:g>."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"حسابات الاتصال"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"تشغيل"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"تعيين الأذونات"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"لتمكين الاتصال السريع، شغِّل إذن جهات الاتصال."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"للاطلاع على سجل المكالمات، شغِّل إذن الهاتف."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"للاطلاع على جهات الاتصال، شغِّل إذن جهات الاتصال."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"للوصول إلى البريد الصوتي، شغِّل إذن الهاتف."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"للبحث عن جهات الاتصال، عليك تشغيل أذونات جهات الاتصال."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"لإجراء مكالمة، شغِّل إذن الهاتف."</string>
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 b6681c9..62bc117 100644
--- a/java/com/android/dialer/app/res/values-az/strings.xml
+++ b/java/com/android/dialer/app/res/values-az/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Davam edən zəngə qayıdın"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Zəng əlavə edin"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Gələn zənglər"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Toplu əməliyyat rejiminə daxil olunur"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Toplu əməliyyat rejimi tərk edilir"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> seçildi"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> seçilmədi"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Səsli məktubu oxudun"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> adlı kontakta baxın"</string>
     <string name="description_call" msgid="1532402285334775372">"Zəng <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Səsli poçt"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> san"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> dəq <xliff:g id="SECONDS">%s</xliff:g> san"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Qrup əməliyyatları rejimini ləğv edin"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"səsli e-məktub"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"səsli e-məktublar"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Bəli"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Xeyr"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Seçilmiş <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> silinsin?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> seçilib"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> tarixində <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM kartdan yüklənir..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM kart kontaktları"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Əlaqələr proqramı mövcud deyil"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Səsli axtarış mövcud deyil"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Telefon tətbiqi deaktiv edildiyinə görə telefon zəngi etmək mümkün deyil."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Kontakt axtarın"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> yeni buraxılmış zəng"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Hələ sürətli zəng siyahınızda hec kim yoxdur"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Sevimlilərə əlavə edin"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Hələ heç bir kontaktınız yoxdur"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Kontakt əlavə edin"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Bütün nömrələri görmək üçün təsvirə toxunun və ya yenidən qaydaya salmaq üçün basıb saxlayın"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Yığışdır"</string>
-    <string name="select_all" msgid="408601760696146245">"Hamısını seçin"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Video zəng"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Mesaj göndərin"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Zəng detalları"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Bloklanmış nömrələr"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> artıq bloklanıb."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Hesabların çağrılması"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktiv edin"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"İcazələri quraşdırın"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Sürətli yığımı aktivləşdirmək üçün, Kontakt icazələrini aktivləşdirin."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Çağrı jurnalınızı görmək üçün Telefon icazəsini aktivləşdirin."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Kontaktlarınızı görmək üçün Kontakt icazəsini aktivləşdirin."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Səsli poçta daxil olmaq üçün, Telefon icazəsini aktivləşdirin."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Kontaktlarınızı axtarmaq üçün, Kontakt icazələrini aktiv edin."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Zəng etmək üçün, Telefon icazəsini aktivləşdirin."</string>
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 40c0886..9df7291 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
@@ -86,10 +86,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Vrati se na poziv koji je u toku"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj poziv"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Dolazni pozivi"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Ulazite u režim grupnih radnji"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Izašli ste iz režima grupnih radnji"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Izabrano je <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Opozvan je izbor <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Puštanje govorne pošte"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Prikaži kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Pozovi <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -104,13 +100,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Govorna pošta"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Otkažite režim grupnih radnji"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"govornu poruku"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"govorne poruke"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Želite li da izbrišete izabranu(e) <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Izabranih: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> u <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -123,6 +117,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Učitava se sa SIM kartice…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakti na SIM kartici"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Nema dostupne aplikacije za kontakte"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Glasovna pretraga nije dostupna"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Nije moguće uputiti telefonski poziv jer je aplikacija Telefon onemogućena."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pretraži kontakte"</string>
@@ -151,9 +146,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Novih propuštenih poziva: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Nemate nijedan kontakt na brzom biranju"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodaj omiljen kontakt"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Još uvek nemate nijedan kontakt"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodaj kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Dodirnite sliku da biste videli sve brojeve ili dodirnite i zadržite da biste im promenili raspored"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Ukloni"</string>
-    <string name="select_all" msgid="408601760696146245">"Izaberi sve"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Video poziv"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Pošalji poruku"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detalji poziva"</string>
@@ -219,9 +215,11 @@
     <string name="block_list" msgid="4701585783411870782">"Blokirani brojevi"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> je već blokiran."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Nalozi za pozivanje"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Uključi"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Podesi dozvole"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Da biste omogućili brzo biranje, uključite dozvolu za Kontakte."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Da biste videli evidenciju poziva, uključite dozvolu za Telefon."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Da biste videli kontakte, uključite dozvolu za Kontakte."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Da biste pristupili govornoj pošti, uključite dozvolu za Telefon."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Da biste pretražili kontakte, uključite dozvole za Kontakte."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Da biste uputili poziv, uključite dozvolu za Telefon."</string>
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 f2ad334..aac3df2 100644
--- a/java/com/android/dialer/app/res/values-be/strings.xml
+++ b/java/com/android/dialer/app/res/values-be/strings.xml
@@ -87,10 +87,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Звярнуцца да бягучага выкліку"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Дадаць выклік"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Уваходныя выклікі"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Уваход у рэжым групавога дзеяння"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Выхад з рэжыму групавога дзеяння"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Выбрана: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Выбар скасаваны: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Прайграць паведамленне галасавой пошты"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Прагледзець кантакт <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Выклікаць карыстальнiка <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -105,13 +101,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Галасавая пошта"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> с"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> хв <xliff:g id="SECONDS">%s</xliff:g> с"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Скасаваць рэжым пакетных дзеянняў"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"галасавая пошта"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"галасавая пошта"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Так"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Не"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Выдаліць вылучанае: <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Выбрана: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> у <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -124,6 +118,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Загрузка з SIM-карты..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Кантакты SIM-карты"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Праграмы для аперацый з кантактамі няма"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Галасавы пошук недаступны"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Немагчыма зрабіць выклік па тэлефоне, таму што праграма Тэлефон была адключана."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Пошук кантактаў"</string>
@@ -152,9 +147,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Новых прапушчаных выклікаў: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"У вас пакуль нікога няма на хуткім наборы"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Дадаць улюбёны"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"У вас пакуль няма ніякіх кантактаў"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Дадаць кантакт"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Дакраніцеся да відарыса, каб прагледзець усе нумары, або дакраніцеся і ўтрымлівайце, каб змяніць парадак"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Выдаліць"</string>
-    <string name="select_all" msgid="408601760696146245">"Выбраць усё"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Відэавыклік"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Адправiць паведамленне"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Падрабязнасці выкліку"</string>
@@ -221,9 +217,11 @@
     <string name="block_list" msgid="4701585783411870782">"Заблакіраваныя нумары"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ужо заблакіраваны."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Уліковыя запісы для выклікаў"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Уключыць"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Задаць дазволы"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Каб уключыць хуткі набор, уключыце дазвол для Кантактаў."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Каб прагледзець свой журнал выклікаў, уключыце дазволы Тэлефона."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Каб бачыць свае кантакты, уключыце дазвол для Кантактаў."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Каб атрымаць доступ да галасавой пошты, уключыце дазвол для Тэлефона."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Каб шукаць свае кантакты, уключыце дазвол для Кантактаў."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Каб зрабіць выклік, уключыце дазвол для Тэлефона."</string>
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 8083f48..7bab71f 100644
--- a/java/com/android/dialer/app/res/values-bg/strings.xml
+++ b/java/com/android/dialer/app/res/values-bg/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Назад към текущото обаждане"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Добавяне на обаждане"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Вх. обаждания"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Влизате в режима на групови действия"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Излязохте от режима на групови действия"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Избрахте <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Премахнахте избора от <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Пускане на гласовата поща"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Преглед на контактa <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Обаждане на <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Гласова поща"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин <xliff:g id="SECONDS">%s</xliff:g> сек"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Анулиране на режима на групови действия"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"гласово съобщение"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"гласови съобщения"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Да"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Не"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Избрахте <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> – да се изтрие ли избраното?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Избрахте <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> в <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Зарежда се от SIM карта..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Контакти от SIM карта"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Няма налично приложение за контакти"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Гласовото търсене не е налице"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Не може да се осъществи телефонно обаждане, защото приложението Телефон е деактивирано."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Търсене в контактите"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> нови пропуснати обаждания"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Още нямате контакти за бързо набиране"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Добавяне на любим контакт"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Още нямате контакти"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Добавяне на контакт"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Докоснете изображението, за да видите всички номера, или го натиснете и задръжте за пренареждане"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Премахване"</string>
-    <string name="select_all" msgid="408601760696146245">"Избиране на всички"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Видеообаждане"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Изпращане на съобщение"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Подробности за обаждането"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Блокирани номера"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> вече е блокиран."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Профили за обаждане"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Включване"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Задаване на разрешенията"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"За да активирате бързото набиране, включете разрешението за Контакти."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"За да видите списъка с обажданията си, включете разрешението за Телефон."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"За да видите контактите си, включете разрешението за Контакти."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"За да осъществите достъп до гласовата си поща, включете разрешението за Телефон."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"За да търсите в контактите си, включете разрешенията за тях."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"За да извършите обаждане, включете разрешението за Телефон."</string>
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 4d2d7cc..271247b 100644
--- a/java/com/android/dialer/app/res/values-bn/strings.xml
+++ b/java/com/android/dialer/app/res/values-bn/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"প্রগতিতে থাকা কলে প্রত্যাবর্তন"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"কল যোগ করুন"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"ইনকামিং কলগুলি"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"বাল্ক অ্যাকশন মোডে প্রবেশ করা হচ্ছে"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"বাল্ক অ্যাকশন মোড ত্যাগ করুন"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> নির্বাচন করা হয়েছে"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> অনির্বাচন করা হয়েছে"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"ভয়েসমেল প্লে করুন"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> পরিচিতি দেখুন"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> কে কল করুন"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"ভয়েসমেল"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> সেকেন্ড"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> মিনিট <xliff:g id="SECONDS">%s</xliff:g> সেকেন্ড"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"ব্যাচ অ্যাকশন মোড বাতিল করুন"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ভয়েসমেল"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ভয়েসমেলগুলি"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"হ্যাঁ"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"না"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"নির্বাচিত <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> মুছে ফেলতে চান?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g>টি নির্বাচিত"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> তারিখে <xliff:g id="TIME">%2$s</xliff:g>\'টায়"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"সিম কার্ড থেকে লোড করা হচ্ছে…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"সিম কার্ডের পরিচিতিগুলি"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"কোনো পরিচিতি অ্যাপ্লিকেশান উপলব্ধ নয়"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"ভয়েস অনুসন্ধান অনুপলব্ধ"</string>
     <string name="call_not_available" msgid="7850148370757361155">"কোনো ফোন কল করা যাবে না কারণ ফোন অ্যাপ্লিকেশানটি অক্ষম করা হয়েছে৷"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"পরিচিতিগুলি খুঁজুন"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g>টি নতুন মিসড কল"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"আপনার স্পীড ডায়ালে এখনও পর্যন্ত কেউ নেই"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"একটি পছন্দসই যোগ করুন"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"আপনার এখনও পর্যন্ত কোনো পরিচিতি নেই"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"একটি পরিচিতি যোগ করুন"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"সমস্ত নম্বর দেখতে ছবিতে স্পর্শ করুন বা রেকর্ড করতে স্পর্শ করে ধরে রাখুন"</string>
     <string name="remove_contact" msgid="2353580570488923668">"সরান"</string>
-    <string name="select_all" msgid="408601760696146245">"সবগুলি নির্বাচন করুন"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"ভিডিও কল"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"একটি বার্তা পাঠান"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"কলের বিশদ বিবরণ"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"ব্লক করা নাম্বারগুলি"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ইতিমধ্যেই অববোধ করা রয়েছে৷"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"কলিং অ্যাকাউন্টগুলি"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"চালু করুন"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"অনুমতিগুলি সেট করুন"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"স্পীড ডায়াল সক্ষম করতে, পরিচিতিগুলির অনুমতি চালু করুন।"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"আপনার কল লগ দেখতে, ফোনের অনুমতি চালু করুন।"</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"আপনার পরিচিতিগুলি দেখতে, পরিচিতিগুলির অনুমতি চালু করুন।"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"আপনার ভয়েসমেল অ্যাক্সেস করতে, ফোনের অনুমতি চালু করুন।"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"আপনার পরিচিতিগুলি অনুসন্ধান করতে, পরিচিতির অনুমতিগুলি চালু করুন।"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"একটি কল করতে, ফোনের অনুমতি চালু করুন।"</string>
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 d834772..92c9c14 100644
--- a/java/com/android/dialer/app/res/values-bs/strings.xml
+++ b/java/com/android/dialer/app/res/values-bs/strings.xml
@@ -86,10 +86,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Povratak na poziv u toku"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj poziv"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Dolazni pozivi"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Ulazak u način rada za skupnu radnju"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Napuštanje načina rada za skupnu radnju"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Odabrano <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Poništen odabir <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Pokretanje govorne pošte"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Prikaži kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Pozovi kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -104,13 +100,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Govorna pošta"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Otkaži način rada za grupnu radnju"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"poruka govorne pošte"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"poruke govorne pošte"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Izbrisati izabranu/e <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Odabrano <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> u <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -123,6 +117,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Učitavanje sa SIM kartice…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakti sa SIM kartice"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Nije dostupna nijedna aplikacija za kontakte"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Glasovna pretraga nije dostupna"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Nije moguće uputiti poziv jer je aplikacija Telefon onemogućena."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Traži kontakte"</string>
@@ -151,9 +146,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Broj novih propuštenih poziva: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Nemate nikog na brzom biranju"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodaj u favorite"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Još nemate nijedan kontakt"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodaj kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Dodirnite sliku da vidite sve brojeve ili dodirnite i držite da promijenite raspored."</string>
     <string name="remove_contact" msgid="2353580570488923668">"Ukloni"</string>
-    <string name="select_all" msgid="408601760696146245">"Izaberi sve"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videopoziv"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Pošalji poruku"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detalji o pozivu"</string>
@@ -219,9 +215,11 @@
     <string name="block_list" msgid="4701585783411870782">"Blokirani brojevi"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> je već blokiran."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Računi za pozivanje"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Uključi"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Postavi dozvole"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Da omogućite brzo biranje, uključite dozvolu za Kontakte."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Da vidite popis poziva, uključite dozvolu za Telefon."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Da vidite kontakte, uključite dozvolu za Kontakte."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Da pristupite govornoj pošti,uključite dozvolu za telefon."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Da pretražujete kontakte, uključite dozvole za Kontakte."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Da uputite poziv, uključite dozvolu za Telefon."</string>
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 7b12e0d..fa04dd9 100644
--- a/java/com/android/dialer/app/res/values-ca/strings.xml
+++ b/java/com/android/dialer/app/res/values-ca/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Torna a la trucada en curs"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Afegeix una trucada"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Trucades entrants"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"S\'està accedint al mode d\'acció massiva"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"S\'ha sortit del mode d\'acció massiva"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"S\'ha seleccionat <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"S\'ha desseleccionat <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Reprodueix el missatge de veu"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Visualitza el contacte <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Truca a <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Bústia de veu"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancel·la el mode d\'accions en lot"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"missatge de veu"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"missatges de veu"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sí"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vols suprimir l\'element o elements seleccionats (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> seleccionades"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> a les <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"S\'està carregant des de la targeta SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contactes de la targeta SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"No hi ha cap contacte disponible."</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"La cerca per veu no està disponible."</string>
     <string name="call_not_available" msgid="7850148370757361155">"No es pot fer una trucada telefònica perquè s\'ha desactivat l\'aplicació de telèfon."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Cerca als contactes"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> trucades perdudes noves"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Encara no tens cap contacte al marcatge ràpid"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Afegeix un preferit"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Encara no tens cap contacte"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Afegeix un contacte"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Toca la imatge per veure\'n tots els números o bé mantén-la premuda per canviar-ne l\'ordre"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Suprimeix"</string>
-    <string name="select_all" msgid="408601760696146245">"Selecciona-ho tot"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videotrucada"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Envia un missatge"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detalls de la trucada"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Números bloquejats"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ja està bloquejat."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Comptes de trucades"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Activa"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Defineix els permisos"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Activa el permís Contactes per activar el marcatge ràpid."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Activa el permís Telèfon per veure el teu registre de trucades."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Activa el permís Contactes per veure els teus contactes."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Activa el permís Telèfon per accedir a la bústia de veu."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Per cercar els teus contactes, activa els permisos de Contactes."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Activa el permís Telèfon per fer una trucada."</string>
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 bbcb358..5a3e429 100644
--- a/java/com/android/dialer/app/res/values-cs/strings.xml
+++ b/java/com/android/dialer/app/res/values-cs/strings.xml
@@ -87,10 +87,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Návrat k probíhajícímu hovoru"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Přidat hovor"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Příchozí volání"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Vstupování do režimu hromadných akcí"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Opustili jste režim hromadných akcí"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Položka <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> je vybrána"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Položka <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> není vybrána"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Přehrát hlasovou schránku"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Zobrazit kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Volat kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -105,13 +101,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Hlasová schránka"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Zrušit režim hromadných akcí"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"vybranou hlasovou zprávu"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"vybrané hlasové zprávy"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ano"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Smazat <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Vybráno: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> v <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -124,6 +118,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Načítání ze SIM karty..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakty na SIM kartě"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Není k dispozici žádná aplikace pro práci s kontakty."</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Hlasové vyhledávání není k dispozici."</string>
     <string name="call_not_available" msgid="7850148370757361155">"Telefonický hovor nelze uskutečnit, protože aplikace Telefon byla zakázána."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Vyhledat kontakty"</string>
@@ -152,9 +147,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Nové zmeškané hovory: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"V rychlém vytáčení zatím nemáte žádný kontakt."</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Přidat oblíbený kontakt"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Zatím nemáte žádné kontakty"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Přidat kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Klepnutím na obrázek zobrazíte všechna čísla. Podržením můžete změnit pořadí."</string>
     <string name="remove_contact" msgid="2353580570488923668">"Odstranit"</string>
-    <string name="select_all" msgid="408601760696146245">"Vybrat všechny"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videohovor"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Odeslat zprávu"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Podrobnosti hovoru"</string>
@@ -221,9 +217,11 @@
     <string name="block_list" msgid="4701585783411870782">"Blokovaná čísla"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> je již blokováno."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Účty pro volání"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Zapnout"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Nastavit oprávnění"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Chcete-li povolit rychlé vytáčení, aktivujte oprávnění Kontakty."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Chcete-li zobrazit seznam hovorů, aktivujte oprávnění Telefon."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Chcete-li zobrazit kontakty, aktivujte oprávnění Kontakty."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Chcete-li přejít do hlasové schránky, aktivujte oprávnění Telefon."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Chcete-li vyhledat kontakty, zapněte oprávnění Kontakty."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Chcete-li uskutečnit hovor, aktivujte oprávnění Telefon."</string>
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 31cf8e3..42aa663 100644
--- a/java/com/android/dialer/app/res/values-da/strings.xml
+++ b/java/com/android/dialer/app/res/values-da/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Vend tilbage til igangværende opkald"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Tilføj opkald"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Indgående opkald"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Massehandlingstilstanden startes"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Massehandlingstilstanden blev afsluttet"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Vælg <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Fravælg <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Afspil telefonsvarerbesked"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Vis kontaktpersonen <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Ring til <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Telefonsvarer"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Annuller massehandlingstilstand"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"talebesked"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"talebeskeder"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nej"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vil du slette de valgte <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> er valgt"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Indlæser fra SIM-kort ..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakter på SIM-kort"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Der er ingen app til kontaktpersoner"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Talesøgning er ikke tilgængelig"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Det er ikke muligt at foretage et telefonopkald, fordi applikationen Telefon er deaktiveret."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Søg i kontakter"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nye ubesvarede opkald"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Der er endnu ingen kontaktpersoner i Hurtigopkald"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Angiv en kontaktperson som foretrukken"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Du har endnu ikke nogen kontaktpersoner"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Tilføj en kontaktperson"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Tryk på billedet for at se alle numre, eller tryk og hold nede på billedet for at omarrangere"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Fjern"</string>
-    <string name="select_all" msgid="408601760696146245">"Vælg alt"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videoopkald"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Send en sms-besked"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Opkaldsinfo"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Blokerede telefonnumre"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> er allerede blokeret."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Opkaldskonti"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktivér"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Angiv tilladelser"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Slå tilladelsen Kontaktpersoner til for at aktivere hurtigopkald."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Slå tilladelsen Telefon til for at se din opkaldsliste."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Slå tilladelsen Kontaktpersoner til for at se dine kontaktpersoner."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Slå tilladelsen Telefon til for at få adgang til din telefonsvarer,"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Hvis du vil søge i dine kontaktpersoner, skal du slå tilladelserne Kontaktpersoner til."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Slå tilladelsen Telefon til for at foretage et opkald."</string>
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 c1f6441..5653e0f 100644
--- a/java/com/android/dialer/app/res/values-de/strings.xml
+++ b/java/com/android/dialer/app/res/values-de/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Zurück zum aktuellen Anruf"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Anruf hinzufügen"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Eingehende Anrufe"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Es wird in den Modus für Bulk-Aktionen gewechselt"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Der Modus für Bulk-Aktionen wurde verlassen"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ausgewählt"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Auswahl für <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> aufgehoben"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Mailbox abhören"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Kontakt <xliff:g id="NAME">%1$s</xliff:g> anzeigen"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> anrufen"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Mailbox"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Modus für Batch-Aktionen abbrechen"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"Mailboxnachricht"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"Mailboxnachrichten"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nein"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Ausgewählte <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> löschen?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ausgewählt"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> um <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Ladevorgang von SIM-Karte läuft..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakte auf SIM-Karte"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Keine Kontakte-App verfügbar"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Sprachsuche nicht verfügbar"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Es kann kein Anruf getätigt werden, da die App \"Telefon\" deaktiviert wurde."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"In Kontakten suchen"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> neue entgangene Anrufe"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Du hast für noch niemanden eine Kurzwahl festgelegt"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Favoriten hinzufügen"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Du hast noch keine Kontakte."</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Kontakt hinzufügen"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Tippe auf das Bild, um alle Nummern zu sehen, oder halte das Bild länger gedrückt, um sie neu anzuordnen"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Entfernen"</string>
-    <string name="select_all" msgid="408601760696146245">"Alle auswählen"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videoanruf"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"SMS senden"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Anrufdetails"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Blockierte Nummern"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ist bereits blockiert."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Anrufkonten"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktivieren"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Berechtigungen festlegen"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Aktiviere die Berechtigung \"Kontakte\", um die Kurzwahlfunktion zu verwenden."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Aktiviere die Berechtigung \"Telefon\", um dein Anrufprotokoll abzurufen."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Aktiviere die Berechtigung \"Kontakte\", um deine Kontakte abzurufen."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Aktiviere die Berechtigung \"Telefon\", um auf deine Mailbox zuzugreifen."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Aktiviere die Berechtigungen \"Kontakte\", um deine Kontakte zu suchen."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Aktiviere die Berechtigung \"Telefon\", um einen Anruf zu tätigen."</string>
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 c4ba02d..847f60a 100644
--- a/java/com/android/dialer/app/res/values-el/strings.xml
+++ b/java/com/android/dialer/app/res/values-el/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Επιστροφή στην κλήση που βρίσκεται σε εξέλιξη"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Προσθήκη κλήσης"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Εισερχόμενες κλήσεις"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Εισαγωγή στη λειτουργία μαζικών ενεργειών"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Αποχώρηση από τη λειτουργία μαζικών ενεργειών"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Έγινε επιλογή <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Καταργήθηκε η επιλογή <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Αναπαραγωγή μηνύματος αυτόματου τηλεφωνητή"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Προβολή επαφής <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Κλήση <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Αυτόματος τηλεφωνητής"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> δευτερόλεπτα"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> λεπτά <xliff:g id="SECONDS">%s</xliff:g> δευτερόλεπτα"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Ακύρωση λειτουργίας μαζικών ενεργειών"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"φωνητικού μηνύματος αυτόματου τηλεφωνητή"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"φωνητικών μηνυμάτων αυτόματου τηλεφωνητή"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ναι"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Όχι"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Διαγραφή επιλεγμ. <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>;"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Έχουν επιλεγεί <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> στις <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Φόρτωση από κάρτα SIM…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Επαφές στην κάρτα SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Δεν υπάρχουν διαθέσιμες εφαρμογές επαφών"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Η φωνητική αναζήτηση δεν είναι διαθέσιμη"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Δεν είναι δυνατή η πραγματοποίηση τηλεφωνικής κλήσης επειδή η εφαρμογή \"Τηλέφωνο\" έχει απενεργοποιηθεί."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Αναζήτηση επαφών"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> νέες αναπάντητες κλήσεις"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Δεν έχετε ορίσει ακόμη κάποια επαφή στις ταχείες κλήσεις"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Προσθέστε ένα αγαπημένο"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Δεν έχετε επαφές ακόμη"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Προσθήκη επαφής"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Αγγίξτε την εικόνα για να δείτε όλους τους αριθμούς ή αγγίξτε παρατεταμένα για αναδιάταξη"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Κατάργηση"</string>
-    <string name="select_all" msgid="408601760696146245">"Επιλογή όλων"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Βιντεοκλήση"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Αποστολή μηνύματος"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Λεπτομέρειες κλήσης"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Αποκλεισμένοι αριθμοί"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Ο αριθμός <xliff:g id="NUMBER">%1$s</xliff:g> αποκλείστηκε ήδη."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Λογαριασμοί κλήσης"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Ενεργοποίηση"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ορισμός αδειών"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Για να ενεργοποιήσετε την ταχεία κλήση, ενεργοποιήστε την άδεια επαφών."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Για να δείτε το αρχείο καταγραφής κλήσεών σας, ενεργοποιήστε την άδεια τηλεφώνου."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Για να δείτε τις επαφές σας, ενεργοποιήστε την άδεια επαφών."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Για να αποκτήσετε πρόσβαση στον τηλεφωνητή σας, ενεργοποιήστε την άδεια τηλεφώνου."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Για να κάνετε αναζήτηση στις επαφές σας, ενεργοποιήστε τις άδειες \"Επαφές\"."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Για να πραγματοποιήσετε μια κλήση, ενεργοποιήστε την άδεια τηλεφώνου."</string>
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 cb7e912..28eea8b 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
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Return to call in progress"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Add call"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Incoming calls"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entering bulk action mode"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Left bulk action mode"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Selected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Unselected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Play voicemail"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"View contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Call <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Voicemail"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancel batch actions mode"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"voicemails"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yes"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Delete selected <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selected"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> at <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Loading from SIM card…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM card contacts"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"No contacts app available"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Voice search not available"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Cannot make a phone call because the Phone application has been disabled."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Search contacts"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> new missed calls"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"No one is on your speed dial yet"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Add a favourite"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"You don\'t have any contacts yet"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Add a contact"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Touch image to see all numbers, or touch &amp; hold to re-arrange"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Remove"</string>
-    <string name="select_all" msgid="408601760696146245">"Select all"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Video call"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Send a message"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Call details"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Blocked numbers"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is already blocked."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Calling accounts"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Turn on"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Set permissions"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"To enable speed dial, turn on the Contacts permission."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"To see your call log, turn on the Phone permission."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"To see your contacts, turn on the Contacts permission."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"To access your voicemail, turn on the Phone permission."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"To search your contacts, turn on the Contacts permissions."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"To place a call, turn on the Phone permission."</string>
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 cb7e912..28eea8b 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
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Return to call in progress"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Add call"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Incoming calls"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entering bulk action mode"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Left bulk action mode"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Selected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Unselected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Play voicemail"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"View contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Call <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Voicemail"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancel batch actions mode"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"voicemails"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yes"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Delete selected <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selected"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> at <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Loading from SIM card…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM card contacts"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"No contacts app available"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Voice search not available"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Cannot make a phone call because the Phone application has been disabled."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Search contacts"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> new missed calls"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"No one is on your speed dial yet"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Add a favourite"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"You don\'t have any contacts yet"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Add a contact"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Touch image to see all numbers, or touch &amp; hold to re-arrange"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Remove"</string>
-    <string name="select_all" msgid="408601760696146245">"Select all"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Video call"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Send a message"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Call details"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Blocked numbers"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is already blocked."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Calling accounts"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Turn on"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Set permissions"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"To enable speed dial, turn on the Contacts permission."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"To see your call log, turn on the Phone permission."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"To see your contacts, turn on the Contacts permission."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"To access your voicemail, turn on the Phone permission."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"To search your contacts, turn on the Contacts permissions."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"To place a call, turn on the Phone permission."</string>
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 cb7e912..28eea8b 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
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Return to call in progress"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Add call"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Incoming calls"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entering bulk action mode"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Left bulk action mode"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Selected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Unselected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Play voicemail"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"View contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Call <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Voicemail"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancel batch actions mode"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"voicemails"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yes"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Delete selected <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selected"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> at <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Loading from SIM card…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM card contacts"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"No contacts app available"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Voice search not available"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Cannot make a phone call because the Phone application has been disabled."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Search contacts"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> new missed calls"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"No one is on your speed dial yet"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Add a favourite"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"You don\'t have any contacts yet"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Add a contact"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Touch image to see all numbers, or touch &amp; hold to re-arrange"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Remove"</string>
-    <string name="select_all" msgid="408601760696146245">"Select all"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Video call"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Send a message"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Call details"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Blocked numbers"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is already blocked."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Calling accounts"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Turn on"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Set permissions"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"To enable speed dial, turn on the Contacts permission."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"To see your call log, turn on the Phone permission."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"To see your contacts, turn on the Contacts permission."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"To access your voicemail, turn on the Phone permission."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"To search your contacts, turn on the Contacts permissions."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"To place a call, turn on the Phone permission."</string>
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 79d607f..9d80bc9 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
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Regresar a la llamada en curso"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Agregar llamada"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Llamadas entrantes"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando al modo de acción masiva"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saliendo del modo de acción masiva"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Se seleccionó <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Se anuló la selección de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Reproducir mensaje de voz"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Ver contacto <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Llamar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Correo de voz"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar el modo de acción masiva"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"el mensaje de voz"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"los mensajes de voz"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sí"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"¿Deseas borrar <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> que seleccionaste?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> seleccionada(s)"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"El <xliff:g id="DATE">%1$s</xliff:g> a la hora <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Cargando desde tarjeta SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contactos de tarjeta SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"No hay aplicaciones de contactos disponibles."</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Búsqueda por voz no disponible"</string>
     <string name="call_not_available" msgid="7850148370757361155">"No se pueden realizar llamadas porque se inhabilitó la aplicación Teléfono."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Buscar contactos"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> llamadas perdidas nuevas"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Aún no tienes contactos en la opción de marcado rápido"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Agregar un favorito"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Aún no tienes contactos"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Agregar un contacto"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Toca la imagen para ver todos los números o mantenla presionada para reorganizar"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Eliminar"</string>
-    <string name="select_all" msgid="408601760696146245">"Seleccionar todo"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videollamada"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar un mensaje"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detalles de la llamada"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ya está bloqueado."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Cuentas telefónicas"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Activar"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Configurar permisos"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Para habilitar el marcado rápido, activa el permiso Contactos."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Para ver el registro de llamadas, activa el permiso Teléfono."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver los contactos, activa el permiso Contactos."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Para acceder al buzón de voz, activa el permiso Teléfono."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Para buscar contactos, activa el permiso Contactos."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Para realizar una llamada, activa el permiso Teléfono."</string>
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 170edc8..b7383d9 100644
--- a/java/com/android/dialer/app/res/values-es/strings.xml
+++ b/java/com/android/dialer/app/res/values-es/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Volver a la llamada"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Añadir llamada"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Llamadas entrantes"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando en el modo de acción en bloque"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Se ha salido del modo de acción en bloque"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> seleccionado"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Selección de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> anulada"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Reproducir mensaje de voz"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Ver contacto <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Llamar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Buzón de voz"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min y <xliff:g id="SECONDS">%s</xliff:g> s"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar el modo de acciones en lote"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"mensaje de voz"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mensajes de voz"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sí"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"¿Eliminar la selección de <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Se han seleccionado <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> a las <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Cargando desde tarjeta SIM…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contactos de tarjeta SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"No hay aplicaciones de contactos disponibles"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"La búsqueda por voz no está disponible"</string>
     <string name="call_not_available" msgid="7850148370757361155">"No se puede hacer llamadas porque se ha inhabilitado la aplicación Teléfono."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Buscar contactos"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> llamadas perdidas nuevas"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Aún no tienes contactos en la función de marcación rápida"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Añadir un favorito"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Aún no tienes contactos"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Añadir un contacto"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Tocar la imagen para ver todos los números o mantenerla pulsada para cambiar el orden"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Eliminar"</string>
-    <string name="select_all" msgid="408601760696146245">"Seleccionar todo"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videollamada"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar un mensaje"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detalles de la llamada"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ya está bloqueado."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Cuentas de llamadas"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Activar"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Establecer permisos"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Para habilitar la marcación rápida, activa el permiso la aplicación Contactos."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Para ver el registro de llamadas, activa el permiso de la aplicación Teléfono."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver tus contactos, activa el permiso de la aplicación Contactos."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Para acceder al buzón de voz, activa el permiso de la aplicación Teléfono."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Para poder buscar tus contactos, activa los permisos de contactos."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Para hacer una llamada, activa el permiso de la aplicación Teléfono."</string>
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 e32b104..d4e4faa 100644
--- a/java/com/android/dialer/app/res/values-et/strings.xml
+++ b/java/com/android/dialer/app/res/values-et/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Tagasi käimasolevale kõnele"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Lisa kõne"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Sissetulevad kõned"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Sisenemine hulgitoimingute režiimi"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Lahkumine hulgitoimingute režiimist"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> on valitud"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> on valimata"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Esita kõnepostisõnum"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Kuva kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Helista kasutajale <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Kõnepost"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Mitme toimigu režiimi tühistamine"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"kõnepostisõnum"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"kõnepostisõnumid"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Jah"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ei"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Kas kustutada valitud kõnepostisõnumid <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> on valitud"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kell <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Laadimine SIM-kaardilt ..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM-kaardi kontaktid"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Kontaktide rakendus pole saadaval"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Häälotsing ei ole saadaval"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Helistada ei saa, sest telefonirakendus on keelatud."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Otsige kontakte"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> uus/uut vastamata kõne(t)"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Te pole veel kedagi kiirvalimisse lisanud"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Lisa lemmik"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Teil pole veel kontakte"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Lisa kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Puudutage kujutist kõigi numbrite nägemiseks või puudutage pikalt järjestuse muutmiseks"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Eemalda"</string>
-    <string name="select_all" msgid="408601760696146245">"Vali kõik"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videokõne"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Saada sõnum"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Kõne üksikasjad"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Blokeeritud numbrid"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> on juba blokeeritud."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Helistamiskontod"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Lülita sisse"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Määra load"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Kiirvalimise lubamiseks lülitage sisse kontaktiluba."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Kõnelogi vaatamiseks lülitage sisse telefoniluba."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Kontaktide vaatamiseks lülitage sisse kontaktiluba."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Kõnepostile juurdepääsemiseks lülitage sisse telefoniluba."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Kontaktide otsimiseks lülitage sisse kontaktiload."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Helistamiseks lülitage sisse telefoniluba."</string>
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 57ef67d..95f4621 100644
--- a/java/com/android/dialer/app/res/values-eu/strings.xml
+++ b/java/com/android/dialer/app/res/values-eu/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Itzuli abian den deira"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Gehitu deia"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Sarrerako deiak"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Ekintzak multzoka gauzatzeko modua aktibatzen"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Ekintzak multzoka gauzatzeko modua desaktibatu da"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> hautatu da"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> desautatu da"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Erreproduzitu erantzungailuko ahots-mezuak"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Ikusi <xliff:g id="NAME">%1$s</xliff:g> kontaktua"</string>
     <string name="description_call" msgid="1532402285334775372">"Deitu <xliff:g id="NAME">%1$s</xliff:g> erabiltzaileari"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Erantzungailua"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Utzi bertan behera ekintzak multzoka gauzatzeko modua"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ahots-mezua"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ahots-mezuak"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Bai"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ez"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Hautatutako <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ezabatu?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> hautatu dira"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> (<xliff:g id="TIME">%2$s</xliff:g>)"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM txarteletik kargatzen…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM txarteleko kontaktuak"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Ez dago kontaktuen aplikaziorik erabilgarri"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Ahozko bilaketa ez dago erabilgarri"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Ezin da telefono-deirik egin Telefonoa aplikazioa desgaitu egin delako."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Bilatu kontaktuetan"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> dei galdu berri"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Ez duzu inor markatze bizkorrean oraindik"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Gehitu gogokoak"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Ez duzu kontakturik oraindik"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Gehitu kontaktua"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Ukitu irudia zenbaki guztiak ikusteko, edo eduki ezazu sakatuta berrantolatzeko"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Kendu"</string>
-    <string name="select_all" msgid="408601760696146245">"Hautatu guztiak"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Bideo-deia"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Bidali mezua"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Deiaren xehetasunak"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Blokeatutako zenbakiak"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> blokeatuta dago dagoeneko."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Deiak egiteko kontuak"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktibatu"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ezarri baimenak"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Markatze bizkorra gaitzeko, aktibatu Kontaktuak erabiltzeko baimena."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Deien erregistroa ikusteko, aktibatu Telefonoa erabiltzeko baimena."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Kontaktuak ikusteko, aktibatu Kontaktuak erabiltzeko baimena."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Erantzungailuan sartzeko, aktibatu Telefonoa erabiltzeko baimena."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Kontaktuak bilatzeko, aktibatu kontaktuak atzitzeko baimenak."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Deiak egiteko, aktibatu Telefonoa erabiltzeko baimena."</string>
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 eadb0dc..9c8c01b 100644
--- a/java/com/android/dialer/app/res/values-fa/strings.xml
+++ b/java/com/android/dialer/app/res/values-fa/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"برگشت به تماس درحال انجام"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"افزودن تماس"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"تماس‌های ورودی"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"درحال ورود به حالت اقدام انبوه"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"خروج از حالت اقدام انبوه"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> انتخاب شد"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> از حالت انتخاب خارج شد"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"پخش پست صوتی"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"مشاهده مخاطب <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"تماس با <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"پست صوتی"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ثانیه"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> دقیقه <xliff:g id="SECONDS">%s</xliff:g> ثانیه"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"لغو حالت اقدام‌ دسته‌ای"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"پست صوتی"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"پست‌های صوتی"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"بله"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"نه"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> انتخاب‌شده حذف شود؟"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> مورد انتخاب شد"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ساعت <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"در حال بارگیری سیم کارت..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"مخاطبین سیم کارت"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"هیچ برنامه مخاطبی در دسترس نیست"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"جستجوی گفتاری در دسترس نیست"</string>
     <string name="call_not_available" msgid="7850148370757361155">"برقراری تماس تلفنی ممکن نیست، زیرا برنامه تلفن غیرفعال شده است."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"جستجوی مخاطبین"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> تماس‌ بی‌پاسخ جدید"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"هنوز کسی در فهرست شماره‌گیری سریع شما نیست"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"افزودن مورد دلخواه"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"هنوز هیچ مخاطبی ندارید"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"افزودن مخاطب"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"برای مشاهده همه شماره‌ها، تصویر را لمس کنید، یا برای ترتیب مجدد، لمس کنید و نگه‌دارید"</string>
     <string name="remove_contact" msgid="2353580570488923668">"حذف"</string>
-    <string name="select_all" msgid="408601760696146245">"انتخاب همه"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"تماس ویدئویی"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"ارسال پیام"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"جزئیات تماس"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"شماره‌های مسدود‌شده"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> درحال‌حاضر مسدود شده است."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"حساب‌های تماس"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"روشن کردن"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"تنظیم مجوزها"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"برای فعال کردن شماره‌گیری سریع، مجوز «مخاطبین» را روشن کنید."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"برای دیدن گزارش تماستان، مجوز «تلفن» را روشن کنید."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"برای دیدن مخاطبینتان، مجوز «مخاطبین» را روشن کنید."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"برای دسترسی به پست صوتی‌تان، مجوز «تلفن» را روشن کنید."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"برای جستجوی مخاطبینتان، مجوزهای مخاطبین را روشن کنید."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"برای برقراری تماس، مجوز «تلفن» را روشن کنید."</string>
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 9510959..c5a103d 100644
--- a/java/com/android/dialer/app/res/values-fi/strings.xml
+++ b/java/com/android/dialer/app/res/values-fi/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Palaa käynnissä olevaan puheluun"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Lisää puhelu"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Saapuvat puhelut"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Siirrytään joukkotoimintotilaan."</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Poistuttiin joukkotoimintotilasta."</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> valittiin."</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ei ole enää valittuna."</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Toista vastaajaviesti"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Näytä yhteystieto <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Soita: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Vastaaja"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Peruuta joukkotoimintotila."</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"vastaajaviesti"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"vastaajaviestit"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Kyllä"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ei"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Poistetaanko <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> valittu"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> klo <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>.<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Ladataan SIM-kortilta…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM-kortin yhteystiedot"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Ei käytettävissä olevaa yhteystietosovellusta"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Puhehaku ei ole käytettävissä"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Puhelua ei voi soittaa, koska Puhelin-sovellus on poistettu käytöstä."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Hae yhteystiedoista"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> uutta vastaamatonta puhelua"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Pikavalinnassa ei ole vielä yhtään yhteystietoa."</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Lisää suosikki"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Sinulla ei ole yhteystietoja."</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Lisää yhteystieto"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Katso kaikki numerot koskettamalla kuvaa tai järjestele tietoja koskettamalla kuvaa pitkään."</string>
     <string name="remove_contact" msgid="2353580570488923668">"Poista"</string>
-    <string name="select_all" msgid="408601760696146245">"Valitse kaikki"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videopuhelu"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Lähetä viesti"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Puhelun tiedot"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Estetyt numerot"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> on jo estetty."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Puhelutilit"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Ota käyttöön"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Määritä käyttöoikeudet"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Jos haluat käyttää pikavalintaa, ota Yhteystiedot-käyttöoikeus käyttöön."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Jos haluat katsella puhelulokiasi, ota Puhelin-käyttöoikeus käyttöön."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Jos haluat katsella yhteystietojasi, ota Yhteystiedot-käyttöoikeus käyttöön."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Jos haluat käyttää puhelinvastaajaa, ota Puhelin-käyttöoikeus käyttöön."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Jos haluat hakea kontaktejasi, ota käyttöön kontaktien käyttöoikeudet."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Jos haluat soittaa puheluja, ota Puhelin-käyttöoikeus käyttöön."</string>
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 6aa285c..d557d74 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
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Reprendre l\'appel en cours"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Autre appel"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Appels entrants"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrée du mode d\'action groupée en cours…"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Mode d\'action groupée quitté"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Sélection : <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Désélection : <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Écouter le message vocal"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Afficher le contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Appeler <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Messagerie vocale"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min et <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Annuler le mode d\'action par lots"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"message vocal"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"messages vocaux"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Oui"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Non"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Supprimer la sélection (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> sélection(s)"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> à <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Chargement depuis la carte SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contacts de carte SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Aucune application de gestion des contacts n\'est disponible"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Recherche vocale non disponible"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Impossible d\'effectuer un appel téléphonique, car l\'application Téléphone a été désactivée."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Rechercher des contacts"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nouveaux appels manqués"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Aucun contact ne figure dans vos numéros de composition abrégée"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Ajouter un favori"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Vous n\'avez pas encore de contacts"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Ajouter un contact"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Touchez l\'image pour afficher tous les numéros, ou maintenez le doigt dessus pour les réorganiser"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Supprimer"</string>
-    <string name="select_all" msgid="408601760696146245">"Tout sélectionner"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Appel vidéo"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Envoyer un message"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Détails de l\'appel"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Numéros bloqués"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Le numéro <xliff:g id="NUMBER">%1$s</xliff:g> est déjà bloqué."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Comptes d\'appel"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Activer"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Définir les autorisations"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Pour activer la composition abrégée, activez l\'autorisation Contacts."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Pour consulter votre journal d\'appels, activez l\'autorisation Téléphone."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Pour consulter vos contacts, activez l\'autorisation Contacts."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Pour accéder à votre messagerie vocale, activez l\'autorisation Téléphone."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Pour rechercher vos contacts et les lieux à proximité, activez les autorisations Contacts."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Pour faire un appel, activez l\'autorisation Téléphone."</string>
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 f539d2e..d8a5939 100644
--- a/java/com/android/dialer/app/res/values-fr/strings.xml
+++ b/java/com/android/dialer/app/res/values-fr/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Reprendre l\'appel en cours"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Autre appel"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Appels entrants"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Activation du mode d\'action groupée"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Désactivation du mode d\'action groupée"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> sélectionné"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> désélectionné"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Écouter le message vocal"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Afficher le contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Appeler <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Messagerie vocale"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> secondes"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min et <xliff:g id="SECONDS">%s</xliff:g> s"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Annuler le mode d\'actions groupées"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"message vocal"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"messages vocaux"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Oui"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Non"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Supprimer les messages vocaux sélectionnés (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>) ?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> sélectionnés"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> à <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Chargement depuis la carte SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contacts de carte SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Aucune application de gestion des contacts n\'est disponible."</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Recherche vocale non disponible"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Impossible d\'effectuer un appel téléphonique, car l\'application Téléphone a été désactivée."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Rech. des contacts"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Nouveaux appels manqués : <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Aucun contact pour la numérotation abrégée"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Ajouter un favori"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Vous n\'avez pas encore de contacts."</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Ajouter un contact"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Appuyer sur l\'image pour afficher tous les numéros, ou appuyer dessus de manière prolongée pour réorganiser ces derniers"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Supprimer"</string>
-    <string name="select_all" msgid="408601760696146245">"Tout sélectionner"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Appel vidéo"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Envoyer un message"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Informations sur l\'appel"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Numéros bloqués"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Le numéro \"<xliff:g id="NUMBER">%1$s</xliff:g>\" est déjà bloqué."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Comptes téléphoniques"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Activer"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Définir les autorisations"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Pour activer la numérotation abrégée, activez l\'autorisation Contacts."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Pour consulter votre journal d\'appels, activez l\'autorisation Téléphone."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Pour consulter vos contacts, activez l\'autorisation Contacts."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Pour accéder à votre messagerie vocale, activez l\'autorisation Téléphone."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Pour rechercher vos contacts, activez l\'autorisation Contacts."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Pour passer un appel, activez l\'autorisation Téléphone."</string>
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 ca31c5e..33b55a7 100644
--- a/java/com/android/dialer/app/res/values-gl/strings.xml
+++ b/java/com/android/dialer/app/res/values-gl/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Volver á chamada en curso"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Engadir chamada"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Chamadas entrantes"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando no modo de acción masiva"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saíu do modo de acción masiva"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Seleccionouse: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Anulouse a selección de: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Reproducir correo de voz"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Ver contacto <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Chamar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Correo de voz"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancela o modo de accións en lote"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"correo de voz"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"correos de voz"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Si"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Non"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Queres eliminar a selección (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Cantidade seleccionada: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ás <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Cargando da tarxeta SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contactos da tarxeta SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Non hai aplicacións de contactos dispoñibles"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Busca por voz non dispoñible"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Non se pode facer unha chamada telefónica porque se desactivou a aplicación de teléfono."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Buscar contactos"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> chamadas perdidas novas"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Aínda non tes ningún contacto na marcación directa"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Engade un favorito para a marcación directa"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Aínda non tes contactos"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Engade un contacto"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Toca a imaxe para ver todos os números ou mantena premida para reordenalos"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Eliminar"</string>
-    <string name="select_all" msgid="408601760696146245">"Seleccionar todos"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videochamada"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar unha mensaxe"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detalles da chamada"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"O <xliff:g id="NUMBER">%1$s</xliff:g> xa está bloqueado."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Contas de chamadas"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Activar"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Establecer permisos"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Para activar a marcación rápida, activa o permiso de Contactos."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Para ver o teu rexistro de chamadas, activa o permiso de Teléfono."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver os teus contactos, activa o permiso de Contactos."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Para acceder ao correo de voz, activa o permiso de Teléfono."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Para buscar os teus contactos, activa os permisos de Contactos."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Para facer unha chamada, activa o permiso de Teléfono."</string>
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 fbe4d0a..1df1826 100644
--- a/java/com/android/dialer/app/res/values-gu/strings.xml
+++ b/java/com/android/dialer/app/res/values-gu/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"કૉલ પર પાછા આવવું પ્રગતિ પર છે"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"કૉલ ઉમેરો"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"ઇનકમિંગ કૉલ્સ"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"બલ્ક ક્રિયા મોડમાં દાખલ થઈ રહ્યાં છે"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"બલ્ક ક્રિયા મોડ છોડી દીધો"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> પસંદ કર્યો"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> પસંદગીમાંથી દૂર કર્યો"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"વૉઇસમેઇલ ચલાવો"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> સંપર્ક જુઓ"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ને કૉલ કરો"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"વૉઇસમેઇલ"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> સેકંડ"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> મિ <xliff:g id="SECONDS">%s</xliff:g> સે"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"બૅચ ક્રિયા મોડ રદ કરો"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"વૉઇસમેઇલ"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"વૉઇસમેઇલ"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"હા"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"નહીં"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"પસંદ કરેલ <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ને કાઢી નાખીએ?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> પસંદ કરી"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> નાં રોજ <xliff:g id="TIME">%2$s</xliff:g> વાગ્યે"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM કાર્ડમાંથી લોડ કરી રહ્યું છે…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM કાર્ડ સંપર્કો"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"કોઈ સંપર્કો ઍપ્લિકેશન ઉપલબ્ધ નથી"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"વૉઇસ શોધ ઉપલબ્ધ નથી"</string>
     <string name="call_not_available" msgid="7850148370757361155">"ફોન કૉલ કરી શકાતો નથી કારણ કે ફોન ઍપ્લિકેશન અક્ષમ કરવામાં આવી છે."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"સંપર્કો શોધો"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> નવા છૂટેલા કૉલ્સ"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"તમારા ઝડપી ડાયલ પર હજી સુધી કોઇ નથી"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"એક મનપસંદ ઉમેરો"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"તમે હજી સુધી કોઇપણ સંપર્કો ધરાવતાં નથી"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"સંપર્ક ઉમેરો"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"બધા નંબર્સ જોવા માટે છબી ટચ કરો અથવા પુનઃક્રમાંકિત કરવા માટે ટચ કરો અને પકડી રાખો"</string>
     <string name="remove_contact" msgid="2353580570488923668">"દૂર કરો"</string>
-    <string name="select_all" msgid="408601760696146245">"તમામ પસંદ કરો"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"વિડિઓ કૉલ"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"એક સંદેશ મોકલો"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"કૉલની વિગતો"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"અવરોધિત નંબરો"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ને પહેલેથી અવરોધિત કરવામાં આવ્યો છે."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"કૉલિંગ એકાઉન્ટ્સ"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"ચાલુ કરો"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"પરવાનગીઓ સેટ કરો"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"ઝડપી ડાયલ સક્ષમ કરવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"તમારો કૉલ લૉગ જોવા માટે, ફોન પરવાનગી ચાલુ કરો."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"તમારા સંપર્કો જોવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"તમારી વૉઇસમેઇલને ઍક્સેસ કરવા માટે, ફોન પરવાનગી ચાલુ કરો."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"તમારા સંપર્કો શોધવા માટે, સંપર્કોની પરવાનગીઓ ચાલુ કરો."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"કૉલ કરવા માટે, ફોન પરવાનગી ચાલુ કરો."</string>
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 c998e44..84d2d97 100644
--- a/java/com/android/dialer/app/res/values-hi/strings.xml
+++ b/java/com/android/dialer/app/res/values-hi/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"कॉल पर लौटना प्रगति पर है"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"कॉल जोड़ें"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"इनकमिंग कॉल"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"बल्क कार्रवाई मोड में प्रवेश कर रहे हैं"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"बल्क कार्रवाई मोड छोड़ा"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> को चुना गया"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> को नहीं चुना गया"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"ध्‍वनिमेल चलाएं"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> संपर्क देखें"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> को कॉल करें"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"वॉयस मेल"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> सेकंड"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> मि. <xliff:g id="SECONDS">%s</xliff:g> से."</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"बैच कार्रवाई मोड रद्द करें"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"वॉयसमेल"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"वॉयसमेल"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"हां"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"नहीं"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"क्या चुने गए <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> हटाना चाहते हैं?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> चयनित"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> को <xliff:g id="TIME">%2$s</xliff:g> बजे"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"सिम कार्ड से लोड हो रहा है…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"सिम कार्ड के संपर्क"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"कोई भी संपर्क ऐप उपलब्‍ध नहीं है"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"बोलकर खोजना उपलब्‍ध नहीं है"</string>
     <string name="call_not_available" msgid="7850148370757361155">"फ़ोन कॉल नहीं किया जा सकता क्योंकि फ़ोन ऐप्लिकेशन अक्षम कर दिया गया है."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"संपर्क खोजें"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g>  छूटे हुए नए कॉल"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"आपके स्‍पीड डायल पर अभी तक कोई भी नहीं है"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"कोई पसंदीदा जोड़ें"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"आपके पास अभी कोई भी संपर्क नहीं है"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"कोई संपर्क जोड़ें"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"सभी नंबर देखने के लिए चित्र को स्‍पर्श करें या पुन: क्रमित करने के लिए स्‍पर्श करके रखें"</string>
     <string name="remove_contact" msgid="2353580570488923668">"निकालें"</string>
-    <string name="select_all" msgid="408601760696146245">"सभी चुनें"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"वीडियो कॉल"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"संदेश भेजें"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"कॉल विवरण"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"अवरोधित नंबर"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> पहले से अवरोधित है."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"कॉलिंग खाते"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"चालू करें"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"अनुमतियां सेट करें"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"स्पीड डायल सक्षम करने के लिए, संपर्क अनुमति चालू करें."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"अपना कॉल लॉग देखने के लिए, फ़ोन अनुमति चालू करें."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"अपने संपर्क देखने के लिए, संपर्क अनुमति चालू करें."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"अपना वॉइसमेल ऐक्सेस करने के लिए, फ़ोन अनुमति चालू करें."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"अपने संपर्कों की खोज करने के लिए, संपर्क अनुमतियों को चालू करें."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"कॉल करने के लिए, फ़ोन अनुमति चालू करें."</string>
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 5261cfb..cd35353 100644
--- a/java/com/android/dialer/app/res/values-hr/strings.xml
+++ b/java/com/android/dialer/app/res/values-hr/strings.xml
@@ -86,10 +86,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Natrag na poziv u tijeku"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj poziv"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Dolazni pozivi"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Ulazak u način skupne radnje"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Napuštanje načina skupne radnje"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Odabrano: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Poništen odabir: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Reprodukcija govorne pošte"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Prikaz kontakta <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Nazovi <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -104,13 +100,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Govorna pošta"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Otkaži način skupnih radnji"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"poruka govorne pošte"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"poruke govorne pošte"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Želite li izbrisati odabranu poruku/e govorne pošte <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Odabrano: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> u <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>.<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -123,6 +117,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Učitavanje sa SIM kartice..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakti SIM kartice"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Nije dostupna nijedna aplikacija za kontakte"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Glasovno pretraživanje nije dostupno"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Telefoniranje nije moguće jer je aplikacija Telefon onemogućena."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pretraži kontakte"</string>
@@ -151,9 +146,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Broj novih propuštenih poziva: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Još nemate nikog na brzom biranju"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodaj omiljeni kontakt"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Još nemate nijedan kontakt"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodajte kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Dodirnite sliku da biste vidjeli sve brojeve ili dodirnite i zadržite da biste promijenili redoslijed"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Ukloni"</string>
-    <string name="select_all" msgid="408601760696146245">"Odaberi sve"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videopoziv"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Pošalji poruku"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Pojedinosti poziva"</string>
@@ -219,9 +215,11 @@
     <string name="block_list" msgid="4701585783411870782">"Blokirani brojevi"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Broj <xliff:g id="NUMBER">%1$s</xliff:g> već je blokiran."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Pozivanje računa"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Uključi"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Postavi dopuštenja"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Da biste omogućili brzo biranje, uključite dopuštenje za kontakte."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Da biste vidjeli zapisnik poziva, uključite dopuštenje za telefon."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Da biste vidjeli svoje kontakte, uključite dopuštenje za kontakte."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Da biste pristupili govornoj pošti, uključite dopuštenje za telefon."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Da biste pretraživali kontakte, uključite dopuštenja za kontakte."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Da biste nazvali nekog, uključite dopuštenje za telefon."</string>
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 452f0da..2e64d74 100644
--- a/java/com/android/dialer/app/res/values-hu/strings.xml
+++ b/java/com/android/dialer/app/res/values-hu/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Vissza a folyamatban lévő híváshoz"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Hívás hozzáadása"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Bejövő hívások"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Belépés tömeges műveleti módba"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Kilépett a tömeges műveleti módból"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Kijelölés: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Kijelölés megszüntetve: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Hangposta lejátszása"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> névjegyének megtekintése"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> hívása"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Hangposta"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> másodperc"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> perc <xliff:g id="SECONDS">%s</xliff:g> másodperc"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Köteges művelet mód leállítva"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"hangpostaüzenetet"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"hangpostaüzeneteket"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Igen"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nem"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Törli a kiválasztott <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> kiválasztva"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Betöltés a SIM kártyáról..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Névjegyek a SIM kártyán"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Nincs elérhető névjegyek alkalmazás"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"A hangalapú keresés nem érhető el"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Nem lehet telefonhívást kezdeményezni, mert a Telefon alkalmazást letiltották."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Keresés a névjegyek között"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> új nem fogadott hívás"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Még semelyik telefonszám sincs gyorshívón"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Kedvenc hozzáadása"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Még nem rendelkezik egyetlen névjeggyel sem"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Névjegy hozzáadása"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Koppintson a képre az összes szám megjelenítéséhez, vagy tartsa nyomva az átrendezéshez"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Eltávolítás"</string>
-    <string name="select_all" msgid="408601760696146245">"Az összes kijelölése"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videohívás"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Üzenet küldése"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Hívás adatai"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Letiltott számok"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"A következő szám már le van tiltva: <xliff:g id="NUMBER">%1$s</xliff:g>."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Telefonos fiókok"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Engedélyezés"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Engedélyek beállítása"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Gyorshívás engedélyezéséhez kapcsolja be a Névjegyek engedélyt."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"A hívásnapló megtekintéséhez kapcsolja be a Telefon engedélyt."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"A névjegyek megtekintéséhez kapcsolja be a Névjegyek engedélyt."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"A hangposta eléréséhez kapcsolja be a Telefon engedélyt."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"A névjegyek kereséséhez adja meg a Névjegyek engedélyeket."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Hívásindításhoz kapcsolja be a Telefon engedélyt."</string>
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 97a84f2..6f3931c 100644
--- a/java/com/android/dialer/app/res/values-hy/strings.xml
+++ b/java/com/android/dialer/app/res/values-hy/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Վերադառնալ ընթացիկ զանգին"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Ավելացնել զանգ"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Մուտքային զանգեր"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Մուտք զանգվածային գործողությունների ռեժին"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Դուք դուրս եկաք զանգվածային գործողությունների ռեժիմից"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Ընտրվեց՝ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Ապընտրվեց՝ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Նվագարկել ձայնային փոստը"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Դիտել <xliff:g id="NAME">%1$s</xliff:g> կոնտակտը"</string>
     <string name="description_call" msgid="1532402285334775372">"Զանգել <xliff:g id="NAME">%1$s</xliff:g>-ին"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Ձայնային փոստ"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> վրկ"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> րոպե <xliff:g id="SECONDS">%s</xliff:g> վայրկյան"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Չեղարկել փաթեթային գործողությունների ռեժիմը"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ձայնային հաղորդագրություն"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ձայնային հաղորդագրություններ"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Այո"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ոչ"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Ջնջե՞լ նշված <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ը"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Ընտրվել է՝ <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>-ին, ժամը <xliff:g id="TIME">%2$s</xliff:g>-ին"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM քարտը բեռնվում է..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM քարտի կոնտակտները"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Կոնտակտների հավելված չկա"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Ձայնային որոնումը հասանելի չէ"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Հնարավոր չէ զանգահարել, քանի որ Հեռախոս հավելվածն անջատված է:"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Կոնտակտների որոնում"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> նոր բաց թողնված զանգ"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Արագ համարահավաքման ցանկը դատարկ է"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Ավելացնել կոնտակտ"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Դեռ կոնտակտներ չունեք"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Ավելացնել կոնտակտ"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Բոլոր համարները տեսնելու համար հպեք պատկերին: Վերադասավորելու համար հպեք և պահեք:"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Հեռացնել"</string>
-    <string name="select_all" msgid="408601760696146245">"Ընտրել բոլորը"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Տեսազանգ"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Ուղարկել հաղորդագրություն"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Զանգի մանրամասները"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Արգելափակված համարներ"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> համարն արդեն արգելափակված է:"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Հաշիվներ զանգերի համար"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Միացնել"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Թույլտվությունների սահմանում"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Արագ համարահավաքը թույլատրելու համար միացրեք Կոնտակտների թույլտվությունը:"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Ձեր զանգերի մատյանը տեսնելու համար միացրեք Հեռախոսի թույլտվությունը:"</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Ձեր կոնտակտները տեսնելու համար միացրեք Կոնտակտների թույլտվությունը:"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Ձայնային փոստն օգտագործելու համար միացրեք Հեռախոսի թույլտվությունը:"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Կոնտակտները որոնելու համար միացրեք Կոնտակտների թույլտվությունները:"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Զանգ կատարելու համար միացրեք Հեռախոսի թույլտվությունը:"</string>
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 f309f92..c0de9b3 100644
--- a/java/com/android/dialer/app/res/values-in/strings.xml
+++ b/java/com/android/dialer/app/res/values-in/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Kembali ke panggilan sedang berlangsung"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Tambahkan panggilan"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Panggilan masuk"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Masuk ke mode tindakan massal"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Keluar dari mode tindakan massal"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> dipilih"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> tidak dipilih"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Putar pesan suara"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Lihat kontak <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Telepon <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Kotak Pesan"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> dtk"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> mnt <xliff:g id="SECONDS">%s</xliff:g> dtk"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Membatalkan mode tindakan kelompok"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"pesan suara"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"pesan suara"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ya"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Tidak"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Hapus <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> yang dipilih?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> dipilih"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> pukul <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>.<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Memuat dari kartu SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontak pada kartu SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Aplikasi kontak tidak tersedia"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Penelusuran suara tidak tersedia"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Tidak dapat melakukan panggilan telepon karena aplikasi Telepon telah dinonaktifkan."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Telusuri kontak"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> panggilan tidak terjawab baru"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Daftar panggilan cepat masih kosong"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Tambahkan favorit"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Anda belum memiliki kontak"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Tambahkan kontak"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Sentuh foto untuk melihat semua nomor atau sentuh &amp; tahan untuk menyusun ulang"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Hapus"</string>
-    <string name="select_all" msgid="408601760696146245">"Pilih semua"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Panggilan video"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Kirim pesan"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detail panggilan"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Nomor yang diblokir"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> sudah diblokir."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Akun panggilan"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktifkan"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Setel izin"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Untuk mengaktifkan panggilan cepat, aktifkan izin Kontak."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Untuk melihat log panggilan, aktifkan izin Telepon."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Untuk melihat kontak, aktifkan izin Kontak."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Untuk mengakses pesan suara, aktifkan izin Telepon."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Untuk menelusuri kontak, aktifkan izin Kontak."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Untuk melakukan panggilan, aktifkan izin Telepon."</string>
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 b291eae..fdd6356 100644
--- a/java/com/android/dialer/app/res/values-is/strings.xml
+++ b/java/com/android/dialer/app/res/values-is/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Fara aftur í símtal í gangi"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Bæta við símtali"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Móttekin símtöl"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Opnar fjöldaaðgerðastillingu"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Fjöldaaðgerðastillingu lokað"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Valdi <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Fjarlægði val á <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Spila talhólfsskilaboð"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Skoða tengiliðinn <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Hringja í <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Talhólf"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> mín. og <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Hætta við runuaðgerðastillingu"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"talhólfsskilaboð"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"talhólfsskilaboð"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Já"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nei"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Eyða völdum <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> valin"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Hleður af SIM-kortinu…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Tengiliðir á SIM-korti"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Ekkert tengiliðaforrit í boði"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Raddleit er ekki í boði"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Ekki er hægt að hringja vegna þess að forritið Sími hefur verið gert óvirkt."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Leita í tengiliðum"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ný ósvöruð símtöl"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Þú ert ekki með neinn í hraðvali enn sem komið er"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Bæta uppáhaldi við"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Þú ert ekki með neina tengiliði enn sem komið er"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Bæta tengilið við"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Snertu myndina til að sjá öll númer eða haltu henni inni til að endurraða"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Fjarlægja"</string>
-    <string name="select_all" msgid="408601760696146245">"Velja allt"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Myndsímtal"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Senda skilaboð"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Símtalsupplýsingar"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Númer á bannlista"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> er nú þegar á bannlista."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Símtalareikningar"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Kveikja"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Stilla heimildir"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Kveiktu á tengiliðaheimildinni til að gera hraðval virkt."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Kveiktu á heimild símaforritsins til að sjá símtalaskrána þína."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Kveiktu á tengiliðaheimildinni til að sjá tengiliðina þína."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Kveiktu á heimild símaforritsins til að fá aðgang að talhólfinu þínu."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Kveiktu á heimildunum fyrir tengiliði til að leita að tengiliðum."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Kveiktu á heimild símaforritsins til að hringja símtal."</string>
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 711ab26..9bd8cd3 100644
--- a/java/com/android/dialer/app/res/values-it/strings.xml
+++ b/java/com/android/dialer/app/res/values-it/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Torna alla chiamata in corso"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Aggiungi chiamata"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Chiamate in arrivo"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Attivazione della modalità di azione collettiva"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Disttivazione della modalità di azione collettiva"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> selezionato"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> deselezionato"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Riproduci messaggio vocale"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Visualizza <xliff:g id="NAME">%1$s</xliff:g> contatto"</string>
     <string name="description_call" msgid="1532402285334775372">"Chiama <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Segreteria"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> secondi"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Annulla modalità di azione collettiva"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"messaggio vocale"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"messaggi vocali"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sì"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Eliminare i <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> selezionati?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selezionate"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> alle ore <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Caricamento da SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contatti SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Nessuna app di contatti disponibile"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Ricerca vocale non disponibile"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Impossibile effettuare una telefonata perché l\'applicazione Telefono è stata disattivata."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Cerca contatti"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nuove chiamate perse"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Nessun preferito disponibile nella Composizione rapida"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Aggiungi un preferito"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Nessun contatto disponibile"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Aggiungi un contatto"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Tocca l\'immagine per visualizzare tutti i numeri oppure tieni premuto per cambiare l\'ordine"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Rimuovi"</string>
-    <string name="select_all" msgid="408601760696146245">"Seleziona tutto"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videochiamata"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Invia un messaggio"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Dettagli chiamata"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Numeri bloccati"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> è già bloccato."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Account di chiamata"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Attiva"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Imposta autorizzazioni"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Per attivare la composizione rapida, attiva l\'autorizzazione Contatti."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Per accedere al registro chiamate, attiva l\'autorizzazione sul telefono."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Per accedere ai tuoi contatti, attiva l\'autorizzazione Contatti."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Per accedere alla segreteria, attiva l\'autorizzazione sul telefono."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Per cercare nei tuoi contatti, attiva le autorizzazioni Contatti."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Per fare una chiamata, attiva l\'autorizzazione sul telefono."</string>
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 bd2a05a..bb115e2 100644
--- a/java/com/android/dialer/app/res/values-iw/strings.xml
+++ b/java/com/android/dialer/app/res/values-iw/strings.xml
@@ -87,10 +87,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"חזור לשיחה פעילה"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"הוסף שיחה"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"שיחות נכנסות"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"עברת למצב של ביצוע פעולות בכמות גדולה"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"עזבת את המצב של ביצוע פעולות בכמות גדולה"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"בחרת את <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"ביטלת את הבחירה של <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"הפעל דואר קולי"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"הצג את איש הקשר <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"התקשר אל <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -105,13 +101,11 @@
     <string name="voicemail" msgid="8899540969000957954">"דואר קולי"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> שניות"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> דק\' <xliff:g id="SECONDS">%s</xliff:g> שנ\'"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"ביטול המצב של ביצוע פעולות בכמות גדולה"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ההודעה הקולית"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ההודעות הקוליות"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"כן"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"לא"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"האם למחוק את <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> שבחרת?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> נבחרו"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ב-<xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -124,6 +118,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"‏טוען מכרטיס SIM…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"‏אנשי קשר בכרטיס SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"אין אפליקציה זמינה עבור אנשי קשר"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"חיפוש קולי אינו זמין"</string>
     <string name="call_not_available" msgid="7850148370757361155">"לא ניתן לבצע שיחת טלפון מפני שאפליקציית הטלפון הושבתה."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"חפש אנשי קשר"</string>
@@ -152,9 +147,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> שיחות חדשות שלא נענו"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"עדיין לא הוגדר חיוג מהיר לאף איש קשר"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"הוסף פריט מועדף"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"עדיין אין לך אנשי קשר"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"הוסף איש קשר"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"גע בתמונה כדי להציג את כל המספרים או גע והחזק כדי לשנות את הסדר"</string>
     <string name="remove_contact" msgid="2353580570488923668">"הסר"</string>
-    <string name="select_all" msgid="408601760696146245">"בחירת הכל"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"שיחת וידאו"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"שלח הודעה"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"פרטי שיחה"</string>
@@ -221,9 +217,11 @@
     <string name="block_list" msgid="4701585783411870782">"מספרים חסומים"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> כבר חסום."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"חשבונות לביצוע שיחות"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"הפעל"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"הגדר הרשאות"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"כדי להפעיל חיוג מהיר, הפעל את ההרשאה \'אנשי קשר\'."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"כדי לראות את יומן השיחות, הפעל את ההרשאה \'טלפון\'."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"כדי להציג את אנשי הקשר, הפעל את ההרשאה \'אנשי קשר\'."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"כדי לגשת לדואר הקולי, הפעל את ההרשאה \'טלפון\'."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"כדי לחפש באנשי הקשר, הפעל את ההרשאה \'אנשי קשר\'."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"כדי להתקשר, הפעל את ההרשאה \'טלפון\'."</string>
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 9ba40fb..63b15cb 100644
--- a/java/com/android/dialer/app/res/values-ja/strings.xml
+++ b/java/com/android/dialer/app/res/values-ja/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"通話に戻る"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"別の通話を追加"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"着信"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"一括操作モードを開始します"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"一括操作モードを終了しました"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> を選択しました"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> を選択解除しました"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"ボイスメールを再生"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g>の連絡先を表示"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g>に発信"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"ボイスメール"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g>秒"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g>分<xliff:g id="SECONDS">%s</xliff:g>秒"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"一括操作モードをキャンセルします"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ボイスメール"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ボイスメール"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"はい"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"いいえ"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"選択した<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>を削除しますか？"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> 件選択済み"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>、<xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g> 分 <xliff:g id="SECONDS">%2$02d</xliff:g> 秒"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIMカードから読み取り中..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIMカードの連絡先"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"連絡先アプリがありません"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"音声検索を利用できません"</string>
     <string name="call_not_available" msgid="7850148370757361155">"電話アプリが無効になっているため発信できません。"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"連絡先を検索"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g>件の不在着信"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"クイックアクセスに登録済みの連絡先はまだありません"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"お気に入りを追加"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"連絡先はまだありません"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"連絡先を追加"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"画像をタップするとすべての番号が表示され、押し続けると番号を並べ替えることができます"</string>
     <string name="remove_contact" msgid="2353580570488923668">"削除"</string>
-    <string name="select_all" msgid="408601760696146245">"すべて選択"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"ビデオハングアウト"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"メッセージを送信"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"通話の詳細"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"ブロックした番号"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g>は既にブロックしています。"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"通話アカウント"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"ONにする"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"権限を設定"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"クイックアクセスを有効にするには、連絡先権限をONにしてください。"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"通話履歴を表示するには、電話権限をONにしてください。"</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"連絡先を表示するには、連絡先権限をONにしてください。"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"ボイスメールにアクセスするには、電話権限をONにしてください。"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"連絡先を検索するには、連絡先権限をONにしてください。"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"電話をかけるには、電話権限をONにしてください。"</string>
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 dbb48f4..ae89505 100644
--- a/java/com/android/dialer/app/res/values-ka/strings.xml
+++ b/java/com/android/dialer/app/res/values-ka/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"მიმდინარე ზარზე დაბრუნება"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ზარის დამატება"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"შემომავალი ზარები"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"მიმდინარეობს ერთიანი ქმედების რეჟიმში შესვლა"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ერთიანი ქმედების რეჟიმიდან გამოხვედით"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"არჩეულია <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-ის არჩევა გაუქმდა"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"ხმოვანი ფოსტის ჩართვა"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"კონტაქტის <xliff:g id="NAME">%1$s</xliff:g> ნახვა"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g>-თან დარეკვა"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"ხმოვანი ფოსტა"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> წმ"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> მინ <xliff:g id="SECONDS">%s</xliff:g> წამ"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"ერთიანი ქმედების რეჟიმის გაუქმება"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ხმოვანი ფოსტა"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ხმოვანი ფოსტა"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"დიახ"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"არა"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"გსურთ, წაშალოთ არჩეული <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"არჩეულია <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"იტვირთება SIM ბარათიდან…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM ბარათის კონტაქტები"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"კონტაქტების აპლიკაცია არ არის ხელმისაწვდომი"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"ხმოვანი ძიება არ არის ხელმისაწვდომი"</string>
     <string name="call_not_available" msgid="7850148370757361155">"სატელეფონო ზარის განხორციელება ვერ ხერხდება, ვინაიდან ტელეფონის აპლიკაცია გაუქმებულია."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"კონტაქტებში ძიება"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ახალი გაცდენილი ზარი"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"სწრაფი აკრეფისთვის რჩეულები ჯერ არ გყავთ"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"რჩეული კონტაქტის დამატება"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"კონტაქტები ჯერ არ გაქვთ"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"კონტაქტის დამატება"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"ყველა ნომრის სანახავად შეეხეთ სურათს ან შეეხეთ და დააყოვნეთ მიმდევრობის შესაცვლელად"</string>
     <string name="remove_contact" msgid="2353580570488923668">"ამოშლა"</string>
-    <string name="select_all" msgid="408601760696146245">"ყველას არჩევა"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"ვიდეო ზარი"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"შეტყობინების გაგზავნა"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"ზარის მონაცემები"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"დაბლოკილი ნომრები"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> უკვე დაბლოკილია."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"ანგარიშების გამოძახება"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"ჩართვა"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ნებართვების დაყენება"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"სწრაფი აკრეფის გასააქტიურებლად, ჩართეთ კონტაქტების ნებართვა."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"ზარების ჟურნალის სანახავად, ჩართეთ ტელეფონის ნებართვა."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"კონტაქტების სანახავად, ჩართეთ კონტაქტების ნებართვა."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"ხმოვან ფოსტაზე წვდომისთვის, ჩართეთ ტელეფონის ნებართვა."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"თქვენი კონტაქტების მოსაძებნად ჩართეთ კონტაქტების ნებართვები."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"ზარის განსახორციელებლად, ჩართეთ ტელეფონის ნებართვა."</string>
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 8dfe531..ba42386 100644
--- a/java/com/android/dialer/app/res/values-kk/strings.xml
+++ b/java/com/android/dialer/app/res/values-kk/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Қосылып тұрған қоңырауға оралу"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Қоңырау қосу"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Келген қоңыраулар"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Жаппай әрекет режиміне өту"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Жаппай әрекет режиімінен шығу"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> таңдалды"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> таңдауы алынды"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Дауыс-хабарды ойнату"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> контактісін көру"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> нөміріне қоңырау шалу"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Дауыстық пошта"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин <xliff:g id="SECONDS">%s</xliff:g> сек"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Топтама әрекеттер режимін жабу"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"дауыстық хабар"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"дауыстық хабарлар"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Иә"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Жоқ"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Таңдалған <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> хабарларын жою қажет пе?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> таңдалды"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID (ұялы жабдық анықтағыш)"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM картасынан жүктеу…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM картасының контактілері"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Контактілер қолданбасы қол жетімді емес"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Дауыс арқылы іздеу қол жетімді емес"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Телефон қоңырауын шалу мүмкін емес, өйткені «Телефон» қолданбасы өшірілген."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Контактілерді іздеу"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> жаңа қабылданбаған қоңыраулар"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Жылдам теруде әлі ешкім жоқ"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Таңдаулыны қосу"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Әлі ешқандай контактілер жоқ"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Контакт қосу"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Барлық нөмірлерді көру үшін кескінді түртіңіз, ал ретін өзгерту үшін түртіп, ұстап тұрыңыз"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Алып тастау"</string>
-    <string name="select_all" msgid="408601760696146245">"Барлығын таңдау"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Бейне қоңырау"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Хабар жіберу"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Қоңырау мәліметтері"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Бөгелген нөмірлер"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгеліп қойылған."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Қоңырау шалу есептік жазбалары"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Қосу"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Рұқсаттар орнату"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Жылдам теруді қосу үшін \"Контактілер\" рұқсатын қосыңыз."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Қоңыраулар журналы көру үшін \"Телефон\" рұқсатын қосыңыз."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Контактілерді көру үшін \"Контактілер\" рұқсатын қосыңыз."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Дауыс поштасына қатынасу үшін \"Телефон\" рұқсатын қосыңыз."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Контактілерді іздеу үшін \"Контактілер\" рұқсаттарын қосыңыз."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Қоңырауды шалу үшін \"Телефон\" рұқсатын қосыңыз."</string>
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 ed0db05..bdc91cf 100644
--- a/java/com/android/dialer/app/res/values-km/strings.xml
+++ b/java/com/android/dialer/app/res/values-km/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"កំពុង​ត្រឡប់​ទៅកាន់​ការ​ហៅ"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"បន្ថែម​ការ​ហៅ"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"ការ​ហៅ​ចូល"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ចូល​មុខងារ​សកម្មភាព​ច្រើន"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"បាន​ចាកចេញ​ពី​មុខងារ​សកម្មភាព​ច្រើន"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"បាន​ជ្រើសរើស <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"បាន​ដក​ការជ្រើសរើស <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"ចាក់​សារ​ជា​សំឡេង"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"មើល​ទំ​នាក់ទំនង <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"ហៅ <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"សារ​ជា​សំឡេង"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> វិនាទី"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> នាទី <xliff:g id="SECONDS">%s</xliff:g> វិនាទី"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"បោះបង់​មុខងារ​សកម្មភាព​ជា​ក្រុម"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"សារ​ជា​សំឡេង"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"សារ​ជា​សំឡេង"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"បាទ/ចាស"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ទេ"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"លុប <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ដែល​បាន​ជ្រើសរើស?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"បាន​ជ្រើសរើស <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> នៅម៉ោង <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"កំពុង​ផ្ទុក​ពី​ស៊ីម​កាត..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"ទំនាក់ទំនង​នៅ​ក្នុង​ស៊ីម​កាត"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"មិនមានកម្មវិធីទំនាក់ទំនងទេ"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"ការស្វែងរកជាសម្លេងមិនមានទេ"</string>
     <string name="call_not_available" msgid="7850148370757361155">"មិន​អាច​ហៅ​បាន​ទេ​ ព្រោះ​កម្មវិធី​ទូរស័ព្ទ​ត្រូវ​បាន​បិទ។"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"រក​ទំនាក់ទំនង"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"ខកខាន​ទទួល​ថ្មី <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"គ្មាននរណាម្នាក់នៅក្នុងការហៅរហ័សរបស់អ្នកនៅឡើយទេ"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"បញ្ចូលសំណព្វ"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"អ្នកមិនទាន់មានទំនាក់ទំនងនៅឡើយទេ"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"បន្ថែមទំនាក់ទំនង"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"ប៉ះរូបភាពដើម្បីមើលលេខទាំងអស់ ឬប៉ះ &amp; សង្កត់ឲ្យជាប់ដើម្បីតម្រៀបឡើងវិញ"</string>
     <string name="remove_contact" msgid="2353580570488923668">"លុបចេញ"</string>
-    <string name="select_all" msgid="408601760696146245">"ជ្រើសរើស​​ទាំងអស់"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"ហៅជាវីដេអូ"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"ផ្ញើសារ"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"ព័ត៌មានលម្អិតអំពីការហៅ"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"លេខបានរារាំង"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ត្រូវបានទប់ស្កាត់រួចហើយ"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"គណនីហៅទូរសព្ទ"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"បើក"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"កំណត់សិទ្ធិអនុញ្ញាត"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"ដើម្បីបើកដំណើរការហៅរហ័ស សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីទំនាក់ទំនង។"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"ដើម្បីមើលកំណត់ហេតុហៅទូរស័ព្ទរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។"</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"ដើម្បីមើលទំនាក់ទំនងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីទំនាក់ទំនង។"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"ដើម្បីចូលដំណើរការសារជាសំឡេងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"ដើម្បីស្វែងរកទំនាក់ទំនងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតទំនាក់ទំនង។"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"ដើម្បីធ្វើការហៅទូរស័ព្ទ សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។"</string>
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 932bc40..dae544d 100644
--- a/java/com/android/dialer/app/res/values-kn/strings.xml
+++ b/java/com/android/dialer/app/res/values-kn/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ಪ್ರತ್ಯತ್ತರ ಕರೆಯು ಪ್ರಗತಿಯಲ್ಲಿದೆ"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ಕರೆಯನ್ನು ಸೇರಿಸಿ"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"ಒಳಬರುವ ಕರೆಗಳು"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ದೊಡ್ಡ ಪ್ರಮಾಣದ ಕ್ರಿಯೆಯ ಮೋಡ್‌ಗೆ ಪ್ರವೇಶಿಸಲಾಗುತ್ತಿದೆ"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ದೊಡ್ಡ ಪ್ರಮಾಣದ ಕ್ರಿಯೆಯ ಮೋಡ್ ತೊರೆಯಲಾಗಿದೆ"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ಆಯ್ಕೆಯನ್ನು ರದ್ದುಮಾಡಲಾಗಿದೆ"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"ಧ್ವನಿಮೇಲ್‌ ಪ್ಲೇ ಮಾಡಿ"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> ಸಂಪರ್ಕ ವೀಕ್ಷಿಸಿ"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ಕರೆ ಮಾಡಿ"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"ಧ್ವನಿಮೇಲ್"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ಸೆಕೆಂ"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> ನಿಮಿ <xliff:g id="SECONDS">%s</xliff:g> ಸೆಕೆಂ"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"ಬ್ಯಾಚ್ ಕ್ರಿಯೆಗಳ ಮೋಡ್ ಅನ್ನು ರದ್ದುಮಾಡಿ"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ಧ್ವನಿಮೇಲ್"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ಧ್ವನಿಮೇಲ್‌ಗಳು"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ಹೌದು"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ಇಲ್ಲ"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ಆಯ್ಕೆ ಮಾಡಲಾದ <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ಅನ್ನು ಅಳಿಸುವುದೇ?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ರಂದು <xliff:g id="TIME">%2$s</xliff:g> ಗಂಟೆಗೆ"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"ಸಿಮ್‌ ಕಾರ್ಡ್‌ನಿಂದ ಲೋಡ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"ಸಿಮ್‌ ಕಾರ್ಡ್‌ ಸಂಪರ್ಕಗಳು"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"ಯಾವುದೇ ಸಂಪರ್ಕಗಳ ಅಪ್ಲಿಕೇಶನ್‌ ಲಭ್ಯವಿಲ್ಲ"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"ಧ್ವನಿ ಹುಡುಕಾಟ ಲಭ್ಯವಿಲ್ಲ"</string>
     <string name="call_not_available" msgid="7850148370757361155">"ಫೋನ್ ಅಪ್ಲಿಕೇಶನ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿರುವುದರಿಂದ ಫೋನ್ ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಿ"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ಹೊಸ ಮಿಸ್ಡ್‌ ಕರೆಗಳು"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"ನಿಮ್ಮ ತ್ವರಿತ ಡಯಲ್‌ನಲ್ಲಿ ಇದುವರೆಗೆ ಯಾರೂ ಇಲ್ಲ"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ಮೆಚ್ಚಿನದನ್ನು ಸೇರಿಸಿ"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"ನೀವು ಇನ್ನೂ ಯಾವುದೇ ಸಂಪರ್ಕಗಳನ್ನು ಹೊಂದಿಲ್ಲ"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ಸಂಪರ್ಕ ಸೇರಿಸಿ"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"ಎಲ್ಲಾ ಸಂಖ್ಯೆಗಳನ್ನು ನೋಡಲು ಚಿತ್ರವನ್ನು ಸ್ಪರ್ಶಿಸಿ ಅಥವಾ ಮರುಕ್ರಮಗೊಳಿಸಲು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹೋಲ್ಡ್‌‌ ಮಾಡಿ"</string>
     <string name="remove_contact" msgid="2353580570488923668">"ತೆಗೆದುಹಾಕು"</string>
-    <string name="select_all" msgid="408601760696146245">"ಎಲ್ಲವನ್ನೂ ಆಯ್ಕೆ ಮಾಡಿ"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"ವೀಡಿಯೊ ಕರೆ"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"ಕರೆಯ ವಿವರಗಳು"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"ನಿರ್ಬಂಧಿಸಲಾದ ಸಂಖ್ಯೆಗಳು"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ಈಗಾಗಲೇ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"ಕರೆ ಮಾಡುವ ಖಾತೆಗಳು"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"ಆನ್‌ ಮಾಡಿ"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ಅನುಮತಿಗಳನ್ನು ಹೊಂದಿಸು"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"ವೇಗ ಡಯಲ್ ಸಕ್ರಿಯಗೊಳಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"ನಿಮ್ಮ ಕರೆಯ ಲಾಗ್ ಅನ್ನು ವೀಕ್ಷಿಸಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ವೀಕ್ಷಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"ನಿಮ್ಮ ಧ್ವನಿಮೇಲ್ ಪ್ರವೇಶಿಸಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಗಳನ್ನು ಆನ್ ಮಾಡಿ."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"ಕರೆ ಮಾಡಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
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 de6b93c..1850b6c 100644
--- a/java/com/android/dialer/app/res/values-ko/strings.xml
+++ b/java/com/android/dialer/app/res/values-ko/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"진행 중인 통화로 돌아가기"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"통화 추가"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"수신전화"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"일괄 작업 모드 시작 중"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"일괄 작업 모드 종료됨"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> 선택됨"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> 선택 취소됨"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"음성사서함 재생"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g>님의 연락처 보기"</string>
     <string name="description_call" msgid="1532402285334775372">"전화걸기: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"음성사서함"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g>초"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g>분 <xliff:g id="SECONDS">%s</xliff:g>초"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"일괄 작업 모드 취소"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"음성사서함"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"음성사서함"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"예"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"아니요"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"선택한 <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>을(를) 삭제하시겠습니까?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g>개 선택됨"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>분 <xliff:g id="SECONDS">%2$02d</xliff:g>초"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM 카드에서 로딩 중..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM 카드 주소록"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"사용할 수 있는 주소록 앱이 없습니다."</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"음성검색이 지원되지 않습니다."</string>
     <string name="call_not_available" msgid="7850148370757361155">"전화 애플리케이션을 사용 중지했으므로 전화를 걸 수 없습니다."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"주소록 검색"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"새로운 부재중 전화 <xliff:g id="NUMBER">%s</xliff:g>건"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"아직 단축 다이얼이 설정된 연락처가 없습니다."</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"단축 다이얼 추가"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"아직 연락처가 없습니다."</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"연락처 추가"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"이미지를 터치하여 모든 번호를 확인하거나 길게 터치하여 재정렬합니다."</string>
     <string name="remove_contact" msgid="2353580570488923668">"삭제"</string>
-    <string name="select_all" msgid="408601760696146245">"모두 선택"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"화상 통화"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"메시지 보내기"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"통화 세부정보"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"차단된 번호"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g>번은 이미 차단되었습니다."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"통화 계정"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"사용"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"권한 설정"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"단축번호를 사용하려면 주소록 권한을 사용하도록 설정하세요."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"통화 기록을 보려면 전화 권한을 사용하도록 설정하세요."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"주소록을 보려면 주소록 권한을 사용하도록 설정하세요."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"음성사서함에 액세스하려면 전화 권한을 사용하도록 설정하세요."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"주소록을 검색하려면 주소록 권한을 사용하도록 설정하세요."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"전화를 걸려면 전화 권한을 사용하도록 설정하세요."</string>
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 ac9a617..9e80e29 100644
--- a/java/com/android/dialer/app/res/values-ky/strings.xml
+++ b/java/com/android/dialer/app/res/values-ky/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Токтотулган чалууга кайтуу"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Чалууну кошуу"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Кирүүчү чалуулар"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Жапырт аракет режимине кирдиңиз"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Жапырт аракет режиминен чыктыңыз"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> объект тандалды"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> объект тандоодон чыгарылды"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Үнкатты угуу"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Байланышты кароо <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Чалуу <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Үн почтасы"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мүн. <xliff:g id="SECONDS">%s</xliff:g> сек."</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Жапырт аракет режимин жокко чыгаруу"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"үн почтасы"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"үн почталары"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ооба"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Жок"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Тандалган <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> жок кылынсынбы?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> тандалды"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> саат <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM картадан жүктөлүүдө..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM картадагы байланыштар"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Жеткиликтүү байланыштар колдонмосу жок"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Үн менен издөө жеткиликтүү эмес"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Телефон колдонмосу өчүрүлгөндүктөн, чалуу мүмкүн болбой жатат."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Байланыштарды издөө"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> жаңы өткөзүлгөн чалуу"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Азырынча тез териле турган номерлер жок"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Сүйүктүү номер кошуу"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Азырынча бир дагы байланышыңыз жок"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Байланыш кошуу"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Бардык номерлерди көрүү үчүн, сүрөткө тийип коюңуз же коё бербей басып туруп иретин өзгөртсөңүз болот."</string>
     <string name="remove_contact" msgid="2353580570488923668">"Алып салуу"</string>
-    <string name="select_all" msgid="408601760696146245">"Баарын тандоо"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Видео чалуу"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Билдирүү жөнөтүү"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Чалуунун чоо-жайы"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Бөгөттөлгөн номерлер"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> мурунтан эле бөгөттөлгөн."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Чалуу каттоо эсептери"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Күйгүзүү"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Уруксаттарды берүү"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Тез терүүнү иштетүү үчүн, \"Байланыштар\" колдонмосуна уруксат бериңиз."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Чалуулар таржымалыңызды көрүү үчүн, \"Телефон\" колдонмосуна уруксат бериңиз."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Байланыштар тизмесин көрүү үчүн, \"Байланыштар\" колдонмосуна уруксат бериңиз."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Үн почтаңызга кирүү үчүн, \"Телефон\" колдонмосуна уруксат бериңиз."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Байланыштарыңызды издөө үчүн, Байланыштарга уруксатты күйгүзүңүз."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Чалуу үчүн, \"Телефон\" колдонмосуна уруксат бериңиз."</string>
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 2a82973..8284e8d 100644
--- a/java/com/android/dialer/app/res/values-lo/strings.xml
+++ b/java/com/android/dialer/app/res/values-lo/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ກັບໄປການໂທທີ່ກຳລັງດຳເນີນຢູ່"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ເພີ່ມການໂທ"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"ສາຍໂທເຂົ້າ"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ກຳລັງເຂົ້າໂໝດຄຳສັ່ງຈຳນວນຫຼາຍ"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ອອກຈາກໂໝດຄຳສັ່ງຈຳນວນຫຼາຍແລ້ວ"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"ເລືອກ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ແລ້ວ"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"ເຊົາເລືອກ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ແລ້ວ"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"ເປີດຂໍ້ຄວາມສຽງ"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"ເບິ່ງລາຍຊື່ຜູ່ຕິດຕໍ່ <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"ໂທຫາ <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"ຂໍ້ຄວາມສຽງ"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ວິນາທີ"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> ນ​ທ <xliff:g id="SECONDS">%s</xliff:g> ວິ"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"ຍົກເລີກໂໝດຄຳສັ່ງເປັນຊຸດ"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ຂໍ້ຄວາມສຽງ"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ຂໍ້ຄວາມສຽງ"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ແມ່ນແລ້ວ"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ບໍ່"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ລຶບ <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ທີ່ເລືອກອອກໄປບໍ?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"ເລືອກ <xliff:g id="NUMBER">%1$s</xliff:g> ລາຍການແລ້ວ"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ເວລາ <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"ກຳລັງໂຫລດຈາກ SIM card..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"ລາຍຊື່ຜູ່ຕິດຕໍ່ SIM card"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"ບໍ່​ມີ​ແອັບຯ​ລາຍ​ຊື່​ຕິດ​ຕໍ່​ຢູ່"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"ບໍ່​ມີ​ການ​ຊອກ​ຫາ​ດ້ວຍ​ສຽງ​ຢູ່"</string>
     <string name="call_not_available" msgid="7850148370757361155">"ບໍ່​ສາ​ມາດ​ໂທ​ໄດ​້​ເນື່ອງ​ຈາກ​ແອັບ​ພ​ລິ​ເຄ​ຊັນ​ໂທ​ລະ​ສັບ​ຖືກ​ປິດ​ການ​ນຳ​ໃຊ້​ໄວ້."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"ຊອກຫາລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ສາຍທີ່ບໍ່ໄດ້ຮັບໃໝ່"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"ບໍ່​ມີ​ຜູ້​ໃດ​ຢູ່​ໃນ​ການ​ໂທ​ດ່ວນ​ຂອງ​ທ່ານ​ເທື່ອ"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ເພີ່ມ​ລາຍ​ການ​ທີ່​ມັກ"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"ທ່ານ​ບໍ່​ມີ​ລາຍ​ຊື່​ໃດ​ເທື່ອ"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ເພີ່ມ​ລາຍ​ຊື່"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"ແຕະຮູບເພື່ອເບິ່ງເບີໂທທັງໝົດ ຫຼື ແຕະຄ້າງໄວ້ເພື່ອຈັດລຳດັບໃໝ່"</string>
     <string name="remove_contact" msgid="2353580570488923668">"​ລຶບ​ອອກ"</string>
-    <string name="select_all" msgid="408601760696146245">"ເລືອກທັງໝົດ"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"​ໂທ​ດ້ວຍ​ວິ​ດີ​ໂອ"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"ສົ່ງຂໍ້ຄວາມ"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"ລາຍລະອຽດ​ການໂທ"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"ເບີໂທລະສັບທີ່ບລັອກໄວ້"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ຖືກ​ບ​ລັອກ​ແລ້ວ."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"ບັນ​ຊີ​ໂທ"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"ເປີດ​"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ຕັ້ງ​ການ​ອະ​ນຸ​ຍາດ"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"ເພື່ອ​ເປີດ​ໃຊ້​ງານ​ການໂທດ່ວນ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ລາຍ​ຊື່."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"ເພື່ອ​ເບິ່ງ​ບັນ​ທຶກ​ການ​ໂທ​ຂອງ​ທ່ານ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ໂທ​ລະ​ສັບ."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"ເພື່ອ​ເບິ່ງ​ລາຍ​ຊື່​ຂອງ​ທ່ານ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ລາຍ​ຊື່"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"ເພື່ອ​ເຂົ້າ​ຫາ​ຂໍ້​ຄວາມ​ສຽງ​ຂອງ​ທ່ານ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ໂທ​ລະ​ສັບ."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"ເພື່ອຄົ້ນຫາລາຍາຊື່ຂອງທ່ານ, ໃຫ້ເປີດການອະນຸຍາດລາຍຊື່."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"ເພື່ອ​ເຮັດການໂທ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ໂທ​ລະ​ສັບ."</string>
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 367c928..a346d5d 100644
--- a/java/com/android/dialer/app/res/values-lt/strings.xml
+++ b/java/com/android/dialer/app/res/values-lt/strings.xml
@@ -87,10 +87,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Grįžti prie vykdomo skambučio"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Pridėti skambutį"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Gaunami skambučiai"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Įjungiamas masinių veiksmų režimas"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Masinių veiksmų režimas išjungtas"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Pasirinkta: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Pasirinkimas atšauktas: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Paleisti balso pašto pranešimus"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Žiūrėti kontaktą <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Skambinti <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -105,13 +101,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Balso paštas"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Atšaukti masinių veiksmų režimą"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"balso pašto praneš."</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"balso pašto praneš."</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Taip"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Ištrinti pasir. <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Pasirinkta: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -124,6 +118,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Įkeliama iš SIM kortelės..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM kortelės adresatai"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Nepasiekiama jokia kontaktų programa"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Paieška balsu nepasiekiama"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Negalima skambinti telefonu, nes Telefono programa išjungta."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Ieškoti adresatų"</string>
@@ -152,9 +147,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Naujų praleistų skambučių: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Dar nieko neįtraukėte į sparčiojo rinkimo sąrašą"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Pridėti mėgstamiausią"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Dar neturite kontaktų"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Pridėti kontaktą"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Palieskite vaizdą, kad peržiūrėtumėte visus numerius, arba palieskite ir palaikykite, kad pertvarkytumėte"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Pašalinti"</string>
-    <string name="select_all" msgid="408601760696146245">"Pasirinkti viską"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Vaizdo skambutis"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Siųsti pranešimą"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Išsami skambučio informacija"</string>
@@ -221,9 +217,11 @@
     <string name="block_list" msgid="4701585783411870782">"Užblokuoti numeriai"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> jau užblokuotas."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Skambinimo paskyros"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Įjungti"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Nustatyti leidimus"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Jei norite įgalinti spartųjį rinkimą, įjunkite Kontaktų programos leidimą."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Jei norite peržiūrėti skambučių žurnalą, įjunkite Telefono programos leidimą."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Jei norite peržiūrėti kontaktus, įjunkite Kontaktų programos leidimą."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Jei norite pasiekti balso paštą, įjunkite Telefono programos leidimą."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Kad galėtumėte ieškoti kontaktų, įjunkite Kontaktų leidimus."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Jei norite paskambinti, įjunkite Telefono programos leidimą."</string>
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 2713b91..808d7bf 100644
--- a/java/com/android/dialer/app/res/values-lv/strings.xml
+++ b/java/com/android/dialer/app/res/values-lv/strings.xml
@@ -86,10 +86,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Atgriezties pie pašreizējā zvana"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Pievienot zvanu"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Ienākošie zvani"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Tiek atvērts lielapjoma darbību režīms"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Tika aizvērts lielapjoma darbību režīms"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Atlasīt: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Noņemt atlasi: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Atskaņot balss pasta ziņojumu"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Skatīt kontaktpersonu <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Zvanīt: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -104,13 +100,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Balss pasts"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Iziet no grupas darbību režīma"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"balss pasta ziņojums"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"balss pasta ziņojumi"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Jā"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nē"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vai dzēst atlasi: <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Atlasīti: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> plkst. <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -123,6 +117,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Notiek ielāde no SIM kartes..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontaktpersonas SIM kartē"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Nav pieejama neviena kontaktpersonu lietotne."</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Meklēšana ar balsi nav pieejama."</string>
     <string name="call_not_available" msgid="7850148370757361155">"Nevar veikt tālruņa zvanu, jo lietojumprogramma Tālrunis tika atspējota."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Meklēt kontaktpersonas"</string>
@@ -151,9 +146,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Jauni neatbildēti zvani: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Ātro zvanu sarakstā vēl nav nevienas kontaktpersonas."</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Pievienot izlasei"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Jums vēl nav nevienas kontaktpersonas."</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Pievienot kontaktpersonu"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Pieskarieties attēlam, lai skatītu visus numurus, vai pieskarieties attēlam un turiet to, lai veiktu pārkārtošanu."</string>
     <string name="remove_contact" msgid="2353580570488923668">"Noņemt"</string>
-    <string name="select_all" msgid="408601760696146245">"Atlasīt visu"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videozvans"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Sūtīt ziņojumu"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Informācija par zvanu"</string>
@@ -219,9 +215,11 @@
     <string name="block_list" msgid="4701585783411870782">"Bloķētie numuri"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> jau ir bloķēts."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Zvanu konti"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Ieslēgt"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Iestatīt atļaujas"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Lai iespējotu ātros zvanus, ieslēdziet atļauju Kontaktpersonas."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Lai skatītu zvanu žurnālu, ieslēdziet atļauju Tālrunis."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Lai skatītu kontaktpersonas, ieslēdziet atļauju Kontaktpersonas."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Lai piekļūtu balss pastam, ieslēdziet atļauju Tālrunis."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Lai meklētu savas kontaktpersonas, ieslēdziet atļauju Kontaktpersonas."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Lai veiktu zvanu, ieslēdziet atļauju Tālrunis."</string>
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 09725a6..6d2e533 100644
--- a/java/com/android/dialer/app/res/values-mk/strings.xml
+++ b/java/com/android/dialer/app/res/values-mk/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Врати се на повик во тек"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Додај повик"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Дојдовни повици"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Влегувате во режим на групно дејство"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Излеговте од режим на групно дејство"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Избрано е <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Поништен е изборот на <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Преслушај говорна пошта"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Прикажи контакт <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Повикај <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Говорна пошта"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин. <xliff:g id="SECONDS">%s</xliff:g> сек."</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Откажи го режимот на групни дејства"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"говорна пошта"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"говорни пораки"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Да"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Не"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Да се избришат избраните <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Избрани се <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> во <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Вчитување од SIM картичка..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Контакти од SIM картичка"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Не е достапна апликација за контакти"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Гласовното пребарување не е достапно"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Не може да се воспостави телефонски повик, бидејќи апликацијата Телефон е оневозможена."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Пребарај контакти"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> нови пропуштени повици"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Сè уште немате никого на брзо бирање"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Додај омилено"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Сè уште немате контакти"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Додај контакт"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Допрете ја сликата за да ги видите сите броеви или допрете и држете за промена на редоследот"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Отстрани"</string>
-    <string name="select_all" msgid="408601760696146245">"Изберете ги сите"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Видеоповик"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Испрати порака"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Детали на повик"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Блокирани броеви"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> веќе е блокиран."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Сметки за повикување"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Вклучи"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Постави дозволи"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"За да овозможите брзо бирање, вклучете ја дозволата за контакти."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"За да ја видите евиденцијата на повици, вклучете ја дозволата за телефон."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"За да ги видите контактите, вклучете ја дозволата за контакти."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"За да пристапите кон говорната пошта, вклучете ја дозволата за телефон."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"За да ги пребарувате контактите, вклучете ги дозволите за контакти."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"За да воспоставите повик, вклучете ја дозволата за телефон."</string>
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 7655dbe..91accf4 100644
--- a/java/com/android/dialer/app/res/values-ml/strings.xml
+++ b/java/com/android/dialer/app/res/values-ml/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"വിളിച്ചുകൊണ്ടിരിക്കുന്ന കോളിലേക്ക് മടങ്ങുക"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"കോൾ ചേർക്കുക"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"ഇൻകമിംഗ് കോളുകൾ"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ബൾക്ക് പ്രവർത്തന മോഡിലേക്ക് പ്രവേശിക്കുന്നു"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ബൾക്ക് പ്രവർത്തന മോഡ് വിട്ടു"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> തിരഞ്ഞെടുത്തു"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> തിരഞ്ഞെടുത്തത് മാറ്റി"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"വോയ്‌സ്‌മെയിൽ പ്ലേ ചെയ്യുക"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> എന്ന കോൺടാക്റ്റ് കാണുക"</string>
     <string name="description_call" msgid="1532402285334775372">"വിളിക്കുക <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"വോയ്‌സ്‌മെയിൽ"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> സെക്കൻഡ്"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> മി. <xliff:g id="SECONDS">%s</xliff:g> സെ."</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"\'ബാച്ച് പ്രവർത്തനങ്ങൾ\' മോഡ് റദ്ദാക്കുക"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"വോയ്‌സ്‌മെയിൽ"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"വോയ്‌സ്മെയിലുകൾ"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"അതെ"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ഇല്ല"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"തിരഞ്ഞെടുത്ത <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ഇല്ലാതാക്കണോ?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> എണ്ണം തിരഞ്ഞെടുത്തു"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>-ന്"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"സിം കാർഡിൽ നിന്നും ലോഡുചെയ്യുന്നു…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"സിം കാർഡ് കോൺടാക്റ്റുകൾ"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"കോൺടാക്റ്റ് അപ്ലിക്കേഷനൊന്നും ലഭ്യമല്ല"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"വോയ്‌സ് തിരയൽ ലഭ്യമല്ല"</string>
     <string name="call_not_available" msgid="7850148370757361155">"ഫോൺ അപ്ലിക്കേഷൻ പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നതിനാൽ ഫോൺ കോൾ ചെയ്യാനാകില്ല."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"കോണ്‍‌ടാക്റ്റുകള്‍ തിരയുക"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> പുതിയ മിസ്‌ഡ് കോളുകൾ"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"ഇതുവരെ ആരും നിങ്ങളുടെ സ്പീഡ് ഡയലിൽ ഇല്ല"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"പ്രിയപ്പെട്ടത് ചേർക്കുക"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"നിങ്ങൾക്ക് ഇതുവരെയും കോൺടാക്റ്റുകൾ ഒന്നുമില്ല."</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ഒരു കോണ്‍ടാക്റ്റ് ചേര്‍ക്കുക"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"എല്ലാ നമ്പറുകളും കാണാൻ ചിത്രം സ്‌പർശിക്കുക അല്ലെങ്കിൽ വീണ്ടും ക്രമീകരിക്കാൻ സ്‌പർശിച്ച് പിടിക്കുക"</string>
     <string name="remove_contact" msgid="2353580570488923668">"നീക്കംചെയ്യുക"</string>
-    <string name="select_all" msgid="408601760696146245">"എല്ലാം തിരഞ്ഞെടുക്കുക"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"വീഡിയോ കോള്‍"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"ഒരു സന്ദേശം അയയ്‌ക്കുക"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"കോൾ വിശദാംശങ്ങൾ"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"ബ്ലോക്കുചെയ്ത നമ്പറുകൾ"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"ഇതിനകം തന്നെ <xliff:g id="NUMBER">%1$s</xliff:g> ബ്ലോക്കുചെയ്തിരിക്കുന്നു"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"കോളിംഗ് അക്കൗണ്ട്"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"ഓണാക്കുക"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"അനുമതികൾ സജ്ജമാക്കുക"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"സ്പീഡ് ഡയൽ പ്രവർത്തനക്ഷമാക്കുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"നിങ്ങളുടെ കോൾ ലോഗ് കാണുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ കാണുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"നിങ്ങളുടെ വോയ്‌സ്‌മെയിൽ ആക്സസ് ചെയ്യുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ തിരയുന്നതിന് കോൺടാക്റ്റുകൾക്കുള്ള അനുമതികൾ ഓണാക്കുക."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"കോൾ വിളിക്കുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക."</string>
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 29bd8af..a07a826 100644
--- a/java/com/android/dialer/app/res/values-mn/strings.xml
+++ b/java/com/android/dialer/app/res/values-mn/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Үргэлжилж буй дуудлага руу буцах"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Дуудлага нэмэх"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Ирж буй дуудлага"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Багц үйлдлийн горимд орж байна"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Багц үйлдлийн горимоос гарсан"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> сонгосон"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> сонголтыг болиулсан"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Дуут шууданг тоглуулах"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> харилцагчийг харах"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> руу залгах"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Дуут шуудан"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> минут <xliff:g id="SECONDS">%s</xliff:g> секунд"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Багц үйлдлийн горимыг цуцлах"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"дуут шуудан"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"дуут шуудан"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Тийм"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Үгүй"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Сонгосон <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>-г устгах уу?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> сонгосон"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g>-д"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM картаас уншиж байна…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM картны харилцагчид"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Ямар ч харилцагчдын апликейшн байхгүй байна."</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Дуут хайлт хийх боломжгүй байна"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Утас аппликешныг идэвхгүйжүүлсэн тул утасны дуудлага хийх боломжгүй."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Харилцагчдаас хайх"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> шинэ аваагүй дуудлага"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Таны яаралтай залгах тохиргоон дээр одоогоор харилцагч байхгүй байна"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Таалагдсан хэсэгт нэмэх"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Танд одоогоор харилцагч байхгүй байна"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Харилцагч нэмэх"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Бүх дугаарыг харахын тулд зурганд хүрнэ үү эсвэл жагсаалтыг өөрчлөхийн тулд удаан дарна уу."</string>
     <string name="remove_contact" msgid="2353580570488923668">"Хасах"</string>
-    <string name="select_all" msgid="408601760696146245">"Бүгдийг сонгох"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Видео дуудлага"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Зурвас илгээх"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Дуудлагын мэдээлэл"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Блоклосон дугаар"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g>-г аль хэдийн блоклосон байна."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Дуудах бүртгэл"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Идэвхжүүлэх"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Зөвшөөрөл тохируулах"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Яаралтай дуудлагыг идэвхжүүлэхийн тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Дуудлагын жагсаалтыг харахын тулд утасны зөвшөөрлийг идэвхжүүлнэ үү."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Харилцагчдаа харахын тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Дуут шууданд хандахын тулд Утасны зөвшөөрлийг идэвхжүүлнэ үү."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Харилцагчаа хайхын тулд, Харилцагчийн жагсаалтын зөвшөөрлийг идэвхжүүлнэ үү."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Залгахын тулд Утасны зөвшөөрлийг идэвхжүүлнэ үү."</string>
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 ee21291..5aca7a5 100644
--- a/java/com/android/dialer/app/res/values-mr/strings.xml
+++ b/java/com/android/dialer/app/res/values-mr/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"चालू असलेल्या कॉलवर परत जा"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"कॉल जोडा"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"येणारे कॉल"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"मोठ्या प्रमाणात क्रिया मोडमध्ये प्रवेश करीत आहे"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"मोठ्या प्रमाणात क्रिया मोड सोडत आहे"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> निवडले"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ची निवड रद्द केली"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"व्हॉइसमेल प्ले करा"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> संपर्क पहा"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ला कॉल  करा"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"व्हॉइसमेल"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> सेकंद"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> मिनिट <xliff:g id="SECONDS">%s</xliff:g> सेकंद"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"बॅच क्रिया मोड रद्द करा"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"व्हॉइसमेल"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"व्हॉइसमेल"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"होय"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"नाही"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"निवडलेले <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> हटवायचेे?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> निवडले"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> रोजी <xliff:g id="TIME">%2$s</xliff:g> वाजता"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"सिम कार्ड मधून लोड करीत आहे..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"सिम कार्ड संपर्क"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"कोणताही संपर्क अॅप उपलब्ध नाही"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"व्हॉइस शोध उपलब्ध नाही"</string>
     <string name="call_not_available" msgid="7850148370757361155">"फोन अनुप्रयोग अक्षम केला गेला असल्याने फोन कॉल करणे शक्य नाही."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"संपर्क शोधा"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> नवीन सुटलेले कॉल"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"अद्याप आपल्‍या स्पीड डायलवर कोणीही नाही"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"एक आवडते जोडा"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"आपल्‍याकडे अद्याप कोणतेही संपर्क नाहीत"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"एक संपर्क जोडा"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"सर्व नंबर पाहण्यासाठी प्रतिमेस स्पर्श करा किंवा पुन्हा क्रम लावण्यासाठी स्पर्श करा आणि धरून ठेवा"</string>
     <string name="remove_contact" msgid="2353580570488923668">"काढा"</string>
-    <string name="select_all" msgid="408601760696146245">"सर्व निवडा"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"व्हिडिओ कॉल"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"एक संदेश पाठवा"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"कॉल तपशील"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"अवरोधित केलेले नंबर"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> आधीच अवरोधित केलेला आहे."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"कॉल करण्याची खाती"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"चालू करा"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"परवानग्या सेट करा"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"स्पीड डायल सक्षम करण्‍यासाठी, संपर्क परवानगी चालू करा."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"आपला कॉल लॉग पाहण्‍यासाठी, फोन परवानगी चालू करा."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"आपले संपर्क पाहण्‍यासाठी, संपर्क परवानगी चालू करा."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"आपल्‍या व्हॉइसमेलमध्‍ये प्रवेश करण्‍यासाठी, फोन परवानगी चालू करा."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"आपले संपर्क शोधण्‍यासाठी, संपर्क परवानग्या चालू करा."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"कॉल करण्यासाठी, फोन परवानगी चालू करा."</string>
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 dbb0213..9dbe541 100644
--- a/java/com/android/dialer/app/res/values-ms/strings.xml
+++ b/java/com/android/dialer/app/res/values-ms/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Kembali ke panggilan yang sedang berlangsung"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Tambah panggilan"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Panggilan masuk"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Memasuki mod tindakan pukal"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Meninggalkan mod tindakan pukal"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> dipilih"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> dinyahpilih"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Mainkan mel suara"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Lihat kenalan <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Panggil <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Mel suara"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> saat"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> saat"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Batalkan mod tindakan kelompok"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"mel suara"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mel suara"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ya"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Tidak"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Padam <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> yang dipilih?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> dipilih"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> pada <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Memuatkan dari kad SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kenalan kad SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Tiada apl kenalan tersedia"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Carian suara tidak tersedia"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Tidak boleh membuat panggilan telefon kerana aplikasi Telefon telah dilumpuhkan."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Cari dalam kenalan"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> panggilan terlepas baharu"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Belum ada sesiapa pada dail pantas anda"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Tambahkan kegemaran"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Anda belum mempunyai sebarang kenalan"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Tambahkan kenalan"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Sentuh imej untuk melihat semua nombor atau sentuh &amp; tahan untuk menyusun semula"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Alih keluar"</string>
-    <string name="select_all" msgid="408601760696146245">"Pilih semua"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Panggilan video"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Hantar mesej"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Butiran panggilan"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Nombor yang disekat"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> sudah disekat."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Akaun panggilan"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Hidupkan"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Tetapkan kebenaran"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Untuk mendayakan dail laju, hidupkan kebenaran Kenalan."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Untuk melihat log panggilan anda, hidupkan kebenaran Telefon."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Untuk melihat kenalan anda, hidupkan kebenaran Kenalan."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Untuk mengakses mel suara anda, hidupkan kebenaran Telefon."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Untuk mencari kenalan anda, hidupkan kebenaran Kenalan."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Untuk membuat panggilan, hidupkan kebenaran Telefon."</string>
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 eecfeb2..2b51b20 100644
--- a/java/com/android/dialer/app/res/values-my/strings.xml
+++ b/java/com/android/dialer/app/res/values-my/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ဖုန်းပြန်ခေါ်မှု ပြုလုပ်နေစဉ်"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ဖုန်းခေါ်မှု ထပ်ထည့်ပါ"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"အဝင်ခေါ်ဆိုမှုများ"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"တပြိုင်နက်တည်း စုပြုံလုပ်ဆောင်ချက်မုဒ်ကို ထည့်သွင်းခြင်း"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"တပြိုင်နက်တည်း စုပြုံလုပ်ဆောင်ချက်မုဒ်မှ ထွက်လိုက်သည်"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"ရွေးချယ်ထားသော <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"မရွေးချယ်ထားသော <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"အသံပို့စာ နားထောင်ရန်"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> လိပ်စာကြည့်ရန်"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ကိုခေါ်ပါ"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"အသံစာပို့စနစ်"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> စက္ကန့်"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> မိနစ် <xliff:g id="SECONDS">%s</xliff:g> စက္ကန့်"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"တပြိုင်နက်တည်း စုပြုံလုပ်ဆောင်ချက်များမုဒ်ကိ ပယ်ဖျက်ရန်"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"အသံမေးလ်"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"အသံမေးလ်များ"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yes"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ရွေးထားသော <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ကို ဖျက်လိုပါသလား။"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ကို ရွေးချယ်ထားသည်"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g> ၌"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEIDနံပါတ်"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"ဆင်းမ်ကဒ်မှ ဖွင့်နေပါသည်..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"ဆင်းမ်ကဒ်မှ အဆက်အသွယ်များ"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"အဆက်အသွယ်များ app မရှိ"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"အသံဖြင့် ရှာဖွေမှု မရှိ"</string>
     <string name="call_not_available" msgid="7850148370757361155">"ဖုန်း အပလီကေးရှင်းကို ပိတ်ထား၍ ဖုန်း ခေါ်ဆိုမှု မပြုလုပ်နိုင်ခဲ့ပါ။"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"အဆက်အသွယ်များရှာပါ"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"လွတ်သွားသောဖုန်း <xliff:g id="NUMBER">%s</xliff:g> ခါ"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"သင်၏အမြန်ခေါ်စာရင်းတွင် မည်သူမျှ မရှိသေးပါ"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"အနှစ်သက်ဆုံးတစ်ခု ထည့်ရန်"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"သင့်တွင် မည်သည့်အဆက်အသွယ်မျှ မရှိသေးပါ"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"အဆက်အသွယ်တစ်ယောက် ထည့်မည်"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"နံပါတ်အားလုံးကိုကြည့်ရန် ပုံကိုထိပါ (သို့) ပြန်စီရန် ထိပြီးဖိထားပါ"</string>
     <string name="remove_contact" msgid="2353580570488923668">"ဖယ်ရှာခြင်း"</string>
-    <string name="select_all" msgid="408601760696146245">"အားလုံးကို ရွေးချယ်ပါ"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"ဗီဒီယို ခေါ်ဆိုမှု"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"စာ တစ်စောင် ပို့ပါ"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"ဖုန်းခေါ်မှု အသေးစိတ်အချက်အလက်"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"ပိတ်ထားသည့် နံပါတ်များ"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> အားပိတ်ဆို့ထားပြီးပါပြီ။"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"ခေါ်ဆိုသော အကောင့်များ"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"ဖွင့်ထားရန်"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ခွင့်ပြုချက်များ သတ်မှတ်မည်"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"မြန်နှုန်းမြင့်ဖုန်းခေါ်ဆိုမှုကို ဖွင့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"ခေါ်ဆိုမှုမှတ်တမ်းကို ကြည့်ရန်၊ ဖုန်းခွင့်ပြုချက်ကို ဖွင့်ပါ။"</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"အဆက်အသွယ်များကိုကြည့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"အသံမေးလ်ကိုအသုံးပြုရန်၊ ဖုန်းခွင့်ပြုချက်ကိုဖွင့်ပါ။"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"သင့်အဆက်အသွယ်များကို ရှာဖွေရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်များကို ဖွင့်ပါ။"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"ဖုန်းခေါ်ဆိုရန်၊ ဖုန်းခွင့်ပြုချက်ကိုဖွင့်ပါ။"</string>
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 bda4915..d92edc6 100644
--- a/java/com/android/dialer/app/res/values-nb/strings.xml
+++ b/java/com/android/dialer/app/res/values-nb/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Gå tilbake til aktiv samtale"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Legg til en samtale"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Innkommende samtaler"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Starter massehandlingsmodus"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Massehandlingsmodus er avsluttet"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Du har valgt <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Du har valgt bort <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Spill av talemelding"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Se kontakten <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Ring <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Telefonsvarer"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Avbryt massehandlinsmodus"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"talepost"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"talepost"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nei"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Slett markert <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> er valgt"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Henter fra SIM-kort…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakter på SIM-kort"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Ingen kontaktapper er tilgjengelige"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Talesøk er ikke tilgjengelig"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Kan ikke ringe fordi Telefon-appen er deaktivert."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Søk i kontakter"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nye tapte anrop"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Du har ingen på hurtigoppringning ennå"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Legg til en favoritt"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Du har ingen kontakter ennå"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Legg til en kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Trykk på bildet for å se alle numrene, eller trykk og hold for å omorganisere"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Fjern"</string>
-    <string name="select_all" msgid="408601760696146245">"Velg alle"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videoanrop"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Send en melding"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Samtaleinformasjon"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Blokkerte numre"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> er allerede blokkert."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Ringekontoer"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Slå på"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Angi tillatelser"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"For å slå på hurtigoppringning, slå på Kontakter-tillatelsen."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"For å se samtaleloggen din, slå på Telefon-tillatelsen."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"For å se kontaktene dine, slå på Kontakter-tillatelsen."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"For å få tilgang til talepostkassen, slå på Telefon-tillatelsen."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"For å søke i kontaktene dine, slå på tillatelser for Kontakter."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"For å ringe, slå på Telefon-tillatelsen."</string>
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 8262a31..90a3016 100644
--- a/java/com/android/dialer/app/res/values-ne/strings.xml
+++ b/java/com/android/dialer/app/res/values-ne/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"हुदै गरेको कलमा फर्कनुहोस्"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"कल थप्नुहोस्"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"आगमन कलहरू"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"बल्क कारबाही सम्बन्धी मोडमा प्रवेश गर्दै"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"बल्क कारबाही सम्बन्धी मोड छोडियो"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> चयन गरियो"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> चयन हटाइयो"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"भ्वाइसमेल बजाउनुहोस्"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> सम्पर्क हेर्नुहोस्"</string>
     <string name="description_call" msgid="1532402285334775372">"कल <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"भ्वाइसमेल"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> सेकेन्ड"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> मिनेट <xliff:g id="SECONDS">%s</xliff:g> सकेन्ड"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"ब्याच सम्बन्धी कारबाहीको मोडलाई रद्द गर्नुहोस्"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"भ्वाइस मेल"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"भ्वाइस मेलहरू"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"हो"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"होइन"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"चयन गरिएका <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> लाई मेटाउने हो?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> चयन गरियो"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> मा <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM कार्डबाट लोड हुँदै"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM कार्ड सम्पर्कहरू"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"कुनै पनि सम्पर्क अनुप्रयोग उपलब्ध छैन"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"आवाज खोजी उपलब्ध छैन"</string>
     <string name="call_not_available" msgid="7850148370757361155">"फोन अनुप्रयोग असक्षम गरिएकोले फोन गर्न सकिँदैन।"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"सम्पर्कहरू खोज्नुहोस्"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> नयाँ छुटेका कलहरु"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"तपाईँको स्पिड डायलमा अझसम्म कोही छैन"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"एक मनपर्ने थप्नुहोस्"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"तपाईँसँग अझसम्म कुनै सम्पर्कहरू छैनन्"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"एउटा सम्पर्क थप्नुहोस्"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"सबै नम्बरहरू हेर्न छविलाई छुनुहोस् वा पुन:क्रमबद्ध गर्न छोइराख्नुहोस्"</string>
     <string name="remove_contact" msgid="2353580570488923668">"हटाउँनुहोस्"</string>
-    <string name="select_all" msgid="408601760696146245">"सबैलाई चयन गर्नुहोस्"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"भिडियो कल"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"सन्देश पठाउनुहोस्"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"कल विवरणहरु"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"रोकिएका नम्बरहरू"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> पहिले नै रोकिएको छ।"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"खाता कलिङ"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"सक्रिय पार्नुहोस्"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"अनुमतिहरू सेट गर्नुहोस्"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"तीव्र डायल सक्षम गर्न, सम्पर्क अनुमति सक्षम गर्नुहोस्।"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"आफ्नो कल लग हेर्न, फोन अनुमति सक्रिय गर्नुहोस्।"</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"आफ्नो सम्पर्क हेर्न सम्पर्क अनुमति सक्रिय गर्नुहोस्।"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"आफ्नो भ्वाइस मेल पहुँच गर्न, फोन अनुमति सक्रिय गर्नुहोस्"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"तपाईँको सम्पर्कहरू खोज गर्न सम्पर्क अनुमतिहरू सक्रिय गर्नुहोस्।"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"कल गर्न फोन अनुमति सक्रिय गर्नुहोस्।"</string>
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 eed412d..5f41b80 100644
--- a/java/com/android/dialer/app/res/values-nl/strings.xml
+++ b/java/com/android/dialer/app/res/values-nl/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Terug naar actief gesprek"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Oproep toevoegen"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Inkomende oproepen"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Modus voor bulkacties openen"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Modus voor bulkacties verlaten"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> geselecteerd"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Selectie van <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> opgeheven"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Voicemail afspelen"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Contact <xliff:g id="NAME">%1$s</xliff:g> bekijken"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> bellen"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Voicemail"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sec."</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Modus voor batchacties annuleren"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"voicemails"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nee"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Geselecteerde <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> verwijderen?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> geselecteerd"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> om <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Laden vanaf SIM-kaart..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contacten op SIM-kaart"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Geen app voor contacten beschikbaar"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Gesproken zoekopdracht niet beschikbaar"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Kan niet bellen omdat de Telefoon-app is uitgeschakeld."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Contacten zoeken"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nieuwe gemiste oproepen"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Er staat nog niemand in je snelkeuzelijst"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Een favoriet toevoegen"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Je hebt nog geen contacten"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Contact toevoegen"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Tik op de afbeelding om alle nummers te bekijken of tik op de afbeelding en houd vast om opnieuw te rangschikken"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Verwijderen"</string>
-    <string name="select_all" msgid="408601760696146245">"Alles selecteren"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videogesprek"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Een bericht verzenden"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Oproepdetails"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Geblokkeerde nummers"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is al geblokkeerd."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Oproepaccounts"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Inschakelen"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Toestemmingen instellen"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Als je de snelkeuzefunctie wilt inschakelen, schakel je de machtiging voor Contacten in."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Als je je gesprekkenlijst wilt bekijken, schakel je de machtiging voor Telefoon in."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Als je je contacten wilt bekijken, schakel je de machtiging voor Contacten in."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Als je je voicemail wilt beluisteren, schakel je de machtiging voor Telefoon in."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Als je naar contacten wilt zoeken, schakel je de contacttoestemming in."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Als je iemand wilt bellen, schakel je de machtiging voor Telefoon in."</string>
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 bda4915..d92edc6 100644
--- a/java/com/android/dialer/app/res/values-no/strings.xml
+++ b/java/com/android/dialer/app/res/values-no/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Gå tilbake til aktiv samtale"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Legg til en samtale"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Innkommende samtaler"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Starter massehandlingsmodus"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Massehandlingsmodus er avsluttet"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Du har valgt <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Du har valgt bort <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Spill av talemelding"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Se kontakten <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Ring <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Telefonsvarer"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Avbryt massehandlinsmodus"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"talepost"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"talepost"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nei"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Slett markert <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> er valgt"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Henter fra SIM-kort…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakter på SIM-kort"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Ingen kontaktapper er tilgjengelige"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Talesøk er ikke tilgjengelig"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Kan ikke ringe fordi Telefon-appen er deaktivert."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Søk i kontakter"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nye tapte anrop"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Du har ingen på hurtigoppringning ennå"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Legg til en favoritt"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Du har ingen kontakter ennå"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Legg til en kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Trykk på bildet for å se alle numrene, eller trykk og hold for å omorganisere"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Fjern"</string>
-    <string name="select_all" msgid="408601760696146245">"Velg alle"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videoanrop"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Send en melding"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Samtaleinformasjon"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Blokkerte numre"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> er allerede blokkert."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Ringekontoer"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Slå på"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Angi tillatelser"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"For å slå på hurtigoppringning, slå på Kontakter-tillatelsen."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"For å se samtaleloggen din, slå på Telefon-tillatelsen."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"For å se kontaktene dine, slå på Kontakter-tillatelsen."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"For å få tilgang til talepostkassen, slå på Telefon-tillatelsen."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"For å søke i kontaktene dine, slå på tillatelser for Kontakter."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"For å ringe, slå på Telefon-tillatelsen."</string>
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 8e65407..76d4b9b 100644
--- a/java/com/android/dialer/app/res/values-pa/strings.xml
+++ b/java/com/android/dialer/app/res/values-pa/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ਪ੍ਰਗਤੀ ਵਿੱਚ ਕਾਲ ਤੇ ਵਾਪਸ ਜਾਓ"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ਕਾਲ ਜੋੜੋ"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"ਇਨਕਮਿੰਗ ਕਾਲਾਂ"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ਬਲਕ ਕਾਰਵਾਈ ਮੋਡ ਵਿੱਚ ਦਾਖਲ ਹੋਇਆ ਜਾ ਰਿਹਾ ਹੈ"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ਬਲਕ ਕਾਰਵਾਈ ਮੋਡ ਨੂੰ ਛੱਡਿਆ"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ਨੂੰ ਚੁਣਿਆ ਗਿਆ"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ਨੂੰ ਅਣ-ਚੁਣਿਆ ਕੀਤਾ ਗਿਆ"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"ਵੌਇਸਮੇਲ ਪਲੇ ਕਰੋ"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"ਸੰਪਰਕ <xliff:g id="NAME">%1$s</xliff:g> ਦੇਖੋ"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ਨੂੰ ਕਾਲ ਕਰੋ"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"ਵੌਇਸਮੇਲ"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ਸਕਿੰਟ"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> ਮਿੰਟ <xliff:g id="SECONDS">%s</xliff:g> ਸਕਿੰਟ"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"ਬੈਚ ਕਾਰਵਾਈਆਂ ਮੋਡ ਨੂੰ ਰੱਦ ਕਰੋ"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ਵੌਇਸਮੇਲ"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ਵੌਇਸਮੇਲਾਂ"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ਹਾਂ"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ਨਹੀਂ"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ਕੀ ਚੁਣੀ(ਆਂ) ਹੋਈ(ਆਂ) <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ਨੂੰ ਚੁਣਿਆ ਗਿਆ"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ਨੂੰ <xliff:g id="TIME">%2$s</xliff:g> ਵਜੇ"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM ਕਾਰਡ ਵਿੱਚੋਂ ਲੋਡ ਕਰ ਰਿਹਾ ਹੈ…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM ਕਾਰਡ ਸੰਪਰਕ"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"ਕੋਈ ਸੰਪਰਕ ਐਪ ਉਪਲਬਧ ਨਹੀਂ"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"ਵੌਇਸ ਖੋਜ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
     <string name="call_not_available" msgid="7850148370757361155">"ਇੱਕ ਫੋਨ ਕਾਲ ਨਹੀਂ ਕਰ ਸਕਦਾ ਕਿਉਂਕਿ ਫੋਨ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਅਯੋਗ ਬਣਾਇਆ ਗਿਆ ਹੈ।"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"ਸੰਪਰਕ ਖੋਜੋ"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ਨਵੀਆਂ ਮਿਸਡ ਕਾਲਾਂ"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"ਅਜੇ ਤੁਹਾਡੇ ਸਪੀਡ ਡਾਇਲ \'ਤੇ ਕੋਈ ਵੀ ਵਿਅਕਤੀ ਨਹੀਂ ਹੈ"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ਕੋਈ ਮਨਪਸੰਦ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"ਤੁਹਾਡੇ ਕੋਲ ਅਜੇ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ ਹਨ।"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ਕੋਈ ਸੰਪਰਕ ਸ਼ਾਮਲ ਕਰੋ"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"ਸਾਰੇ ਨੰਬਰਾਂ ਨੂੰ ਵੇਖਣ ਲਈ ਚਿਤਰ ਨੂੰ ਸਪਰਸ਼ ਕਰੋ ਜਾਂ ਦੁਬਾਰਾ ਕ੍ਰਮਬੱਧ ਕਰਨ ਲਈ ਸਪਰਸ਼ ਕਰੋ ਅਤੇ ਦਬਾਈ ਰੱਖੋ"</string>
     <string name="remove_contact" msgid="2353580570488923668">"ਹਟਾਓ"</string>
-    <string name="select_all" msgid="408601760696146245">"ਸਭ ਚੁਣੋ"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"ਵੀਡੀਓ ਕਾਲ"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"ਇੱਕ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"ਕਾਲ ਵੇਰਵੇ"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"ਬਲੌਕ ਕੀਤੇ ਗਏ ਨੰਬਰ"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ਪਹਿਲਾਂ ਹੀ ਬਲੌਕ ਕੀਤਾ ਹੋਇਆ ਹੈ।"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"ਕਾਲਿੰਗ ਖਾਤੇ"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"ਚਾਲੂ ਕਰੋ"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ਅਨੁਮਤੀਆਂ ਸੈੱਟ ਕਰੋ"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"ਸਪੀਡ ਡਾਇਲ ਨੂੰ ਸਮਰੱਥ ਕਰਨ ਲਈ, ਸੰਪਰਕ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"ਆਪਣਾ ਕਾਲ ਲੌਗ ਵੇਖਣ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਨੂੰ ਵੇਖਣ ਲਈ, ਸੰਪਰਕ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"ਆਪਣੀ ਵੌਇਸਮੇਲ ਐਕਸੈਸ ਕਰਨ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਦੀ ਖੋਜ ਕਰਨ ਲਈ,, ਸੰਪਰਕ ਅਨੁਮਤੀਆਂ ਨੂੰ ਚਾਲੂ ਕਰੋ।"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"ਕਾਲ ਕਰਨ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
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 8f57a82..76adfe5 100644
--- a/java/com/android/dialer/app/res/values-pl/strings.xml
+++ b/java/com/android/dialer/app/res/values-pl/strings.xml
@@ -87,10 +87,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Wróć do aktywnego połączenia"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj połączenie"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Połączenia przychodzące"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Włączono tryb działań zbiorczych"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Wyłączono tryb działań zbiorczych"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Wybrano: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Anulowano wybór: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Odtwórz pocztę głosową"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Wyświetl kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Zadzwoń do: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -105,13 +101,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Poczta głosowa"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Anuluj tryb działań zbiorczych"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"wiadomości głosowe"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"wiadomości głosowe"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Tak"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nie"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Usunąć wybrane <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Wybrane: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> o <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -124,6 +118,7 @@
     <string name="meid" msgid="3333779521535224028">"Numer MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Wczytuję z karty SIM…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakty z karty SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Nie jest dostępna aplikacja do obsługi kontaktów"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Wyszukiwanie głosowe jest niedostępne"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Nie można zadzwonić, ponieważ aplikacja Telefon została wyłączona."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Przeszukuj kontakty"</string>
@@ -152,9 +147,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Nowe nieodebrane połączenia: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Lista szybkiego wybierania jest pusta"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodaj do ulubionych"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Nie masz jeszcze żadnych kontaktów"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodaj kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Kliknij obraz, by zobaczyć wszystkie numery, lub kliknij go i przytrzymaj, by zmienić kolejność"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Usuń"</string>
-    <string name="select_all" msgid="408601760696146245">"Zaznacz wszystkie"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Rozmowa wideo"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Wyślij wiadomość"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Szczegóły połączenia"</string>
@@ -221,9 +217,11 @@
     <string name="block_list" msgid="4701585783411870782">"Zablokowane numery"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Numer <xliff:g id="NUMBER">%1$s</xliff:g> jest już zablokowany."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Konta telefoniczne"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Włącz"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ustaw uprawnienia"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Aby włączyć szybkie wybieranie, włącz uprawnienie Kontakty."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Aby zobaczyć swój rejestr połączeń, włącz uprawnienie Telefon."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Aby zobaczyć swoje kontakty, włącz uprawnienie Kontakty."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Aby uzyskać dostęp do poczty głosowej, włącz uprawnienie Telefon."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Aby wyszukać kontakty, włącz uprawnienia Kontakty."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Aby nawiązać połączenie, włącz uprawnienie Telefon."</string>
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 eb61923..780ca07 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
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Retornar para a chamada em espera"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Ad. cham."</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Chamadas recebidas"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando no modo de ação em massa"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saindo do modo de ação em massa"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> selecionado"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> não selecionado"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Reproduzir mensagem de voz"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Visualizar contato <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Ligar para <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Correio de voz"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> seg"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> m <xliff:g id="SECONDS">%s</xliff:g> s"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar modo de ações em lote"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"correio de voz"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"correios de voz"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sim"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Não"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Excluir a seleção de <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Itens selecionados: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> às <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Carregando do cartão SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contatos do cartão SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Nenhum app de contatos disponível"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"A pesquisa por voz não está disponível"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Não é possível fazer uma chamada porque o app Telefone foi desativado."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pesquisar contatos"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> novas chamadas perdidas"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Ainda não há ninguém na sua discagem rápida"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Adicionar favorito"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Você ainda não tem contatos"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Adicionar um contato"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Toque na imagem para ver todos os números ou toque e segure para reordenar"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Remover"</string>
-    <string name="select_all" msgid="408601760696146245">"Selecionar tudo"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videochamada"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar uma mensagem"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detalhes da chamada"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"O número <xliff:g id="NUMBER">%1$s</xliff:g> já está bloqueado."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Contas de chamadas"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Ativar"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Definir permissões"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Para ativar a discagem rápida, ative a permissão para o app Contatos."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Para ver seu registro de chamadas, ative a permissão para o app Telefone."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver seus contatos, ative a permissão para o app Contatos."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Para acessar seu correio de voz, ative a permissão para o app Telefone."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Para pesquisar seus contatos, ative as permissões para \"Contatos\"."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Para fazer uma chamada, ative a permissão para o app Telefone."</string>
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 493f846..95fa75c 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
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Voltar à chamada em curso"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Adicionar chamada"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Chamadas recebidas"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"A entrar no modo de ação em massa…"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saiu do modo de ação em massa"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> selecionado"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> não selecionado"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Reproduzir mensagem de correio de voz"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Ver o contacto <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Ligar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Correio de voz"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> seg"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> seg."</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar modo de ações em lote"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"mensagem de correio de voz"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mensagens de correio de voz"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sim"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Não"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Pretende eliminar a(s) <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> selecionada(s)?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selecionada(s)"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> às <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"A carregar a partir do cartão SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contactos no cartão SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Não existe nenhuma aplicação de contactos disponível"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Pesquisa por voz não disponível"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Não é possível efetuar uma chamada porque a aplicação Telefone foi desativada."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pesquisar contactos"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> chamadas não atendidas novas"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Ainda não tem ninguém na marcação rápida"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Adicionar um favorito"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Ainda não tem nenhum contacto"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Adicionar um contacto"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Toque na imagem para ver todos os números ou toque sem soltar para reordenar"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Remover"</string>
-    <string name="select_all" msgid="408601760696146245">"Selecionar tudo"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videochamada"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar uma mensagem"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detalhes da chamada"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> já está bloqueado."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Contas de chamadas"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Ativar"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Definir autorizações"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Para ativar a marcação rápida, ative a autorização Contactos."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Para ver o registo de chamadas, ative a autorização Telemóvel."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver os seus contactos, ative a autorização Contactos."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Para aceder ao correio de voz, ative a autorização Telemóvel."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Para pesquisar os seus contactos, ative as autorizações Contactos."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Para efetuar uma chamada, ative a autorização Telemóvel."</string>
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 eb61923..780ca07 100644
--- a/java/com/android/dialer/app/res/values-pt/strings.xml
+++ b/java/com/android/dialer/app/res/values-pt/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Retornar para a chamada em espera"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Ad. cham."</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Chamadas recebidas"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando no modo de ação em massa"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saindo do modo de ação em massa"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> selecionado"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> não selecionado"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Reproduzir mensagem de voz"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Visualizar contato <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Ligar para <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Correio de voz"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> seg"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> m <xliff:g id="SECONDS">%s</xliff:g> s"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar modo de ações em lote"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"correio de voz"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"correios de voz"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sim"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Não"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Excluir a seleção de <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Itens selecionados: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> às <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Carregando do cartão SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contatos do cartão SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Nenhum app de contatos disponível"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"A pesquisa por voz não está disponível"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Não é possível fazer uma chamada porque o app Telefone foi desativado."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pesquisar contatos"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> novas chamadas perdidas"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Ainda não há ninguém na sua discagem rápida"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Adicionar favorito"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Você ainda não tem contatos"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Adicionar um contato"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Toque na imagem para ver todos os números ou toque e segure para reordenar"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Remover"</string>
-    <string name="select_all" msgid="408601760696146245">"Selecionar tudo"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videochamada"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar uma mensagem"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detalhes da chamada"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"O número <xliff:g id="NUMBER">%1$s</xliff:g> já está bloqueado."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Contas de chamadas"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Ativar"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Definir permissões"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Para ativar a discagem rápida, ative a permissão para o app Contatos."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Para ver seu registro de chamadas, ative a permissão para o app Telefone."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver seus contatos, ative a permissão para o app Contatos."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Para acessar seu correio de voz, ative a permissão para o app Telefone."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Para pesquisar seus contatos, ative as permissões para \"Contatos\"."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Para fazer uma chamada, ative a permissão para o app Telefone."</string>
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 93d0188..725ff4a 100644
--- a/java/com/android/dialer/app/res/values-ro/strings.xml
+++ b/java/com/android/dialer/app/res/values-ro/strings.xml
@@ -86,10 +86,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Reveniți la apelul în curs"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Adăugați un apel"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Apeluri de intrare"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Se intră în modul acțiune în bloc"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Ați ieșit din modul acțiune în bloc"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"S-a selectat <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"S-a deselectat <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Redați mesajul vocal"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Afișați persoana din agendă <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Apelați <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -104,13 +100,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Mesagerie vocală"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> secunde"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sec."</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Anulați modul de acțiuni în lot"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"mesagerie vocală"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mesaje vocale"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nu"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Ștergeți cele <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> selectate?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selectate"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> la <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -123,6 +117,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Se încarcă de pe cardul SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Persoanele din agendă de pe cardul SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Nu este disponibilă nicio aplicație pentru agendă"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Căutarea vocală nu este disponibilă"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Nu se poate efectua un apel telefonic, deoarece aplicația Telefon a fost dezactivată."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Căutați în Agendă"</string>
@@ -151,9 +146,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> apeluri nepreluate noi"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Nicio persoană de contact setată pentru apelarea rapidă"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Adăugați o persoană de contact preferată"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Nu aveți încă persoane de contact"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Adăugați o persoană de contact"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Atingeți imaginea pentru a vedea toate numerele sau atingeți lung pentru reordonare"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Eliminați"</string>
-    <string name="select_all" msgid="408601760696146245">"Selectați tot"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Apel video"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Trimiteți un mesaj"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detaliile apelului"</string>
@@ -219,9 +215,11 @@
     <string name="block_list" msgid="4701585783411870782">"Numere blocate"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> este deja blocat."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Conturi pentru apelare"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Activați"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Setați permisiunile"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Pentru a activa apelarea rapidă, activați permisiunea Agendă."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Pentru a vedea jurnalul de apeluri, activați permisiunea Telefon."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Pentru a vedea persoanele de contact, activați permisiunea Agendă."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Pentru a accesa mesageria vocală, activați permisiunea Telefon."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Pentru a căuta în persoanele de contact, activați permisiunea Agendă."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Pentru a apela, activați permisiunea Telefon."</string>
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 54278c4..557832b 100644
--- a/java/com/android/dialer/app/res/values-ru/strings.xml
+++ b/java/com/android/dialer/app/res/values-ru/strings.xml
@@ -87,10 +87,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Вернуться к текущему вызову"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Добавить вызов"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Входящие вызовы"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Вы вошли в режим массового действия"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Вы вышли из режима массового действия"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Выбран объект <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Выбор объекта <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> отменен"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Прослушать голосовую почту"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Просмотреть данные: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Вызов: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -105,13 +101,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Голосовая почта"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин. <xliff:g id="SECONDS">%s</xliff:g> сек."</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Отмена режима массового действия"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"голосовое сообщение"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"голосовые сообщения"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Да"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Нет"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Удалить <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Выбрано: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> в <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -124,6 +118,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Загрузка с SIM-карты…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Контакты на SIM-карте"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Нет приложения для работы с контактами"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Голосовой поиск недоступен"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Нельзя совершать телефонные звонки, поскольку приложение \"Телефон\" отключено."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Поиск в контактах"</string>
@@ -152,9 +147,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Пропущенных вызовов: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Нет номеров для быстрого набора"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Настроить быстрый набор"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Нет контактов"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Добавить контакт"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Коснитесь изображения, чтобы увидеть все номера, или нажмите и удерживайте, чтобы изменить порядок"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Удалить"</string>
-    <string name="select_all" msgid="408601760696146245">"Выбрать все"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Видеовстреча"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Отправить сообщение"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Сведения о вызове"</string>
@@ -221,9 +217,11 @@
     <string name="block_list" msgid="4701585783411870782">"Заблокированные номера"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> уже заблокирован."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Аккаунты для звонков"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Включить"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Задать разрешения"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Чтобы настроить быстрый набор, предоставьте приложению разрешение \"Контакты\"."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Чтобы открыть список вызовов, предоставьте приложению разрешение \"Телефон\"."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Чтобы открыть список контактов, предоставьте приложению разрешение \"Контакты\"."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Чтобы получить доступ к голосовой почте, предоставьте приложению разрешение \"Телефон\"."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Для поиска контактов включите разрешение \"Контакты\"."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Чтобы позвонить, предоставьте приложению разрешение \"Телефон\"."</string>
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 6363457..329d89e 100644
--- a/java/com/android/dialer/app/res/values-si/strings.xml
+++ b/java/com/android/dialer/app/res/values-si/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"පවතින ඇමතුමට නැවත යන්න"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ඇමතුමක් එක් කරන්න"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"එන ඇමතුම්"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"තොග ක්‍රියා ප්‍රකාරය ඇතුළු කරමින්"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"තොග ක්‍රියා ප්‍රකාරය හැර යන ලදී"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> තෝරා ගන්නා ලදී"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> තෝරා ගැනීම ඉවත් කරන ලදී"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"හඬ තැපෑල ධාවනය කිරීම"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> සම්බන්ධතාවය බලන්න"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> අමතන්න"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"හඬ තැපෑල"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"තත් <xliff:g id="SECONDS">%s</xliff:g>"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"මිනි <xliff:g id="MINUTES">%s</xliff:g> තත් <xliff:g id="SECONDS">%s</xliff:g>"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"කාණ්ඩ ක්‍රියා ප්‍රකාරය අවලංගු කරන්න"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"හඬ තැපෑල"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"හඬ තැපැල්"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ඔව්"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"නැත"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"තෝරා ගත් <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> මකන්නද?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> තෝරා ගන්නා ලදි"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> දින <xliff:g id="TIME">%2$s</xliff:g>ට"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM පතෙන් පූරණය කරමින්…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM පත් සම්බන්ධතා"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"සබඳතා යෙදුමක් ලබාගත නොහැකිය"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"හඬ සෙවුම ලබාගත නොහැකිය"</string>
     <string name="call_not_available" msgid="7850148370757361155">"දුරකථන යෙදුම අබල කර ඇති නිසා දුරකථන ඇමතුම ලබාගැනීම කළ නොහැක."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"සම්බන්ධතා සෙවීම"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"නව මඟ හැරුණු ඇමතුම් <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"ඔබගේ වේග ඩයල් එකේ තවමත් කවුරුවත් නැහැ"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ප්‍රියතම ලෙස එක් කරන්න"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"ඔබ තවමත් සම්බන්ධතා නැහැ"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"සම්බන්ධතාවයක් එක් කරන්න"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"සියලු අංක බැලීමට රූපය ස්පර්ශ කරන්න නැතහොත් නැවත අනුපිළිවෙළට සැකසීමට ස්පර්ශ කර අල්ලාගෙන සිටින්න"</string>
     <string name="remove_contact" msgid="2353580570488923668">"ඉවත් කරන්න"</string>
-    <string name="select_all" msgid="408601760696146245">"සියල්ල තෝරන්න"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"වීඩියෝ ඇමතුම"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"පණිවිඩයක් යවන්න"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"ඇමතුම් විස්තර"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"අවහිර කළ අංක"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> දැනටමත් අවහිර කර ඇත."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"ගිණුම් ඇමතීම"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"ක්‍රියාත්මක කරන්න"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"අවසර සකසන්න"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"වේග ඩයල් කිරීම සබල කිරීමට, සම්බන්ධතා අවසරය ක්‍රියාත්මක කරන්න."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"ඔබේ ඇමතුම් ලොගය බැලීමට, දුරකථන අවසරය ක්‍රියාත්මක කරන්න."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"ඔබේ සම්බන්ධතා බැලීමට, සම්බන්ධතා අවසරය ක්‍රියාත්මක කරන්න."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"ඔබේ හඬ තැපෑල වෙත ප්‍රවේශ වීමට, දුරකථන අවසරය ක්‍රියාත්මක කරන්න."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"ඔබේ සම්බන්ධතා සෙවීමට, සම්බන්ධතා අවසර ක්‍රියාත්මක කරන්න."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"ඇමතුමක් ලබා ගැනීමට, දුරකථන අවසරය ක්‍රියාත්මක කරන්න."</string>
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 f7bf423..60b63d5 100644
--- a/java/com/android/dialer/app/res/values-sk/strings.xml
+++ b/java/com/android/dialer/app/res/values-sk/strings.xml
@@ -87,10 +87,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Návrat k prebiehajúcemu hovoru"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Pridať hovor"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Prichádzajúce hovory"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Vstupuje sa do režimu hromadných akcií"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Odišli ste z režimu hromadných akcií"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Položka <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> bola vybraná"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Výber položky <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> bol zrušený"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Prehrať hlasovú správu"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Zobraziť kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Zavolať kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -105,13 +101,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Hlasová schránka"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> s"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Zrušiť režim hromadných akcií"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"hlasová správa"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"hlasové správy"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Áno"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nie"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Chcete odstrániť vybraté položky (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Vybraté: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> o <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -124,6 +118,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Prebieha načítavanie z SIM karty..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakty na SIM karte"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Nie je k dispozícii žiadna aplikácia na kontakty"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Hlasové vyhľadávanie nie je k dispozícii"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Nie je možné volať, pretože aplikácia Telefón bola deaktivovaná."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Hľadať v kontaktoch"</string>
@@ -152,9 +147,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Nové zmeškané hovory: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"V rýchlej voľbe zatiaľ nemáte žiadny kontakt"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Pridať obľúbený kontakt"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Zatiaľ nemáte žiadne kontakty"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Pridať kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Klepnutím na obrázok môžete zobraziť všetky čísla. Pridržaním obrázka môžete zmeniť poradie."</string>
     <string name="remove_contact" msgid="2353580570488923668">"Odstrániť"</string>
-    <string name="select_all" msgid="408601760696146245">"Vybrať všetko"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videohovor"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Odoslať správu"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Podrobnosti hovoru"</string>
@@ -221,9 +217,11 @@
     <string name="block_list" msgid="4701585783411870782">"Blokované čísla"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> je už blokované."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Telefónne účty"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Zapnúť"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Nastaviť povolenia"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Ak chcete aktivovať rýchlu voľbu, zapnite povolenie Kontakty."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Ak si chcete zobraziť denník hovorov, zapnite povolenie Telefón."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Ak si chcete zobraziť kontakty, zapnite povolenie Kontakty."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Ak chcete používať hlasovú schránku, zapnite povolenie Telefón."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Ak chcete hľadať kontakty, zapnite povolenie Kontakty."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Ak chcete volať, zapnite povolenie Telefón."</string>
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 d3c57dd..b46b99a 100644
--- a/java/com/android/dialer/app/res/values-sl/strings.xml
+++ b/java/com/android/dialer/app/res/values-sl/strings.xml
@@ -87,10 +87,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Nazaj na klic, ki poteka"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj klic"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Dohodni klici"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Prehod v način množičnega dejanja"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Prehod iz načina množičnega dejanja"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Izbrano: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Preklican izbor: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Predvajanje sporočil glasovne pošte"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Ogled stika <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Pokliči <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -105,13 +101,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Glasovna pošta"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Prekliči način množičnega dejanja"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"sporočilo v odzivniku"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"sporočila v odzivniku"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Želite izbrisati <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Št. izbranih: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ob <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -124,6 +118,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Nalaganje s kartice SIM ..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Stiki na kartici SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Ni aplikacije za stike"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Glasovno iskanje ni na voljo"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Ni mogoče opraviti telefonskega klica, ker je aplikacija Telefon onemogočena."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Iskanje stikov"</string>
@@ -152,9 +147,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Št. novih zgrešenih klicev: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Na seznamu za hitro klicanje nimate še nikogar"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodajte priljubljenega"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Nimate še stikov"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodajte stik"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Dotaknite se slike, da prikažete vse številke, ali pa se je dotaknite in pridržite, da spremenite vrstni red."</string>
     <string name="remove_contact" msgid="2353580570488923668">"Odstrani"</string>
-    <string name="select_all" msgid="408601760696146245">"Izberi vse"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videoklic"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Pošljite sporočilo"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Podrobnosti klica"</string>
@@ -221,9 +217,11 @@
     <string name="block_list" msgid="4701585783411870782">"Blokirane številke"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Telefonska številka <xliff:g id="NUMBER">%1$s</xliff:g> je že blokirana."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Računi za klicanje"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Vklop"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Nastavi dovoljenja"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Če želite omogočiti hitro klicanje, vklopite dovoljenje za stike."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Če si želite ogledati dnevnik klicev, vklopite dovoljenje za telefon."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Če si želite ogledati stike, vklopite dovoljenje za stike."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Če želite dostopati do sporočil v odzivniku, vklopite dovoljenje za telefon."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Če želite iskati po stikih, vklopite dovoljenje za stike."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Če želite klicati, vklopite dovoljenje za telefon."</string>
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 8470445..6a274fc 100644
--- a/java/com/android/dialer/app/res/values-sq/strings.xml
+++ b/java/com/android/dialer/app/res/values-sq/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Kthehu te telefonata"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Shto një telefonatë"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Telefonatat hyrëse"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Po hyn në modalitetin e veprimit në masë"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"U largove nga modaliteti i veprimit në masë"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"U zgjodh <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Zgjedhja e <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> u anulua"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Luaj postën zanore"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Shiko kontaktin <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Telefono <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Posta zanore"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sekonda"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. e <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Anulo modalitetin e veprimeve në grup"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"posta zanore"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"postat zanore"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Po"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Jo"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Të fshihen <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> të zgjedhura?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> të zgjedhura"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> në <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Po ngarkon nga karta SIM…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontaktet e kartës SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Nuk mund të përdoret asnjë aplikacion për kontaktet"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Kërkimi me zë nuk mundësohet"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Telefonata nuk mund të bëhet sepse aplikacioni \"Telefoni\" është i çaktivizuar."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Kërko për kontakte"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> telefonata të reja të humbura"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Askush nuk është ende në thirrjen tënde të shpejtuar"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Shto një të preferuar"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Nuk ke ende kontakte"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Shto një kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Prek imazhin për të parë të gjithë numrat ose mbaje të shtypur për ta pozicionuar përsëri"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Hiq"</string>
-    <string name="select_all" msgid="408601760696146245">"Zgjidh të gjitha"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Telefonatë me video"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Dërgo një mesazh"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detajet e telefonatës"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Numrat e bllokuar"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> është i bllokuar tashmë."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Llogaritë e telefonatave"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktivizo"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Cakto lejet"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Për të aktivizuar thirrjen e shpejtuar, aktivizo lejen e Kontakteve."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Për të parë evidencën e telefonatave, aktivizo lejen e Telefonit."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Për të parë kontaktet, aktivizo lejen e Kontakteve."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Për të pasur qasje në postën zanore, aktivizo lejen e Telefonit."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Për të kërkuar kontaktet, aktivizo lejet e Kontakteve"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Për të kryer një telefonatë, aktivizo lejen e Telefonit."</string>
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 6cf7a7c..0def958 100644
--- a/java/com/android/dialer/app/res/values-sr/strings.xml
+++ b/java/com/android/dialer/app/res/values-sr/strings.xml
@@ -86,10 +86,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Врати се на позив који је у току"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Додај позив"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Долазни позиви"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Улазите у режим групних радњи"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Изашли сте из режима групних радњи"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Изабрано је <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Опозван је избор <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Пуштање говорне поште"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Прикажи контакт <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Позови <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -104,13 +100,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Говорна пошта"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин <xliff:g id="SECONDS">%s</xliff:g> сек"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Откажите режим групних радњи"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"говорну поруку"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"говорне поруке"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Да"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Не"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Желите ли да избришете изабрану(е) <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Изабраних: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> у <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -123,6 +117,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Учитава се са SIM картице…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Контакти на SIM картици"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Нема доступне апликације за контакте"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Гласовна претрага није доступна"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Није могуће упутити телефонски позив јер је апликација Телефон онемогућена."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Претражи контакте"</string>
@@ -151,9 +146,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Нових пропуштених позива: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Немате ниједан контакт на брзом бирању"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Додај омиљен контакт"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Још увек немате ниједан контакт"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Додај контакт"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Додирните слику да бисте видели све бројеве или додирните и задржите да бисте им променили распоред"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Уклони"</string>
-    <string name="select_all" msgid="408601760696146245">"Изабери све"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Видео позив"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Пошаљи поруку"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Детаљи позива"</string>
@@ -219,9 +215,11 @@
     <string name="block_list" msgid="4701585783411870782">"Блокирани бројеви"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> је већ блокиран."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Налози за позивање"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Укључи"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Подеси дозволе"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Да бисте омогућили брзо бирање, укључите дозволу за Контакте."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Да бисте видели евиденцију позива, укључите дозволу за Телефон."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Да бисте видели контакте, укључите дозволу за Контакте."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Да бисте приступили говорној пошти, укључите дозволу за Телефон."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Да бисте претражили контакте, укључите дозволе за Контакте."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Да бисте упутили позив, укључите дозволу за Телефон."</string>
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 71ef3e5..75aa731 100644
--- a/java/com/android/dialer/app/res/values-sv/strings.xml
+++ b/java/com/android/dialer/app/res/values-sv/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Återvänd till pågående samtal"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Lägg t. samt."</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Inkommande samtal"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Öppnar läget för massåtgärd"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Stängde läget för massåtgärd"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Markerade <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Avmarkerade <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Spela upp röstmeddelande"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Visa kontakten <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Ring <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Röstbrevlåda"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sekund"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Avbryt läget för massåtgärd"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"röstbrevlåda"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"röstmeddelanden"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nej"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vill du radera markerade <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> har markerats"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Läser in från SIM-kort…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakter från SIM-kort"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Det finns inga appar för kontakter"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Röstsökning är inte tillgänglig"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Det går inte att ringa eftersom appen Telefon har inaktiverats."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Sök efter kontakter"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nya missade samtal"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Du har ingen kontakt som snabbval ännu"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Lägg till en favorit"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Du har inga kontakter ännu"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Lägg till en kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Tryck på bilden för att visa alla nummer eller tryck länge för att ändra ordningen"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Ta bort"</string>
-    <string name="select_all" msgid="408601760696146245">"Markera alla"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videosamtal"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Skicka ett meddelande"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Samtalsinfo"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Blockerade nummer"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> är redan blockerat."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Konton för samtal"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktivera"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ange behörigheter"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Du måste aktivera behörigheten Kontakter för att kunna använda snabbuppringning."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Du måste aktivera behörigheten Telefon för att kunna visa samtalsloggen."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Du måste aktivera behörigheten Kontakter för att kunna visa kontakterna."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Du måste aktivera behörigheten Telefon för att kunna komma åt röstmeddelanden."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Aktivera behörigheter för Kontakter om du vill söka bland kontakterna."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Du måste aktivera behörigheten Telefon för att kunna ringa."</string>
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 9cbdd3e..d3b8392 100644
--- a/java/com/android/dialer/app/res/values-sw/strings.xml
+++ b/java/com/android/dialer/app/res/values-sw/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Rudi kwa simu inayoendelea"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Ongeza simu"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Simu zinazoingia"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Unaingia katika hali ya kutekeleza vitendo vingi"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Umeondoka katika hali ya kutekeleza vitendo vingi"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Umeteua <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Umebatilisha uteuzi wa <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Sikiliza ujumbe wa sauti"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Angalia anwani <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Pigia <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Ujumbe wa sauti"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"Sekunde <xliff:g id="SECONDS">%s</xliff:g>"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"Dak <xliff:g id="MINUTES">%s</xliff:g> sek <xliff:g id="SECONDS">%s</xliff:g>"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Ghairi hali ya kutekeleza vitendo vingi"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ujumbe wa sauti"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ujumbe wa sauti"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ndiyo"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Hapana"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Je, ungependa kufuta <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> uliochagua?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> zimechaguliwa"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> saa <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Inapakia kutoka SIM kadi..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Anwani za SIM kadi"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Hakuna programu za mawasiliano zinazopatikana"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Kutafuta kwa kutamka hakupatikani"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Haiwezi kupiga simu kwa sababu programu ya Simu imezimwa."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Tafuta anwani"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Simu <xliff:g id="NUMBER">%s</xliff:g> za karibuni ambazo hazikujibiwa"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Hakuna mtu aliye katika orodha yako ya watu unaowasiliana nao zaidi"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Ongeza anwani unazopenda zaidi"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Bado huna anwani zozote"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Ongeza anwani"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Gusa picha ili uone nambari zote ama uguse na kushikilia ili upange upya"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Ondoa"</string>
-    <string name="select_all" msgid="408601760696146245">"Chagua zote"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Hangout ya Video"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Tuma SMS"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Maelezo ya simu"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Nambari zilizozuiwa"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> tayari imezuiwa."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Akaunti za simu"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Washa"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Weka ruhusa"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Ili kuwasha kipengele cha unaowasiliana nao zaidi, washa ruhusa ya Anwani."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Ili uone rekodi yako ya nambari za simu, washa ruhusa ya Simu."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Ili uone anwani zako, washa ruhusa ya Anwani."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Ili ufikie ujumbe wako wa sauti, washa ruhusa ya Simu."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Ili utafute anwani zako, washa ruhusa za Anwani."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Ili upige simu, washa ruhusa ya Simu."</string>
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 a91088c..afb852b 100644
--- a/java/com/android/dialer/app/res/values-ta/strings.xml
+++ b/java/com/android/dialer/app/res/values-ta/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"செயலிலுள்ள அழைப்பிற்குத் திரும்பு"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"அழைப்பைச் சேர்"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"உள்வரும் அழைப்புகள்"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"மொத்தச் செயல் பயன்முறையில் நுழைகிறீர்கள்"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"மொத்தச் செயல் பயன்முறையிலிருந்து வெளியேறிவிட்டீர்கள்"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"தேர்ந்தெடுத்த <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"தேர்வுநீக்கிய <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"குரலஞ்சலை இயக்கு"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> தொடர்பைக் காட்டு"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ஐ அழை"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"குரலஞ்சல்"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> வி"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> நிமிடம் <xliff:g id="SECONDS">%s</xliff:g> வினாடி"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"தொகுப்புச் செயல்கள் பயன்முறையை ரத்துசெய்யும்"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"குரலஞ்சல்"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"குரலஞ்சல்கள்"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ஆம்"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"வேண்டாம்"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"தேர்ந்தெடுத்த <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ஐ நீக்கவா?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> தேர்ந்தெடுக்கப்பட்டன"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> அன்று <xliff:g id="TIME">%2$s</xliff:g> மணிக்கு"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"சிம் கார்டிலிருந்து ஏற்றுகிறது…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"சிம் கார்டின் தொடர்புகள்"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"தொடர்புகள் பயன்பாடு எதுவுமில்லை"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"குரல் தேடல் இல்லை"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Phone பயன்பாடு முடக்கப்பட்டுள்ளதால், ஃபோன் அழைப்பைச் செய்ய முடியாது."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"தொடர்புகளைத் தேடு"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> புதிய தவறிய அழைப்புகள்"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"இன்னும் விரைவு டயலில் யாரையும் சேர்க்கவில்லை"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"முக்கியமானவர்களைச் சேர்"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"இதுவரை எந்தத் தொடர்புகளும் இல்லை"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ஒரு தொடர்பைச் சேர்க்கவும்"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"எல்லா எண்களையும் பார்க்க, படத்தைத் தொடவும் அல்லது மறுவரிசைப்படுத்த, தொட்டுப் பிடித்திருக்கவும்"</string>
     <string name="remove_contact" msgid="2353580570488923668">"அகற்று"</string>
-    <string name="select_all" msgid="408601760696146245">"அனைத்தையும் தேர்ந்தெடு"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"வீடியோ அழைப்பு"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"செய்தி அனுப்பவும்"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"அழைப்பு விவரங்கள்"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"தடுக்கப்பட்ட எண்கள்"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ஏற்கனவே தடுக்கப்பட்டுள்ளது."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"அழைப்பு கணக்குகள்"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"இயக்கு"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"அனுமதிகளை அமை"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"விரைவு டயலை இயக்க, தொடர்புகள் அனுமதியை இயக்கவும்."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"அழைப்புப் பதிவைப் பார்க்க, ஃபோன் அனுமதியை இயக்கவும்."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"தொடர்புகளைப் பார்க்க, தொடர்புகள் அனுமதியை இயக்கவும்."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"குரலஞ்சலை அணுக, ஃபோன் அனுமதியை இயக்கவும்."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"தொடர்புகளைத் தேட, தொடர்புகள் அனுமதிகளை இயக்கவும்."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"அழைக்க, ஃபோன் அனுமதியை இயக்கவும்."</string>
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 aecc1c4..ffc046f 100644
--- a/java/com/android/dialer/app/res/values-te/strings.xml
+++ b/java/com/android/dialer/app/res/values-te/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ప్రోగ్రెస్‌లో ఉన్న కాల్‌కు వెళ్లు"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"కాల్‌ను జోడించు"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"ఇన్‌కమింగ్ కాల్‌లు"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"బల్క్ చర్య మోడ్‌లోకి ప్రవేశిస్తున్నారు"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"బల్క్ చర్య మోడ్ నుండి నిష్క్రమించారు"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ఎంచుకోబడింది"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ఎంపిక తీసివేయబడింది"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"వాయిస్ మెయిల్ ప్లే చేయండి"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> పరిచయాన్ని వీక్షించండి"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g>కు కాల్ చేయి"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"వాయిస్ మెయిల్"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> సెక"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> నిమి <xliff:g id="SECONDS">%s</xliff:g> సెక"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"సమూహ చర్యల మోడ్‌ను రద్దు చేస్తుంది"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"వాయిస్ మెయిల్"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"వాయిస్ మెయిల్‌లు"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"అవును"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"వద్దు"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ఎంచుకున్న <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ను తొలగించాలా?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ఎంచుకోబడ్డాయి"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g>కి"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"సిమ్ కార్డు నుండి లోడ్ చేస్తోంది…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"సిమ్ కార్డు పరిచయాలు"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"పరిచయాల అనువర్తనం ఏదీ అందుబాటులో లేదు"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"వాయిస్ శోధన అందుబాటులో లేదు"</string>
     <string name="call_not_available" msgid="7850148370757361155">"ఫోన్ అనువర్తనం నిలిపివేయబడినందున ఫోన్ కాల్ చేయలేరు."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"పరిచయాలను శోధించు"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> కొత్త సమాధానం ఇవ్వని కాల్‌లు"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"మీ స్పీడ్ డయల్‌లో ఇంకా ఎవరూ లేరు"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ఇష్టమైన వారిని జోడించండి"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"మీకు ఇప్పటికీ పరిచయాలేవీ లేవు"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"పరిచయాన్ని జోడించండి"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"అన్ని నంబర్‌లను చూడటానికి చిత్రాన్ని తాకండి లేదా క్రమం మార్చడానికి తాకి, కాసేపు అలాగే ఉంచండి"</string>
     <string name="remove_contact" msgid="2353580570488923668">"తీసివేయి"</string>
-    <string name="select_all" msgid="408601760696146245">"అన్నీ ఎంచుకోండి"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"వీడియో కాల్"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"సందేశాన్ని పంపు"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"కాల్ వివరాలు"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"బ్లాక్ చేయబడిన నంబర్‌లు"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ఇప్పటికే బ్లాక్ చేయబడింది."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"కాల్ చేసే ఖాతాలు"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"ఆన్ చేయి"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"అనుమతులను సెట్ చేయి"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"స్పీడ్ డయల్‌ను ప్రారంభించడానికి, పరిచయాల అనుమతిని ఆన్ చేయండి."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"మీ కాల్ లాగ్‌ను చూడటానికి, ఫోన్ అనుమతిని ఆన్ చేయండి."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"మీ పరిచయాలను చూడటానికి, పరిచయాల అనుమతిని ఆన్ చేయండి."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"మీ వాయిస్ మెయిల్‌ను ప్రాప్యత చేయడానికి, ఫోన్ అనుమతిని ఆన్ చేయండి."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"మీ పరిచయాలను శోధించడానికి, పరిచయాల అనుమతులను ఆన్ చేయండి."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"కాల్ చేయడానికి, ఫోన్ అనుమతిని ఆన్ చేయండి."</string>
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 58507b4..13916a5 100644
--- a/java/com/android/dialer/app/res/values-th/strings.xml
+++ b/java/com/android/dialer/app/res/values-th/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"กลับไปคุยสายต่อ"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"เพิ่มการโทร"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"สายโทรเข้า"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"กำลังเข้าสู่โหมดการดำเนินการแบบกลุ่ม"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ออกจากโหมดการทำงานแบบกลุ่มแล้ว"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"เลือก <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> แล้ว"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"ยกเลิกการเลือก <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> แล้ว"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"เล่นข้อความเสียง"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"ดูรายชื่อติดต่อ <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"โทรหา <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"ข้อความเสียง"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> วินาที"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> นาที <xliff:g id="SECONDS">%s</xliff:g> วินาที"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"ยกเลิกโหมดการทำงานแบบกลุ่ม"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ข้อความเสียง"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ข้อความเสียง"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ใช่"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ไม่"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ลบ<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ที่เลือกหรือไม่"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"เลือกไว้ <xliff:g id="NUMBER">%1$s</xliff:g> รายการ"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"วันที่ <xliff:g id="DATE">%1$s</xliff:g> เวลา <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"กำลังโหลดจากซิมการ์ด…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"รายชื่อบนซิมการ์ด"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"ไม่มีแอปรายชื่อติดต่อที่พร้อมใช้งาน"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"การค้นหาด้วยเสียงไม่พร้อมใช้งาน"</string>
     <string name="call_not_available" msgid="7850148370757361155">"ไม่สามารถโทรศัพท์ได้เนื่องจากแอปพลิเคชันโทรศัพท์ถูกปิดใช้งาน"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"ค้นหารายชื่อติดต่อ"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"สายที่ไม่ได้รับใหม่ <xliff:g id="NUMBER">%s</xliff:g> สาย"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"ยังไม่ได้กำหนดผู้ใดในการโทรด่วน"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"เพิ่มรายการโปรด"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"คุณยังไม่มีรายชื่อติดต่อ"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"เพิ่มรายชื่อติดต่อ"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"แตะรูปภาพเพื่อดูหมายเลขทั้งหมด หรือแตะค้างไว้เพื่อจัดเรียงใหม่"</string>
     <string name="remove_contact" msgid="2353580570488923668">"ลบ"</string>
-    <string name="select_all" msgid="408601760696146245">"เลือกทั้งหมด"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"แฮงเอาท์วิดีโอ"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"ส่งข้อความ"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"รายละเอียดการโทร"</string>
@@ -205,7 +201,7 @@
     <string name="voicemail_settings_label" msgid="4594299554519920570">"ข้อความเสียง"</string>
     <string name="voicemail_settings_select_sim_title" msgid="129296966967476845">"เลือกซิมสำหรับการตั้งค่าข้อความเสียง"</string>
     <string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"การบล็อกสายเรียกเข้าปิดชั่วคราว"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"ระบบปิดใช้การบล็อกสายเรียกเข้าเนื่องจากคุณติดต่อบริการฉุกเฉินจากโทรศัพท์เครื่องนี้ภายใน 48 ชั่วโมงที่ผ่านมา ระบบจะเปิดใช้ฟีเจอร์นี้อีกครั้งโดยอัตโนมัติเมื่อครบ 48 ชั่วโมง"</string>
+    <string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"ระบบปิดใช้การบล็อกสายเรียกเข้าเนื่องจากคุณติดต่อบริการฉุกเฉินจากโทรศัพท์เครื่องนี้ภายใน 48 ชั่วโมงที่ผ่านมา ระบบจะเปิดใช้คุณลักษณะนี้อีกครั้งโดยอัตโนมัติเมื่อครบ 48 ชั่วโมง"</string>
     <string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"นำเข้าหมายเลข"</string>
     <string name="blocked_call_settings_import_description" msgid="1819412052545228965">"ก่อนหน้านี้คุณได้ทำเครื่องหมายว่าให้ส่งผู้โทรบางคนไปยังข้อความเสียงโดยอัตโนมัติผ่านแอปอื่นๆ"</string>
     <string name="blocked_call_settings_view_numbers_button" msgid="3332727948554356704">"ดูหมายเลข"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"หมายเลขที่ถูกบล็อก"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ถูกบล็อกอยู่แล้ว"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"บัญชีการโทร"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"เปิด"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ตั้งค่าสิทธิ์"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"หากต้องการเปิดใช้การโทรด่วน ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"หากต้องการดูประวัติการโทร ให้เปิดสิทธิ์เข้าถึงโทรศัพท์"</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"หากต้องการดูรายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"หากต้องการเข้าถึงข้อความเสียง ให้เปิดสิทธิ์เข้าถึงโทรศัพท์"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"หากต้องการค้นหารายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"หากต้องการโทรออก ให้เปิดสิทธิ์เข้าถึงโทรศัพท์"</string>
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 9a8157f..cc44cb5 100644
--- a/java/com/android/dialer/app/res/values-tl/strings.xml
+++ b/java/com/android/dialer/app/res/values-tl/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Bumalik sa kasalukuyang tawag"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Mag-add: tawag"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Mga paparating na tawag"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Pumapasok sa bulk action mode"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Umalis sa bulk action mode"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Napili <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Inalis sa pagkakapili <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"I-play ang voicemail"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Tingnan ang contact na si <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Tawagan si <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Voicemail"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Kanselahin ang batch actions mode"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mga voicemail"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Oo"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Hindi"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"I-delete ang napiling <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ang napili"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ng <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Naglo-load mula sa SIM card…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Mga contact sa SIM card"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Walang available na app ng mga contact"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Hindi available ang paghahanap gamit ang boses"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Hindi makagawa ng tawag sa telepono dahil naka-disable ang application na Telepono."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Maghanap ng mga contact"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> (na) bagong hindi nasagot na tawag"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Wala pang tao sa iyong speed dial"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Magdagdag ng paborito"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Wala ka pang sinumang mga contact"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Magdagdag ng contact"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Pindutin ang larawan upang makita ang lahat ng numero o pindutin nang matagal upang ayusing muli"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Alisin"</string>
-    <string name="select_all" msgid="408601760696146245">"Piliin lahat"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Mag-video call"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Magpadala ng mensahe"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Mga detalye ng tawag"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Mga naka-block na numero"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Naka-block na ang <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Account sa pagtawag"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"I-on"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Magtakda ng mga pahintulot"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Upang i-enable ang speed dial, i-on ang pahintulot ng Mga Contact."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Upang makita ang iyong log ng tawag, i-on ang pahintulot ng Telepono."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Upang makita ang iyong mga contact, i-on ang pahintulot ng Mga Contact."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Upang ma-access ang iyong voicemail, i-on ang pahintulot ng Telepono."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Upang hanapin ang iyong mga contact, i-on ang mga pahintulot sa Mga Contact."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Upang tumawag, i-on ang pahintulot ng Telepono."</string>
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 17bd664..2f6f704 100644
--- a/java/com/android/dialer/app/res/values-tr/strings.xml
+++ b/java/com/android/dialer/app/res/values-tr/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Çağrıya dön"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Çağrı ekle"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Gelen çağrılar"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Toplu işlem moduna giriliyor"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Toplu işlem modundan çıkıldı"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Seçildi: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Seçimi kaldırıldı: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Sesli mesajı oynat"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Kişiyi görüntüle: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Ara: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Sesli Mesaj"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sn."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> dk. <xliff:g id="SECONDS">%s</xliff:g> sn."</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Toplu işlemler modu iptal edilir"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"sesli mesaj"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"sesli mesajlar"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Evet"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Hayır"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Seçili <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> silinsin mi?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> öğe seçildi"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM karttan yükleniyor..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM kart kişileri"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Kullanılabilir rehber uygulaması yok"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Sesli arama kullanılamaz"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Telefon uygulaması devre dışı bırakıldığından telefon edilemiyor."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Kişilerde ara"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> yeni cevapsız çağrı"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Hızlı arama listenizde henüz kimse yok"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Favori ekle"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Henüz kayıtlı kişi yok"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Kişi ekle"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Tüm numaraları görmek için resme dokunun veya yeniden sıralamak için dokunup basılı tutun"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Kaldır"</string>
-    <string name="select_all" msgid="408601760696146245">"Tümünü seç"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Video görüşmesi"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"İleti gönder"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Çağrı ayrıntıları"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Engellenen numaralar"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> numaralı telefon zaten engellendi."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Çağrı hesapları"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Aç"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"İzinleri ayarla"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Hızlı aramayı etkinleştirmek için Kişiler iznini açın."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Çağrı günlüğünüzü görmek için Telefon iznini açın."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Kişilerinizi görmek için Kişiler iznini açın."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Sesli mesajınıza erişmek için Telefon iznini açın."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Kişilerinizde arama yapmak için Kişiler izinlerini açın."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Telefon etmek için Telefon iznini açın."</string>
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 a020a1f..9a79012 100644
--- a/java/com/android/dialer/app/res/values-uk/strings.xml
+++ b/java/com/android/dialer/app/res/values-uk/strings.xml
@@ -87,10 +87,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Повернутися до поточного виклику"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Додати виклик"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Вхідні виклики"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Перехід у режим масових дій"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Ви вийшли з режиму масових дій"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Вибрано користувача <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Скасовано вибір користувача <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Відтворити голосову пошту"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Переглянути контакт <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Набрати <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -105,13 +101,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Голосова пошта"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> с"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> хв <xliff:g id="SECONDS">%s</xliff:g> с"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Скасувати режим масових дій"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"голосова пошта"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"голосова пошта"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Так"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ні"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Видалити вибране (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Вибрано <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> о <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -124,6 +118,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Завантаж. із SIM-карти…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Контакти SIM-карти"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Немає додатка з контактами"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Голосовий пошук недоступний"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Не вдається здійснити дзвінок, оскільки додаток Телефон вимкнено."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Пошук контактів"</string>
@@ -152,9 +147,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Нових пропущених дзвінків: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Немає номерів для швидкого набору"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Додати номер"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Ще немає контактів"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Додати контакт"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Торкніться зображення, щоб побачити всі номери, або натисніть і утримуйте, щоб змінити порядок."</string>
     <string name="remove_contact" msgid="2353580570488923668">"Видалити"</string>
-    <string name="select_all" msgid="408601760696146245">"Вибрати все"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Відеодзвінок"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Надіслати повідомлення"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Деталі виклику"</string>
@@ -221,9 +217,11 @@
     <string name="block_list" msgid="4701585783411870782">"Заблоковані номери"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> уже заблоковано."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Обл. записи для дзвінків"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Увімкнути"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Налаштувати дозволи"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Щоб активувати швидкий набір, увімкніть дозвіл \"Контакти\"."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Щоб переглянути журнал викликів, увімкніть дозвіл \"Телефон\"."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Щоб переглянути контакти, увімкніть дозвіл \"Контакти\"."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Щоб користуватися голосовою поштою, увімкніть дозвіл \"Телефон\"."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Щоб шукати контакти, увімкніть дозвіл \"Контакти\"."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Щоб зателефонувати, увімкніть дозвіл \"Телефон\"."</string>
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 d696bd5..2519871 100644
--- a/java/com/android/dialer/app/res/values-ur/strings.xml
+++ b/java/com/android/dialer/app/res/values-ur/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"جاری کال پر واپس لوٹیں"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"کال شامل کریں"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"آنے والی کالیں"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"بلک کاروائی موڈ میں داخل ہو رہا ہے"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"بلک کاروائی موڈ چھوڑ دیا"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"منتخب کردہ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"غیر منتخب کردہ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"صوتی میل چلائیں"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"رابطہ <xliff:g id="NAME">%1$s</xliff:g> دیکھیں"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> کو کال کریں"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"صوتی میل"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> سیکنڈ"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> منٹ <xliff:g id="SECONDS">%s</xliff:g> سیکنڈ"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"بیچ کاروائی موڈ منسوخ کریں"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"صوتی میل"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"صوتی میلز"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ہاں"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"نہیں"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"منتخب کردہ <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> حذف کریں؟"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> منتخب کردہ"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> بوقت <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"‏SIM کارڈ سے لوڈ ہو رہا ہے…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"‏SIM کارڈ کے رابطے"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"رابطوں کی کوئی ایپ دستیاب نہیں ہے"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"صوتی تلاش دستیاب نہیں ہے"</string>
     <string name="call_not_available" msgid="7850148370757361155">"فون کال نہیں کی جا سکتی ہے کیونکہ فون ایپلیکیشن کو غیر فعال کر دیا گیا ہے۔"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"رابطے تلاش کریں"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> نئی چھوٹی ہوئی کالیں"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"آپ کے اسپیڈ ڈائل پر ابھی تک کوئی نہیں ہے"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ایک پسندیدہ شامل کریں"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"آپ کے پاس ابھی تک کوئی رابطے نہیں ہیں"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ایک رابطہ شامل کریں"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"سبھی نمبرز دیکھنے کیلئے تصویر ٹچ کریں یا دوبارہ ترتیب دینے کیلئے ٹچ کریں اور پکڑے رہیں"</string>
     <string name="remove_contact" msgid="2353580570488923668">"ہٹائیں"</string>
-    <string name="select_all" msgid="408601760696146245">"سبھی کو منتخب کریں"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"ویڈیو کال"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"پیغام بھیجیں"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"کال کی تفصیلات"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"مسدود کردہ نمبرز"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> پہلے ہی مسدود ہے۔"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"کالنگ اکاؤنٹس"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"آن کریں"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"اجازتیں طے کریں"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"اسپیڈ ڈائل کو فعال کرنے کیلئے رابطوں کی اجازت آن کریں۔"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"اپنا کال لاگ دیکھنے کیلئے فون کی اجازت آن کریں۔"</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"اپنے رابطے دیکھنے کیلئے رابطوں کی اجازت آن کریں۔"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"اپنی صوتی میل تک رسائی کیلئے فون کی اجازت آن کریں۔"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"اپنے رابطوں کو تلاش کرنے کیلئے رابطوں کی اجازتیں آن کریں۔"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"کال کرنے کیلئے فون کی اجازت آن کریں۔"</string>
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 aa645bf..705cae7 100644
--- a/java/com/android/dialer/app/res/values-uz/strings.xml
+++ b/java/com/android/dialer/app/res/values-uz/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Amaldagi chaqiruvga qaytish"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Chaqiruv qo‘shish"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Kiruvchi qo‘ng‘iroqlar"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Yoppasiga bajariladigan amallar rejimiga o‘tilmoqda"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Yoppasiga bajariladigan amallar rejimidan chiqib ketildi"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> tanlandi"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> tanlovi bekor qilindi"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Ovozli xabarni eshitish"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> kontaktini ko‘rish"</string>
     <string name="description_call" msgid="1532402285334775372">"Qo‘ng‘iroq: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Ovozli pochta"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> soniya"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> daq <xliff:g id="SECONDS">%s</xliff:g> son"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Yoppasiga bajariladigan amallar rejimini bekor qilish"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ovozli xabar"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ovozli xabarlar"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ha"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Yo‘q"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Tanlangan <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> o‘chirib tashlansinmi?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Tanlandi: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM kartadan yuklanmoqda…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM karta kontaktlari"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Hech qanday kontakt ilovasi yo‘q"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Ovozli qidiruv mavjud emas"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Telefon ilovasi o‘chirib qo‘yilgani sababli telefon qo‘ng‘iroqlarini amalga oshirib bo‘lmaydi."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Kontaktlar ichidan qidirish"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ta javobsiz chaqiruv"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Tezkor terish uchun hech kim yo‘q"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Tezkor raqam terishni sozlang"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Sizda hali hech qanday kontakt yo‘q"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Yangi kontakt qo‘shing"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Barcha raqamlarni ko‘rish uchun rasm ustiga bosing yoki joyini o‘zgartirish uchun rasmni bosib turing."</string>
     <string name="remove_contact" msgid="2353580570488923668">"O‘chirish"</string>
-    <string name="select_all" msgid="408601760696146245">"Hammasini tanlash"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Video qo‘ng‘iroq"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Xabar yuborish"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Chaqiruv tafsilotlari"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Bloklangan raqamlar"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> raqami allaqachon bloklangan."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Chaqiruv uchun hisoblar"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Yoqish"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ruxsatnomalarni sozlash"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Tezkor raqam terish uchun “Kontaktlar” ruxsatnomasini yoqing."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Qo‘ng‘iroqlaringiz ro‘yxatini ko‘rish uchun “Telefon” ruxsatnomasini yoqing."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Kontaktlaringizni ko‘rish uchun “Kontaktlar” ruxsatnomasini yoqing."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Ovozli pochtaga kirish uchun “Telefon” ruxsatnomasini yoqing."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Kontaktlarni qidirish uchun “Kontaktlar” ruxsatnomasini yoqing."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Qo‘ng‘iroq qilish uchun “Telefon” ruxsatnomasini yoqing."</string>
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 dda7c15..5a60e0a 100644
--- a/java/com/android/dialer/app/res/values-vi/strings.xml
+++ b/java/com/android/dialer/app/res/values-vi/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Quay lại cuộc gọi đang thực hiện"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Thêm cuộc gọi"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Cuộc gọi đến"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Truy cập chế độ tác vụ hàng loạt"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Đã rời khỏi chế độ tác vụ hàng loạt"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Đã chọn <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Đã bỏ chọn <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Phát thư thoại"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Xem thông tin liên hệ của <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Gọi <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Thư thoại"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> giây"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> phút <xliff:g id="SECONDS">%s</xliff:g> giây"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Hủy chế độ tác vụ hàng loạt"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"thư thoại"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"thư thoại"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Có"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Không"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Xóa <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> đã chọn?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Đã chọn <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> lúc <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Đang tải từ thẻ SIM…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Danh bạ trên thẻ SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Không có ứng dụng danh bạ"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Không có tính năng tìm kiếm bằng giọng nói"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Không thể thực hiện cuộc gọi điện thoại vì ứng dụng Điện thoại đã bị tắt."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Tìm kiếm trong danh bạ"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> cuộc gọi nhỡ mới"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Chưa có ai trong danh bạ quay số nhanh của bạn"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Thêm liên hệ quay số nhanh yêu thích"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Bạn chưa có bất kỳ liên hệ nào"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Thêm liên hệ"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Chạm vào hình ảnh để xem tất cả các số hoặc chạm và giữ để sắp xếp lại"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Xóa"</string>
-    <string name="select_all" msgid="408601760696146245">"Chọn tất cả"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Cuộc gọi điện video"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Gửi tin nhắn"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Chi tiết cuộc gọi"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Số bị chặn"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> đã bị chặn."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Tài khoản gọi"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Bật"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Đặt quyền"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Để bật quay số nhanh, bật quyền đối với Danh bạ."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Để xem nhật ký cuộc gọi của bạn, bật quyền đối với Điện thoại."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Để xem danh bạ của bạn, bật quyền đối với Danh bạ."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Để truy cập thư thoại của bạn, bật quyền đối với Điện thoại."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Để tìm kiếm liên hệ của bạn, hãy bật quyền đối với Danh bạ."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Để thực hiện cuộc gọi, bật quyền đối với Điện thoại."</string>
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 672614e..98abc39 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
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"返回正在进行的通话"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"添加通话"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"来电"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"正在进入批量操作模式"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"已退出批量操作模式"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"已选择 <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"已取消选择 <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"播放语音邮件"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"查看联系人<xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"呼叫<xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"语音信箱"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> 分钟 <xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"取消批量操作模式"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"语音邮件"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"语音邮件"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"是"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"否"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"要删除所选的<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>吗？"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"已选择 <xliff:g id="NUMBER">%1$s</xliff:g> 封"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g><xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"正从 SIM 卡中加载..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM卡联系人"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"没有可用的通讯录应用"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"无法使用语音搜索"</string>
     <string name="call_not_available" msgid="7850148370757361155">"“电话”应用已被停用，因此无法拨打电话。"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"搜索联系人"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g>个新的未接电话"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"尚未给任何联系人设定快速拨号"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"添加常用联系人"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"您还没有任何联系人"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"添加联系人"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"触摸图片可查看所有号码，触摸并按住可重新排序"</string>
     <string name="remove_contact" msgid="2353580570488923668">"移除"</string>
-    <string name="select_all" msgid="408601760696146245">"全选"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"视频通话"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"发送短信"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"通话详情"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"已屏蔽的号码"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> 已被屏蔽。"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"通话帐号"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"开启"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"设置权限"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"要启用快速拨号功能，请开启“通讯录”权限。"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"要查看您的通话记录，请开启“电话”权限。"</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"要查看您的联系人，请开启“通讯录”权限。"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"要使用您的语音信箱，请开启“电话”权限。"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"要搜索您的联系人，请开启“通讯录”权限。"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"要拨打电话，请开启“电话”权限。"</string>
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 f3dc44b..2a96ce0 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
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"返回進行中的通話"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"新增通話"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"來電"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"正在進入大量操作模式"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"已離開大量操作模式"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"已選取<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"已取消選取<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"播放語音留言"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"查看聯絡人<xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"打電話給<xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"留言"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> 分 <xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"取消批量操作模式"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"留言"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"留言"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"是"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"否"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"要刪除所選的<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>嗎？"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"已選取 <xliff:g id="NUMBER">%1$s</xliff:g> 個"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g><xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"正在從 SIM 卡載入..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM 卡聯絡人"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"沒有可用的聯絡人應用程式"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"無法使用語音搜尋"</string>
     <string name="call_not_available" msgid="7850148370757361155">"由於「電話」應用程式已停用，因此無法打電話。"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"搜尋聯絡人"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> 個新的未接來電"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"快速撥號名單中沒有聯絡人"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"新增常用聯絡人"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"暫時沒有聯絡人"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"新增聯絡人"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"輕觸圖片以查看所有電話號碼，或輕觸並按住圖片以重新排序"</string>
     <string name="remove_contact" msgid="2353580570488923668">"移除"</string>
-    <string name="select_all" msgid="408601760696146245">"全選"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"視像通話"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"傳送訊息"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"通話詳情"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"已封鎖的號碼"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"已封鎖 <xliff:g id="NUMBER">%1$s</xliff:g>。"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"通話帳戶"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"開放權限"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"設定權限"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"如要啟用快速撥號功能，請開放「通訊錄」權限。"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"如要查看通話記錄，請開放「手機」權限。"</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"如要查看聯絡人，請開放「通訊錄」權限。"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"如要存取留言信箱，請開放「手機」權限。"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"如要搜尋聯絡人，請開啟「通訊錄」權限。"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"如要撥打電話，請開放「手機」權限。"</string>
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 473955c..9174521 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
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"返回進行中的通話"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"新增通話"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"來電"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"已進入大量操作模式"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"已離開大量操作模式"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"已選取：<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"已取消選取：<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"播放語音留言"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"查看聯絡人<xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"撥電話給<xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"語音留言"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> 分 <xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"取消批次操作模式"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"語音留言"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"語音留言"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"是"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"否"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"要刪除選取的<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>嗎？"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"已選取 <xliff:g id="NUMBER">%1$s</xliff:g> 個"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g><xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"從  SIM 卡讀取中…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM 卡聯絡人"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"沒有可用的聯絡人應用程式"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"無法使用語音搜尋"</string>
     <string name="call_not_available" msgid="7850148370757361155">"「電話」應用程式已遭停用，因此無法撥打電話。"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"搜尋聯絡人"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> 通新的未接來電"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"您的快速撥號功能尚未設定任何聯絡人"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"新增常用聯絡人"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"您尚未加入任何聯絡人"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"新增聯絡人"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"輕觸圖片即可查看所有號碼，按住則可重新排序"</string>
     <string name="remove_contact" msgid="2353580570488923668">"移除"</string>
-    <string name="select_all" msgid="408601760696146245">"全選"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"視訊通話"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"傳送簡訊"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"通話詳細資料"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"已封鎖的號碼"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> 已在封鎖清單中。"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"通話帳戶"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"開啟"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"設定權限"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"如要啟用快速撥號，請開啟「聯絡人」存取權限。"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"如要查看您的通話紀錄，請開啟「電話」存取權限。"</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"如要查看您的聯絡人，請開啟「聯絡人」存取權限。"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"如要存取您的語音信箱，請開啟「電話」存取權限。"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"如要搜尋您的聯絡人，請開啟「聯絡人」存取權限。"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"如要撥打電話，請開啟「電話」存取權限。"</string>
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 93843aa..9c8a6b8 100644
--- a/java/com/android/dialer/app/res/values-zu/strings.xml
+++ b/java/com/android/dialer/app/res/values-zu/strings.xml
@@ -85,10 +85,6 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Buyela kukholi eqhubekayo"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Yengeza ikholi"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Amakholi angenayo"</string>
-    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Kungenwa kumodi yesenzo senqwaba"</string>
-    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Ishiye imodi yesenzo senqwaba"</string>
-    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Kukhethwe i-<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Akukhethiwe i-<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Dlala i-imeyli yezwi"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Bheka oxhumana naye <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Shayela <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,13 +99,11 @@
     <string name="voicemail" msgid="8899540969000957954">"Ivoyisimeyili"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> isekhondi"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> amaminithi <xliff:g id="SECONDS">%s</xliff:g> amasekhondi"</string>
-    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Khansela imodi lezenzo zeqoqo"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ivoyisimeyili"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ama-meyli ezwi"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yebo"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Cha"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Susa okukhethiwe <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
-    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Engu-<xliff:g id="NUMBER">%1$s</xliff:g> ekhethiwe"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ngo-<xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -122,6 +116,7 @@
     <string name="meid" msgid="3333779521535224028">"I-MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Ilayisha kusuka ekhadini le-SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Othintana nabo bekhadi le-SIM"</string>
+    <string name="add_contact_not_available" msgid="7065884447935173347">"Alukho uhlelo lokusebenza loxhumana nabo olutholakalayo"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Usesho lwezwi alutholakali"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Ayikwazi ukwenza ikholi yefoni ngoba uhlelo lokusebenza lwefoni likhutshaziwe."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Sesha othintana nabo"</string>
@@ -150,9 +145,10 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> amakholi amasha owaphuthelwe"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Akekho umuntu osekudayeleni kwakho okusheshayo okwamanje"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Engeza intandokazi"</string>
+    <string name="all_contacts_empty" msgid="243071567853617177">"Awunabo oxhumana nabo okwamanje"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Engeza oxhumana naye"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Thinta isithombe ukuze ubone zonke izinombolo noma thinta bese ubambe ukuze uhlele kabusha"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Susa"</string>
-    <string name="select_all" msgid="408601760696146245">"Khetha konke"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Ikholi yevidiyo"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Thumela umlayezo"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Imininingwane yekholi"</string>
@@ -217,9 +213,11 @@
     <string name="block_list" msgid="4701585783411870782">"Izinombolo ezivinjiwe"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> isivinjiwe kakade."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Ama-akhawunti wokushaya"</string>
+    <string name="permission_single_turn_on" msgid="8014796118294187894">"Vula"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Setha izimvume"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Nika amandla ukudayela okusheshayo, vula imvume yoxhumana nabo."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Ukuze ubone irekhodi lakho lamakholi, vuma imvume yefoni."</string>
+    <string name="permission_no_contacts" msgid="8995025765862026771">"Ukuze ubone oxhumana nabo, vula imvume yoxhumana nabo."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Ukuze ufinyelele ivoyisimeyili, vula imvume yefoni."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Ukuze useshe oxhumana nabo, vula izimvume zoxhumana nabo."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Ukuze ubeke ikholi, vula imvume yefoni."</string>
diff --git a/java/com/android/dialer/app/res/values/colors.xml b/java/com/android/dialer/app/res/values/colors.xml
index 2f6d87b..cf6b926 100644
--- a/java/com/android/dialer/app/res/values/colors.xml
+++ b/java/com/android/dialer/app/res/values/colors.xml
@@ -52,6 +52,8 @@
   <!-- Colour of voicemail progress bar to the left of position indicator. -->
   <color name="voicemail_playback_seek_bar_already_played">@color/dialer_theme_color</color>
 
+  <!-- Background color of new dialer activity -->
+  <color name="background_dialer_light">#fafafa</color>
   <!-- Background color for search results and call details -->
   <color name="background_dialer_results">#f9f9f9</color>
   <color name="background_dialer_call_log">@color/background_dialer_light</color>
@@ -67,6 +69,8 @@
   <!-- Undo dialogue color -->
   <color name="undo_dialogue_text_color">#4d4d4d</color>
 
+  <color name="empty_list_text_color">#b2b2b2</color>
+
   <color name="remove_text_color">#ffffff</color>
 
   <!-- Text color for the "Remove" text when a contact is dragged on top of the remove view -->
diff --git a/java/com/android/dialer/app/res/values/dimens.xml b/java/com/android/dialer/app/res/values/dimens.xml
index 57c43eb..7da29c7 100644
--- a/java/com/android/dialer/app/res/values/dimens.xml
+++ b/java/com/android/dialer/app/res/values/dimens.xml
@@ -105,6 +105,9 @@
   <!-- Length of dialpad's shadows in dialer. -->
   <dimen name="shadow_length">10dp</dimen>
 
+  <dimen name="empty_list_message_top_padding">20dp</dimen>
+  <dimen name="empty_list_message_text_size">16sp</dimen>
+
   <!-- Dimensions for individual preference cards -->
   <dimen name="preference_padding_top">16dp</dimen>
   <dimen name="preference_padding_bottom">16dp</dimen>
diff --git a/java/com/android/dialer/app/res/values/strings.xml b/java/com/android/dialer/app/res/values/strings.xml
index 6110601..9e1fdeb 100644
--- a/java/com/android/dialer/app/res/values/strings.xml
+++ b/java/com/android/dialer/app/res/values/strings.xml
@@ -279,34 +279,6 @@
   <!-- Description for incoming calls going to voice mail vs. not -->
   <string name="actionIncomingCall">Incoming calls</string>
 
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <string name="description_entering_bulk_action_mode">Entering bulk action mode</string>
-
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <string name="description_leaving_bulk_action_mode">Left bulk action mode</string>
-
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <string name="description_selecting_bulk_action_mode">Selected <xliff:g id="nameOrNumber">%1$s</xliff:g></string>
-
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <string name="description_unselecting_bulk_action_mode">Unselected <xliff:g id="nameOrNumber">%1$s</xliff:g></string>
-
   <!-- String describing the icon in the call log used to play a voicemail.
 
       Note: AccessibilityServices use this attribute to announce what the view represents.
@@ -390,19 +362,12 @@
   <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
   <string name="callDetailsDurationFormat"><xliff:g example="42" id="minutes">%s</xliff:g> min <xliff:g example="28" id="seconds">%s</xliff:g> sec</string>
 
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <string name="description_cancel_multi_select">Cancel batch actions mode</string>
-
   <string name="voicemailMultiSelectVoicemail">voicemail</string>
   <string name="voicemailMultiSelectVoicemails">voicemails</string>
   <string name="voicemailMultiSelectDeleteConfirm">Yes</string>
   <string name="voicemailMultiSelectDeleteCancel">No</string>
   <string name="voicemailMultiSelectDialogTitle">Delete selected <xliff:g id="voicemailorvoicemails">%1$s</xliff:g>?</string>
 
-  <string name="voicemailMultiSelectActionBarTitle"><xliff:g id="number">%1$s</xliff:g> selected</string>
-
   <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
        explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
        current day -->
@@ -446,6 +411,9 @@
   <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
   <string name="simContacts_title">SIM card contacts</string>
 
+  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
+  <string name="add_contact_not_available">No contacts app available</string>
+
   <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
   <string name="voice_search_not_available">Voice search not available</string>
 
@@ -546,6 +514,12 @@
   <!-- Shown as an action when there are no speed dial favorites -->
   <string name="speed_dial_empty_add_favorite_action">Add a favorite</string>
 
+  <!-- Shown when there are no contacts in the all contacts list. -->
+  <string name="all_contacts_empty">You don\'t have any contacts yet</string>
+
+  <!-- Shown as an action when the all contacts list is empty -->
+  <string name="all_contacts_empty_add_contact_action">Add a contact</string>
+
   <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
        card can be tapped to bring up a list of all numbers, or long pressed to start reordering
        [CHAR LIMIT=NONE]
@@ -555,9 +529,6 @@
   <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
   <string name="remove_contact">Remove</string>
 
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <string name="select_all">Select all</string>
-
   <!-- Button text for the "video call" displayed underneath an entry in the call log.
        Tapping causes a video call to be placed to the caller represented by the call log entry.
        [CHAR LIMIT=30] -->
@@ -583,7 +554,7 @@
         Call <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>
     </string>
 
-    <!-- String describing an incoming missed call entry in the call log.
+  <!-- String describing an incoming missed call entry in the call log.
        Note: AccessibilityServices uses this attribute to announce what the view represents.
        [CHAR LIMIT=NONE] -->
   <string name="description_incoming_missed_call">Missed call from <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>, <xliff:g example="Mobile" id="typeOrLocation">^2</xliff:g>, <xliff:g example="2 min ago" id="timeOfCall">^3</xliff:g>, <xliff:g example="on SIM 1" id="phoneAccount">^4</xliff:g>.</string>
@@ -870,6 +841,9 @@
   <!-- Internal key for DTMF tone length preference. -->
   <string name="dtmf_tone_length_preference_key" translatable="false">button_dtmf_settings</string>
 
+  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
+  <string name="permission_single_turn_on">Turn on</string>
+
   <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
   <string name="permission_multiple_turn_on">Set permissions</string>
 
@@ -879,6 +853,9 @@
   <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
   <string name="permission_no_calllog">To see your call log, turn on the Phone permission.</string>
 
+  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
+  <string name="permission_no_contacts">To see your contacts, turn on the Contacts permission.</string>
+
   <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
   <string name="permission_no_voicemail">To access your voicemail, turn on the Phone permission.</string>
 
diff --git a/java/com/android/dialer/app/res/values/styles.xml b/java/com/android/dialer/app/res/values/styles.xml
index 592f06d..7adf7ca 100644
--- a/java/com/android/dialer/app/res/values/styles.xml
+++ b/java/com/android/dialer/app/res/values/styles.xml
@@ -25,15 +25,13 @@
     <item name="windowActionModeOverlay">true</item>
     <item name="android:actionBarStyle">@style/DialtactsActionBarStyle</item>
     <item name="actionBarStyle">@style/DialtactsActionBarStyle</item>
-    <item name="actionModeStyle">@style/ActionModeStyle</item>
-    <item name="android:actionModeStyle">@style/ActionModeStyle</item>
-
 
     <item name="android:windowContentOverlay">@null</item>
     <item name="android:overlapAnchor">true</item>
-    <item name="android:homeAsUpIndicator">@drawable/quantum_ic_arrow_back_vd_theme_24</item>
+    <item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
 
     <item name="android:listViewStyle">@style/ListViewStyle</item>
+    <item name="section_header_background">@drawable/list_title_holo</item>
     <item name="list_section_header_height">32dip</item>
     <item name="list_item_padding_top">7dp</item>
     <item name="list_item_padding_right">24dp</item>
@@ -68,7 +66,7 @@
     <item name="android:textAppearanceButton">@style/DialerButtonTextStyle</item>
 
     <!-- Video call icon -->
-    <item name="list_item_video_call_icon_size">48dip</item>
+    <item name="list_item_video_call_icon_size">32dip</item>
     <item name="list_item_video_call_icon_margin">8dip</item>
 
     <item name="dialpad_style">@style/Dialpad.Light</item>
@@ -131,12 +129,6 @@
     <item name="contentInsetStart">@dimen/actionbar_contentInsetStart</item>
   </style>
 
-  <style name="ActionModeStyle" parent="Widget.AppCompat.ActionMode">
-    <item name="android:background">@color/actionbar_background_color</item>
-    <item name="background">@color/actionbar_background_color</item>
-    <item name="closeItemLayout">@layout/action_mode_close_button</item>
-  </style>
-
   <style name="DialtactsActionBarWithoutTitleStyle" parent="DialtactsActionBarStyle">
     <!-- Styles that require AppCompat compatibility, remember to update both sets -->
     <item name="android:displayOptions"></item>
diff --git a/java/com/android/dialer/app/res/xml/sound_settings.xml b/java/com/android/dialer/app/res/xml/sound_settings.xml
index d9afb74..796ed2e 100644
--- a/java/com/android/dialer/app/res/xml/sound_settings.xml
+++ b/java/com/android/dialer/app/res/xml/sound_settings.xml
@@ -25,13 +25,13 @@
     android:ringtoneType="ringtone"
     android:title="@string/ringtone_title"/>
 
-  <SwitchPreference
+  <CheckBoxPreference
     android:defaultValue="false"
     android:key="@string/vibrate_on_preference_key"
     android:persistent="false"
     android:title="@string/vibrate_on_ring_title"/>
 
-  <SwitchPreference
+  <CheckBoxPreference
     android:defaultValue="true"
     android:key="@string/play_dtmf_preference_key"
     android:persistent="false"
diff --git a/java/com/android/dialer/app/settings/AppCompatPreferenceActivity.java b/java/com/android/dialer/app/settings/AppCompatPreferenceActivity.java
index e8e4256..2c46438 100644
--- a/java/com/android/dialer/app/settings/AppCompatPreferenceActivity.java
+++ b/java/com/android/dialer/app/settings/AppCompatPreferenceActivity.java
@@ -18,6 +18,7 @@
 import android.content.res.Configuration;
 import android.os.Bundle;
 import android.preference.PreferenceActivity;
+import android.support.v7.app.ActionBar;
 import android.support.v7.app.AppCompatDelegate;
 import android.support.v7.widget.Toolbar;
 import android.view.MenuInflater;
@@ -48,6 +49,10 @@
     getDelegate().onPostCreate(savedInstanceState);
   }
 
+  public ActionBar getSupportActionBar() {
+    return getDelegate().getSupportActionBar();
+  }
+
   public void setSupportActionBar(Toolbar toolbar) {
     getDelegate().setSupportActionBar(toolbar);
   }
diff --git a/java/com/android/dialer/app/settings/DialerSettingsActivity.java b/java/com/android/dialer/app/settings/DialerSettingsActivity.java
index 6036c85..f1c270c 100644
--- a/java/com/android/dialer/app/settings/DialerSettingsActivity.java
+++ b/java/com/android/dialer/app/settings/DialerSettingsActivity.java
@@ -36,6 +36,7 @@
 import com.android.dialer.app.R;
 import com.android.dialer.blocking.FilteredNumberCompat;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.compat.CompatUtils;
 import com.android.dialer.proguard.UsedByReflection;
 import com.android.voicemail.VoicemailClient;
 import com.android.voicemail.VoicemailComponent;
@@ -82,12 +83,14 @@
     soundSettingsHeader.id = R.id.settings_header_sounds_and_vibration;
     target.add(soundSettingsHeader);
 
-    Header quickResponseSettingsHeader = new Header();
-    Intent quickResponseSettingsIntent =
-        new Intent(TelecomManager.ACTION_SHOW_RESPOND_VIA_SMS_SETTINGS);
-    quickResponseSettingsHeader.titleRes = R.string.respond_via_sms_setting_title;
-    quickResponseSettingsHeader.intent = quickResponseSettingsIntent;
-    target.add(quickResponseSettingsHeader);
+    if (CompatUtils.isMarshmallowCompatible()) {
+      Header quickResponseSettingsHeader = new Header();
+      Intent quickResponseSettingsIntent =
+          new Intent(TelecomManager.ACTION_SHOW_RESPOND_VIA_SMS_SETTINGS);
+      quickResponseSettingsHeader.titleRes = R.string.respond_via_sms_setting_title;
+      quickResponseSettingsHeader.intent = quickResponseSettingsIntent;
+      target.add(quickResponseSettingsHeader);
+    }
 
     TelephonyManager telephonyManager =
         (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
diff --git a/java/com/android/dialer/app/settings/SoundSettingsFragment.java b/java/com/android/dialer/app/settings/SoundSettingsFragment.java
index dcfb7a5..83ce453 100644
--- a/java/com/android/dialer/app/settings/SoundSettingsFragment.java
+++ b/java/com/android/dialer/app/settings/SoundSettingsFragment.java
@@ -23,11 +23,11 @@
 import android.os.Handler;
 import android.os.Message;
 import android.os.Vibrator;
+import android.preference.CheckBoxPreference;
 import android.preference.ListPreference;
 import android.preference.Preference;
 import android.preference.PreferenceFragment;
 import android.preference.PreferenceScreen;
-import android.preference.SwitchPreference;
 import android.provider.Settings;
 import android.telephony.CarrierConfigManager;
 import android.telephony.TelephonyManager;
@@ -68,8 +68,8 @@
           updateRingtonePreferenceSummary();
         }
       };
-  private SwitchPreference mVibrateWhenRinging;
-  private SwitchPreference mPlayDtmfTone;
+  private CheckBoxPreference mVibrateWhenRinging;
+  private CheckBoxPreference mPlayDtmfTone;
   private ListPreference mDtmfToneLength;
 
   @Override
@@ -87,9 +87,9 @@
 
     mRingtonePreference = findPreference(context.getString(R.string.ringtone_preference_key));
     mVibrateWhenRinging =
-        (SwitchPreference) findPreference(context.getString(R.string.vibrate_on_preference_key));
+        (CheckBoxPreference) findPreference(context.getString(R.string.vibrate_on_preference_key));
     mPlayDtmfTone =
-        (SwitchPreference) findPreference(context.getString(R.string.play_dtmf_preference_key));
+        (CheckBoxPreference) findPreference(context.getString(R.string.play_dtmf_preference_key));
     mDtmfToneLength =
         (ListPreference)
             findPreference(context.getString(R.string.dtmf_tone_length_preference_key));
diff --git a/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java b/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
index ffbae71..9d07ec5 100644
--- a/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
+++ b/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
@@ -43,15 +43,6 @@
 
   private static final String LEGACY_VOICEMAIL_COUNT = "legacy_voicemail_count";
 
-  /**
-   * Hidden extra for {@link TelephonyManager#ACTION_SHOW_VOICEMAIL_NOTIFICATION} for whether the
-   * notification is just a refresh or for a new voicemail. The phone should not play a ringtone or
-   * vibrate during a refresh if the notification is already showing.
-   *
-   * <p>TODO(b/62202833): make public
-   */
-  private static final String EXTRA_IS_REFRESH = "is_refresh";
-
   @Override
   public void onReceive(Context context, Intent intent) {
     LogUtil.i(
@@ -60,6 +51,7 @@
 
     PhoneAccountHandle phoneAccountHandle =
         Assert.isNotNull(intent.getParcelableExtra(TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE));
+
     int count = intent.getIntExtra(TelephonyManager.EXTRA_NOTIFICATION_COUNT, -1);
 
     if (!hasVoicemailCountChanged(context, phoneAccountHandle, count)) {
@@ -105,8 +97,7 @@
             count,
             voicemailNumber,
             callVoicemailIntent,
-            voicemailSettingIntent,
-            intent.getBooleanExtra(EXTRA_IS_REFRESH, false));
+            voicemailSettingIntent);
   }
 
   private static boolean hasVoicemailCountChanged(
diff --git a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
index 686e3e8..ea48c83 100644
--- a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
+++ b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
@@ -548,9 +548,7 @@
     mView.setClipPosition(mPosition, mDuration.get());
     mView.enableUiElements();
     mView.setSuccess();
-    if (!mp.isPlaying()) {
-      mMediaPlayer.seekTo(mPosition);
-    }
+    mMediaPlayer.seekTo(mPosition);
 
     if (mIsPlaying) {
       resumePlayback();
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-hi/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-hi/strings.xml
index fb1b186..bc9c463 100644
--- a/java/com/android/dialer/app/voicemail/error/res/values-hi/strings.xml
+++ b/java/com/android/dialer/app/voicemail/error/res/values-hi/strings.xml
@@ -55,7 +55,7 @@
     <string name="voicemail_action_set_pin" msgid="958510049866316228">"पिन सेट करें"</string>
     <string name="voicemail_action_retry" msgid="4450307484541052511">"पुन: प्रयास करें"</string>
     <string name="voicemail_action_turn_archive_on" msgid="6008444955560830591">"चालू करें"</string>
-    <string name="voicemail_action_dimiss" msgid="6018415798136796966">"रहने दें"</string>
+    <string name="voicemail_action_dimiss" msgid="6018415798136796966">"नहीं धन्यवाद"</string>
     <string name="voicemail_action_sync" msgid="5139315923415392787">"समन्वयित करें"</string>
     <string name="voicemail_action_call_voicemail" msgid="6701710720535556395">"वॉइसमेल को कॉल करें"</string>
     <string name="voicemail_action_call_customer_support" msgid="7698973007656462748">"ग्राहक सहायता को कॉल करें"</string>
diff --git a/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java b/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java
index 5846b1f..85fd5ec 100644
--- a/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java
+++ b/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java
@@ -21,7 +21,6 @@
 import android.widget.LinearLayout;
 import com.android.dialer.app.R;
 import com.android.dialer.util.OrientationUtil;
-import com.android.dialer.widget.EmptyContentView;
 
 /** Empty content view to be shown when dialpad is visible. */
 public class DialpadSearchEmptyContentView extends EmptyContentView {
diff --git a/java/com/android/dialer/widget/EmptyContentView.java b/java/com/android/dialer/app/widget/EmptyContentView.java
similarity index 87%
rename from java/com/android/dialer/widget/EmptyContentView.java
rename to java/com/android/dialer/app/widget/EmptyContentView.java
index a76ab98..cfc8665 100644
--- a/java/com/android/dialer/widget/EmptyContentView.java
+++ b/java/com/android/dialer/app/widget/EmptyContentView.java
@@ -14,16 +14,16 @@
  * limitations under the License.
  */
 
-package com.android.dialer.widget;
+package com.android.dialer.app.widget;
 
 import android.content.Context;
-import android.support.annotation.StringRes;
 import android.util.AttributeSet;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
+import com.android.dialer.app.R;
 
 public class EmptyContentView extends LinearLayout implements View.OnClickListener {
 
@@ -40,8 +40,6 @@
   private TextView mActionView;
   private OnEmptyViewActionButtonClickedListener mOnActionButtonClickedListener;
 
-  private @StringRes int actionLabel;
-
   public EmptyContentView(Context context) {
     this(context, null);
   }
@@ -60,9 +58,9 @@
 
     // Don't let touches fall through the empty view.
     setClickable(true);
-    mImageView = (ImageView) findViewById(R.id.empty_list_view_image);
-    mDescriptionView = (TextView) findViewById(R.id.empty_list_view_message);
-    mActionView = (TextView) findViewById(R.id.empty_list_view_action);
+    mImageView = (ImageView) findViewById(R.id.emptyListViewImage);
+    mDescriptionView = (TextView) findViewById(R.id.emptyListViewMessage);
+    mActionView = (TextView) findViewById(R.id.emptyListViewAction);
     mActionView.setOnClickListener(this);
   }
 
@@ -86,8 +84,7 @@
     }
   }
 
-  public void setActionLabel(@StringRes int resourceId) {
-    actionLabel = resourceId;
+  public void setActionLabel(int resourceId) {
     if (resourceId == NO_LABEL) {
       mActionView.setText(null);
       mActionView.setVisibility(View.GONE);
@@ -97,10 +94,6 @@
     }
   }
 
-  public @StringRes int getActionLabel() {
-    return actionLabel;
-  }
-
   public boolean isShowingContent() {
     return mImageView.getVisibility() == View.VISIBLE
         || mDescriptionView.getVisibility() == View.VISIBLE
@@ -124,4 +117,5 @@
         (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     inflater.inflate(R.layout.empty_content_view, this);
   }
+
 }
diff --git a/java/com/android/dialer/app/widget/SearchEditTextLayout.java b/java/com/android/dialer/app/widget/SearchEditTextLayout.java
index d67fd9e..f83c482 100644
--- a/java/com/android/dialer/app/widget/SearchEditTextLayout.java
+++ b/java/com/android/dialer/app/widget/SearchEditTextLayout.java
@@ -52,6 +52,7 @@
   private View mVoiceSearchButtonView;
   private View mOverflowButtonView;
   private View mBackButtonView;
+  private View mExpandedSearchBox;
   private View mClearButtonView;
 
   private ValueAnimator mAnimator;
@@ -89,27 +90,20 @@
     mVoiceSearchButtonView = findViewById(R.id.voice_search_button);
     mOverflowButtonView = findViewById(R.id.dialtacts_options_menu_button);
     mBackButtonView = findViewById(R.id.search_back_button);
-    mBackButtonView
-        .getResources()
-        .getDrawable(R.drawable.quantum_ic_arrow_back_vd_theme_24)
-        .setAutoMirrored(true);
+    mExpandedSearchBox = findViewById(R.id.search_box_expanded);
     mClearButtonView = findViewById(R.id.search_close_button);
 
-    // Convert a long click into a click to expand the search box. Touch events are also
-    // forwarded to the searchView. This accelerates the long-press scenario for copy/paste.
+    // Convert a long click into a click to expand the search box, and then long click on the
+    // search view. This accelerates the long-press scenario for copy/paste.
     mCollapsed.setOnLongClickListener(
         new OnLongClickListener() {
           @Override
           public boolean onLongClick(View view) {
             mCollapsed.performClick();
+            mSearchView.performLongClick();
             return false;
           }
         });
-    mCollapsed.setOnTouchListener(
-        (v, event) -> {
-          mSearchView.onTouchEvent(event);
-          return false;
-        });
 
     mSearchView.setOnFocusChangeListener(
         new OnFocusChangeListener() {
@@ -218,7 +212,7 @@
       AnimUtils.crossFadeViews(mExpanded, mCollapsed, ANIMATION_DURATION);
       mAnimator = ValueAnimator.ofFloat(EXPAND_MARGIN_FRACTION_START, 0f);
       setMargins(EXPAND_MARGIN_FRACTION_START);
-      prepareAnimator();
+      prepareAnimator(true);
     } else {
       mExpanded.setVisibility(View.VISIBLE);
       mExpanded.setAlpha(1);
@@ -247,7 +241,7 @@
     if (animate) {
       AnimUtils.crossFadeViews(mCollapsed, mExpanded, ANIMATION_DURATION);
       mAnimator = ValueAnimator.ofFloat(0f, 1f);
-      prepareAnimator();
+      prepareAnimator(false);
     } else {
       mCollapsed.setVisibility(View.VISIBLE);
       mCollapsed.setAlpha(1);
@@ -285,7 +279,7 @@
     }
   }
 
-  private void prepareAnimator() {
+  private void prepareAnimator(final boolean expand) {
     if (mAnimator != null) {
       mAnimator.cancel();
     }
diff --git a/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java b/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java
index bc0b39b..595401c 100644
--- a/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java
+++ b/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java
@@ -18,7 +18,6 @@
 
 import com.android.dialer.binary.basecomponent.BaseDialerRootComponent;
 import com.android.dialer.calllog.CallLogModule;
-import com.android.dialer.common.concurrent.DialerExecutorModule;
 import com.android.dialer.enrichedcall.stub.StubEnrichedCallModule;
 import com.android.dialer.inject.ContextModule;
 import com.android.dialer.lightbringer.stub.StubLightbringerModule;
@@ -35,7 +34,6 @@
   modules = {
     CallLogModule.class,
     ContextModule.class,
-    DialerExecutorModule.class,
     SimulatorModule.class,
     StubCallLocationModule.class,
     StubEnrichedCallModule.class,
diff --git a/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java b/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java
index 6e6ae4b..2deb7fd 100644
--- a/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java
+++ b/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java
@@ -17,8 +17,6 @@
 package com.android.dialer.binary.basecomponent;
 
 import com.android.dialer.calllog.CallLogComponent;
-import com.android.dialer.calllog.database.CallLogDatabaseComponent;
-import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import com.android.dialer.enrichedcall.EnrichedCallComponent;
 import com.android.dialer.lightbringer.LightbringerComponent;
 import com.android.dialer.simulator.SimulatorComponent;
@@ -33,8 +31,6 @@
 public interface BaseDialerRootComponent
     extends CallLocationComponent.HasComponent,
         CallLogComponent.HasComponent,
-        CallLogDatabaseComponent.HasComponent,
-        DialerExecutorComponent.HasComponent,
         EnrichedCallComponent.HasComponent,
         MapsComponent.HasComponent,
         SimulatorComponent.HasComponent,
diff --git a/java/com/android/dialer/binary/common/DialerApplication.java b/java/com/android/dialer/binary/common/DialerApplication.java
index 5037883..a4c2e7d 100644
--- a/java/com/android/dialer/binary/common/DialerApplication.java
+++ b/java/com/android/dialer/binary/common/DialerApplication.java
@@ -55,9 +55,8 @@
 
   private void enableStrictMode() {
     StrictMode.setThreadPolicy(
-        new StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog().penaltyDeath().build());
-    StrictMode.setVmPolicy(
-        new StrictMode.VmPolicy.Builder().detectAll().penaltyLog().penaltyDeath().build());
+        new StrictMode.ThreadPolicy.Builder().detectAll().penaltyDeath().build());
+    StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll().penaltyDeath().build());
   }
 
   /**
diff --git a/java/com/android/dialer/callcomposer/AndroidManifest.xml b/java/com/android/dialer/callcomposer/AndroidManifest.xml
index cce7110..369db6f 100644
--- a/java/com/android/dialer/callcomposer/AndroidManifest.xml
+++ b/java/com/android/dialer/callcomposer/AndroidManifest.xml
@@ -17,7 +17,7 @@
   xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.android.dialer.callcomposer">
 
-  <application android:theme="@style/Theme.AppCompat">
+  <application>
     <activity
       android:name="com.android.dialer.callcomposer.CallComposerActivity"
       android:exported="true"
diff --git a/java/com/android/dialer/callcomposer/CallComposerActivity.java b/java/com/android/dialer/callcomposer/CallComposerActivity.java
index bc20c73..074fc6d 100644
--- a/java/com/android/dialer/callcomposer/CallComposerActivity.java
+++ b/java/com/android/dialer/callcomposer/CallComposerActivity.java
@@ -37,8 +37,10 @@
 import android.util.Base64;
 import android.view.View;
 import android.view.View.OnClickListener;
+import android.view.View.OnLayoutChangeListener;
 import android.view.ViewAnimationUtils;
 import android.view.ViewGroup;
+import android.view.WindowManager.LayoutParams;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
@@ -54,7 +56,6 @@
 import com.android.dialer.common.UiUtil;
 import com.android.dialer.common.concurrent.DialerExecutors;
 import com.android.dialer.constants.Constants;
-import com.android.dialer.dialercontact.DialerContact;
 import com.android.dialer.enrichedcall.EnrichedCallComponent;
 import com.android.dialer.enrichedcall.EnrichedCallManager;
 import com.android.dialer.enrichedcall.EnrichedCallManager.State;
@@ -85,6 +86,7 @@
     implements OnClickListener,
         OnPageChangeListener,
         CallComposerListener,
+        OnLayoutChangeListener,
         EnrichedCallManager.StateChangedListener {
 
   public static final String KEY_CONTACT_NAME = "contact_name";
@@ -100,7 +102,7 @@
   private static final String VIEW_PAGER_STATE_KEY = "view_pager_state_key";
   private static final String SESSION_ID_KEY = "session_id_key";
 
-  private DialerContact contact;
+  private CallComposerContact contact;
   private Long sessionId = Session.NO_SESSION_ID;
 
   private TextView nameView;
@@ -124,9 +126,10 @@
   private boolean shouldAnimateEntrance = true;
   private boolean inFullscreenMode;
   private boolean isSendAndCallHidingOrHidden = true;
+  private boolean layoutChanged;
   private int currentIndex;
 
-  public static Intent newIntent(Context context, DialerContact contact) {
+  public static Intent newIntent(Context context, CallComposerContact contact) {
     Intent intent = new Intent(context, CallComposerActivity.class);
     ProtoParsers.put(intent, ARG_CALL_COMPOSER_CONTACT, contact);
     return intent;
@@ -137,19 +140,19 @@
     super.onCreate(savedInstanceState);
     setContentView(R.layout.call_composer_activity);
 
-    nameView = findViewById(R.id.contact_name);
-    numberView = findViewById(R.id.phone_number);
-    contactPhoto = findViewById(R.id.contact_photo);
-    cameraIcon = findViewById(R.id.call_composer_camera);
-    galleryIcon = findViewById(R.id.call_composer_photo);
-    messageIcon = findViewById(R.id.call_composer_message);
-    contactContainer = findViewById(R.id.contact_bar);
-    pager = findViewById(R.id.call_composer_view_pager);
-    background = findViewById(R.id.background);
-    windowContainer = findViewById(R.id.call_composer_container);
-    toolbar = findViewById(R.id.toolbar);
+    nameView = (TextView) findViewById(R.id.contact_name);
+    numberView = (TextView) findViewById(R.id.phone_number);
+    contactPhoto = (QuickContactBadge) findViewById(R.id.contact_photo);
+    cameraIcon = (ImageView) findViewById(R.id.call_composer_camera);
+    galleryIcon = (ImageView) findViewById(R.id.call_composer_photo);
+    messageIcon = (ImageView) findViewById(R.id.call_composer_message);
+    contactContainer = (RelativeLayout) findViewById(R.id.contact_bar);
+    pager = (ViewPager) findViewById(R.id.call_composer_view_pager);
+    background = (FrameLayout) findViewById(R.id.background);
+    windowContainer = (LinearLayout) findViewById(R.id.call_composer_container);
+    toolbar = (DialerToolbar) findViewById(R.id.toolbar);
     sendAndCall = findViewById(R.id.send_and_call_button);
-    sendAndCallText = findViewById(R.id.send_and_call_text);
+    sendAndCallText = (TextView) findViewById(R.id.send_and_call_text);
 
     interpolator = new FastOutSlowInInterpolator();
     adapter =
@@ -159,6 +162,7 @@
     pager.setAdapter(adapter);
     pager.addOnPageChangeListener(this);
 
+    background.addOnLayoutChangeListener(this);
     cameraIcon.setOnClickListener(this);
     galleryIcon.setOnClickListener(this);
     messageIcon.setOnClickListener(this);
@@ -174,6 +178,11 @@
       onPageSelected(currentIndex);
     }
 
+    int adjustMode =
+        isLandscapeLayout()
+            ? LayoutParams.SOFT_INPUT_ADJUST_PAN
+            : LayoutParams.SOFT_INPUT_ADJUST_RESIZE;
+    getWindow().setSoftInputMode(adjustMode);
     // Since we can't animate the views until they are ready to be drawn, we use this listener to
     // track that and animate the call compose UI as soon as it's ready.
     ViewUtil.doOnPreDraw(
@@ -255,7 +264,7 @@
     } else if (view == sendAndCall) {
       sendAndCall();
     } else {
-      throw Assert.createIllegalStateFailException("View on click not implemented: " + view);
+      Assert.fail();
     }
   }
 
@@ -331,7 +340,11 @@
 
   private boolean sessionReady() {
     Session session = getEnrichedCallManager().getSession(sessionId);
-    return session != null && session.getState() == EnrichedCallManager.STATE_STARTED;
+    if (session == null) {
+      return false;
+    }
+
+    return session.getState() == EnrichedCallManager.STATE_STARTED;
   }
 
   private void placeRCSCall(MultimediaData.Builder builder) {
@@ -411,6 +424,28 @@
     animateSendAndCall(fragment.shouldHide());
   }
 
+  // To detect when the keyboard changes.
+  @Override
+  public void onLayoutChange(
+      View view,
+      int left,
+      int top,
+      int right,
+      int bottom,
+      int oldLeft,
+      int oldTop,
+      int oldRight,
+      int oldBottom) {
+    // To prevent infinite layout change loops
+    if (layoutChanged) {
+      layoutChanged = false;
+      return;
+    }
+
+    layoutChanged = true;
+    showFullscreen(contactContainer.getTop() < 0 || inFullscreenMode);
+  }
+
   /**
    * Reads arguments from the fragment arguments and populates the necessary instance variables.
    * Copied from {@link com.android.contacts.common.dialog.CallSubjectDialog}.
@@ -421,14 +456,14 @@
       byte[] bytes =
           Base64.decode(intent.getStringExtra(ARG_CALL_COMPOSER_CONTACT_BASE64), Base64.DEFAULT);
       try {
-        contact = DialerContact.parseFrom(bytes);
+        contact = CallComposerContact.parseFrom(bytes);
       } catch (InvalidProtocolBufferException e) {
         throw Assert.createAssertionFailException(e.toString());
       }
     } else {
       contact =
           ProtoParsers.getTrusted(
-              intent, ARG_CALL_COMPOSER_CONTACT, DialerContact.getDefaultInstance());
+              intent, ARG_CALL_COMPOSER_CONTACT, CallComposerContact.getDefaultInstance());
     }
     updateContactInfo();
   }
diff --git a/java/com/android/dialer/callcomposer/CameraComposerFragment.java b/java/com/android/dialer/callcomposer/CameraComposerFragment.java
index ecdc258..f65207f 100644
--- a/java/com/android/dialer/callcomposer/CameraComposerFragment.java
+++ b/java/com/android/dialer/callcomposer/CameraComposerFragment.java
@@ -17,14 +17,13 @@
 package com.android.dialer.callcomposer;
 
 import android.Manifest;
+import android.Manifest.permission;
 import android.content.Intent;
-import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
 import android.graphics.drawable.Animatable;
 import android.hardware.Camera.CameraInfo;
 import android.net.Uri;
 import android.os.Bundle;
-import android.preference.PreferenceManager;
 import android.provider.Settings;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
@@ -57,7 +56,6 @@
 public class CameraComposerFragment extends CallComposerFragment
     implements CameraManagerListener, OnClickListener, CameraManager.MediaCallback {
 
-  private static final String CAMERA_PRIVACY_PREF = "camera_privacy_permission";
   private static final String CAMERA_DIRECTION_KEY = "camera_direction";
   private static final String CAMERA_URI_KEY = "camera_key";
 
@@ -109,8 +107,7 @@
     capture.setOnClickListener(this);
     cancel.setOnClickListener(this);
 
-
-    if (!PermissionsUtil.hasCameraPermissions(getContext())) {
+    if (!PermissionsUtil.hasPermission(getContext(), permission.CAMERA)) {
       LogUtil.i("CameraComposerFragment.onCreateView", "Permission view shown.");
       Logger.get(getContext()).logImpression(DialerImpression.Type.CAMERA_PERMISSION_DISPLAYED);
       ImageView permissionImage = (ImageView) permissionView.findViewById(R.id.permission_icon);
@@ -134,12 +131,6 @@
   }
 
   private void setupCamera() {
-    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getContext());
-    if (!preferences.getBoolean(CAMERA_PRIVACY_PREF, false)) {
-      Toast.makeText(getContext(), getString(R.string.camera_privacy_text), Toast.LENGTH_LONG)
-          .show();
-      preferences.edit().putBoolean(CAMERA_PRIVACY_PREF, true).apply();
-    }
     CameraManager.get().setListener(this);
     preview.setShown();
     CameraManager.get().setRenderOverlay(focus);
diff --git a/java/com/android/dialer/callcomposer/GalleryCursorLoader.java b/java/com/android/dialer/callcomposer/GalleryCursorLoader.java
index 39d6a4a..f9990e1 100644
--- a/java/com/android/dialer/callcomposer/GalleryCursorLoader.java
+++ b/java/com/android/dialer/callcomposer/GalleryCursorLoader.java
@@ -28,7 +28,7 @@
 public class GalleryCursorLoader extends CursorLoader {
   public static final String MEDIA_SCANNER_VOLUME_EXTERNAL = "external";
   public static final String[] ACCEPTABLE_IMAGE_TYPES =
-      new String[] {"image/jpeg", "image/jpg", "image/png", "image/webp"};
+      new String[] {"image/jpeg", "image/jpg", "image/png", "image/gif", "image/webp"};
 
   private static final Uri STORAGE_URI = Files.getContentUri(MEDIA_SCANNER_VOLUME_EXTERNAL);
   private static final String SORT_ORDER = Media.DATE_MODIFIED + " DESC";
@@ -47,7 +47,7 @@
   @SuppressLint("DefaultLocale")
   private static String createSelection() {
     return String.format(
-        "mime_type IN ('image/jpeg', 'image/jpg', 'image/png', 'image/webp')"
+        "mime_type IN ('image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'image/webp')"
             + " AND media_type in (%d)",
         FileColumns.MEDIA_TYPE_IMAGE);
   }
diff --git a/java/com/android/dialer/callcomposer/MessageComposerFragment.java b/java/com/android/dialer/callcomposer/MessageComposerFragment.java
index 392f6e7..2a342bb 100644
--- a/java/com/android/dialer/callcomposer/MessageComposerFragment.java
+++ b/java/com/android/dialer/callcomposer/MessageComposerFragment.java
@@ -24,8 +24,11 @@
 import android.text.TextWatcher;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
+import android.view.MotionEvent;
 import android.view.View;
 import android.view.View.OnClickListener;
+import android.view.View.OnLongClickListener;
+import android.view.View.OnTouchListener;
 import android.view.ViewGroup;
 import android.widget.EditText;
 import android.widget.TextView;
@@ -33,12 +36,17 @@
 
 /** Fragment used to compose call with message fragment. */
 public class MessageComposerFragment extends CallComposerFragment
-    implements OnClickListener, TextWatcher, OnEditorActionListener {
+    implements OnClickListener,
+        TextWatcher,
+        OnTouchListener,
+        OnLongClickListener,
+        OnEditorActionListener {
   private static final String CHAR_LIMIT_KEY = "char_limit";
 
   public static final int NO_CHAR_LIMIT = -1;
 
   private EditText customMessage;
+  private boolean isLongClick = false;
   private int charLimit;
 
   public static MessageComposerFragment newInstance(int charLimit) {
@@ -65,6 +73,8 @@
     customMessage = (EditText) view.findViewById(R.id.custom_message);
 
     urgent.setOnClickListener(this);
+    customMessage.setOnTouchListener(this);
+    customMessage.setOnLongClickListener(this);
     customMessage.addTextChangedListener(this);
     customMessage.setOnEditorActionListener(this);
     if (charLimit != NO_CHAR_LIMIT) {
@@ -108,6 +118,30 @@
     getListener().composeCall(this);
   }
 
+  /**
+   * EditTexts take two clicks to dispatch an onClick() event, so instead we add an onTouchListener
+   * to listen for them. The caveat to this is that it also requires listening for onLongClicks to
+   * distinguish whether a MotionEvent came from a click or a long click.
+   */
+  @Override
+  public boolean onTouch(View view, MotionEvent event) {
+    if (event.getAction() == MotionEvent.ACTION_UP) {
+      if (isLongClick) {
+        isLongClick = false;
+      } else {
+        getListener().showFullscreen(true);
+      }
+    }
+    view.performClick();
+    return false;
+  }
+
+  @Override
+  public boolean onLongClick(View v) {
+    isLongClick = true;
+    return false;
+  }
+
   @Override
   public boolean shouldHide() {
     return TextUtils.isEmpty(getMessage());
diff --git a/java/com/android/dialer/callcomposer/camera/CameraManager.java b/java/com/android/dialer/callcomposer/camera/CameraManager.java
index 977f063..4cc08ba 100644
--- a/java/com/android/dialer/callcomposer/camera/CameraManager.java
+++ b/java/com/android/dialer/callcomposer/camera/CameraManager.java
@@ -522,7 +522,6 @@
     switch (windowManager.getDefaultDisplay().getRotation()) {
       case Surface.ROTATION_0:
         degrees = 0;
-        mCamera.setDisplayOrientation(90);
         break;
       case Surface.ROTATION_90:
         degrees = 90;
@@ -532,22 +531,31 @@
         break;
       case Surface.ROTATION_270:
         degrees = 270;
-        mCamera.setDisplayOrientation(180);
         break;
       default:
         throw Assert.createAssertionFailException("");
     }
 
+    // The display orientation of the camera (this controls the preview image).
+    int orientation;
+
     // The clockwise rotation angle relative to the orientation of the camera. This affects
     // pictures returned by the camera in Camera.PictureCallback.
+    int rotation;
     if (mCameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
-      mRotation = (mCameraInfo.orientation + degrees) % 360;
+      orientation = (mCameraInfo.orientation + degrees) % 360;
+      rotation = orientation;
+      // compensate the mirror but only for orientation
+      orientation = (360 - orientation) % 360;
     } else { // back-facing
-      mRotation = (mCameraInfo.orientation - degrees + 360) % 360;
+      orientation = (mCameraInfo.orientation - degrees + 360) % 360;
+      rotation = orientation;
     }
+    mRotation = rotation;
     try {
+      mCamera.setDisplayOrientation(orientation);
       final Camera.Parameters params = mCamera.getParameters();
-      params.setRotation(mRotation);
+      params.setRotation(rotation);
       mCamera.setParameters(params);
     } catch (final RuntimeException e) {
       LogUtil.e(
@@ -581,6 +589,7 @@
         mOrientationHandler.disable();
         mOrientationHandler = null;
       }
+      //      releaseMediaRecorder(true /* cleanupFile */);
       mFocusOverlayManager.onPreviewStopped();
       return;
     }
diff --git a/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java b/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java
index b5542ab..31751e5 100644
--- a/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java
+++ b/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java
@@ -20,11 +20,13 @@
 import android.content.Context;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
+import android.graphics.Canvas;
 import android.graphics.Matrix;
 import android.net.Uri;
 import android.os.Build.VERSION_CODES;
 import android.support.v4.content.FileProvider;
 import com.android.dialer.callcomposer.camera.exif.ExifInterface;
+import com.android.dialer.callcomposer.camera.exif.ExifTag;
 import com.android.dialer.callcomposer.util.BitmapResizer;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.concurrent.FallibleAsyncTask;
@@ -69,7 +71,13 @@
     File outputFile = DialerUtils.createShareableFile(mContext);
 
     try (OutputStream outputStream = new FileOutputStream(outputFile)) {
-      writeClippedBitmap(outputStream);
+      if (mHeightPercent != 1.0f) {
+        writeClippedBitmap(outputStream);
+      } else {
+        Bitmap bitmap = BitmapFactory.decodeByteArray(mBytes, 0, mBytes.length);
+        bitmap = BitmapResizer.resizeForEnrichedCalling(bitmap);
+        bitmap.compress(Bitmap.CompressFormat.JPEG, 90, outputStream);
+      }
     }
 
     return FileProvider.getUriForFile(
@@ -97,12 +105,10 @@
     } catch (final IOException e) {
       // Couldn't get exif tags, not the end of the world
     }
-
     Bitmap bitmap = BitmapFactory.decodeByteArray(mBytes, 0, mBytes.length);
     final int clippedWidth;
     final int clippedHeight;
-    boolean invert = ExifInterface.getOrientationParams(orientation).invertDimensions;
-    if (invert) {
+    if (ExifInterface.getOrientationParams(orientation).invertDimensions) {
       Assert.checkState(mWidth == bitmap.getHeight());
       Assert.checkState(mHeight == bitmap.getWidth());
       clippedWidth = (int) (mHeight * mHeightPercent);
@@ -113,22 +119,24 @@
       clippedWidth = mWidth;
       clippedHeight = (int) (mHeight * mHeightPercent);
     }
-
-    int offsetTop = (bitmap.getHeight() - clippedHeight) / 2;
-    int offsetLeft = (bitmap.getWidth() - clippedWidth) / 2;
+    final int offsetTop = (bitmap.getHeight() - clippedHeight) / 2;
+    final int offsetLeft = (bitmap.getWidth() - clippedWidth) / 2;
     mWidth = clippedWidth;
     mHeight = clippedHeight;
-
-    Matrix matrix = new Matrix();
-    matrix.postRotate(invert ? 90 : 0);
-
     Bitmap clippedBitmap =
-        Bitmap.createBitmap(
-            bitmap, offsetLeft, offsetTop, clippedWidth, clippedHeight, matrix, true);
+        Bitmap.createBitmap(clippedWidth, clippedHeight, Bitmap.Config.ARGB_8888);
+    clippedBitmap.setDensity(bitmap.getDensity());
+    final Canvas clippedBitmapCanvas = new Canvas(clippedBitmap);
+    final Matrix matrix = new Matrix();
+    matrix.postTranslate(-offsetLeft, -offsetTop);
+    clippedBitmapCanvas.drawBitmap(bitmap, matrix, null /* paint */);
+    clippedBitmapCanvas.save();
     clippedBitmap = BitmapResizer.resizeForEnrichedCalling(clippedBitmap);
-    // EXIF data can take a big chunk of the file size and we've already manually rotated our image,
-    // so remove all of the exif data.
+    // EXIF data can take a big chunk of the file size and is often cleared by the
+    // carrier, only store orientation since that's critical
+    final ExifTag orientationTag = exifInterface.getTag(ExifInterface.TAG_ORIENTATION);
     exifInterface.clearExif();
+    exifInterface.setTag(orientationTag);
     exifInterface.writeExif(clippedBitmap, outputStream);
 
     clippedBitmap.recycle();
diff --git a/java/com/android/dialer/dialercontact/dialer_contact.proto b/java/com/android/dialer/callcomposer/proto/call_composer_contact.proto
similarity index 82%
rename from java/com/android/dialer/dialercontact/dialer_contact.proto
rename to java/com/android/dialer/callcomposer/proto/call_composer_contact.proto
index ee364c6..99766aa 100644
--- a/java/com/android/dialer/dialercontact/dialer_contact.proto
+++ b/java/com/android/dialer/callcomposer/proto/call_composer_contact.proto
@@ -1,12 +1,12 @@
 syntax = "proto2";
 
-option java_package = "com.android.dialer.dialercontact";
+option java_package = "com.android.dialer.callcomposer";
 option java_multiple_files = true;
 option optimize_for = LITE_RUNTIME;
 
 package com.android.dialer.callcomposer;
 
-message DialerContact {
+message CallComposerContact {
   optional fixed64 photo_id = 1;
   optional string photo_uri = 2;
   optional string contact_uri = 3;
diff --git a/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml b/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml
index 14703a4..c3f1102 100644
--- a/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml
+++ b/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml
@@ -15,11 +15,11 @@
   ~ limitations under the License
   -->
 <FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/background"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@color/call_composer_background_color">
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  android:id="@+id/background"
+  android:layout_width="match_parent"
+  android:layout_height="match_parent"
+  android:background="@color/call_composer_background_color">
 
   <LinearLayout
     android:id="@+id/call_composer_container"
@@ -87,7 +87,7 @@
         android:layout_height="@dimen/call_composer_media_bar_height"
         android:orientation="horizontal"
         android:gravity="center_horizontal"
-        android:background="@color/dialer_theme_color_dark"
+        android:background="@color/dialer_secondary_color"
         android:clickable="true">
 
       <ImageView
diff --git a/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml b/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml
index 1556247..77c7a58 100644
--- a/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml
+++ b/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml
@@ -70,7 +70,7 @@
       android:background="@color/background_dialer_white"
       android:textCursorDrawable="@drawable/searchedittext_custom_cursor"
       android:layout_toStartOf="@+id/remaining_characters"
-      android:inputType="textShortMessage|textCapSentences"
+      android:inputType="textShortMessage"
       android:imeOptions="flagNoExtractUi|actionSend"/>
 
     <TextView
diff --git a/java/com/android/dialer/callcomposer/res/values-ca/strings.xml b/java/com/android/dialer/callcomposer/res/values-ca/strings.xml
index 1a57f87..4fa52ad 100644
--- a/java/com/android/dialer/callcomposer/res/values-ca/strings.xml
+++ b/java/com/android/dialer/callcomposer/res/values-ca/strings.xml
@@ -28,6 +28,6 @@
     <string name="camera_switch_to_still_mode" msgid="1881982437979592567">"Fes una foto"</string>
     <string name="camera_media_failure" msgid="8979549551450965882">"No s\'ha pogut carregar la imatge de la càmera"</string>
     <string name="allow" msgid="8637148297403066623">"Permet"</string>
-    <string name="camera_permission_text" msgid="7863231776480341614">"Per fer una foto, dona accés a la càmera"</string>
-    <string name="gallery_permission_text" msgid="4102566850658919346">"Per compartir una imatge, dona accés al contingut multimèdia"</string>
+    <string name="camera_permission_text" msgid="7863231776480341614">"Per fer una foto, dóna accés a la càmera"</string>
+    <string name="gallery_permission_text" msgid="4102566850658919346">"Per compartir una imatge, dóna accés al contingut multimèdia"</string>
 </resources>
diff --git a/java/com/android/dialer/callcomposer/res/values/styles.xml b/java/com/android/dialer/callcomposer/res/values/styles.xml
index 16e7fb6..29ac4dd 100644
--- a/java/com/android/dialer/callcomposer/res/values/styles.xml
+++ b/java/com/android/dialer/callcomposer/res/values/styles.xml
@@ -15,7 +15,7 @@
   ~ limitations under the License
   -->
 <resources>
-  <style name="Theme.AppCompat.CallComposer" parent="DialerThemeBase.NoActionBar">
+  <style name="Theme.AppCompat.CallComposer" parent="Theme.AppCompat.NoActionBar">
     <item name="android:colorPrimaryDark">@color/dialer_theme_color_dark</item>
     <item name="android:windowBackground">@android:color/transparent</item>
     <item name="android:colorBackgroundCacheHint">@null</item>
diff --git a/java/com/android/dialer/calldetails/AndroidManifest.xml b/java/com/android/dialer/calldetails/AndroidManifest.xml
index fd887c4..adaac40 100644
--- a/java/com/android/dialer/calldetails/AndroidManifest.xml
+++ b/java/com/android/dialer/calldetails/AndroidManifest.xml
@@ -16,11 +16,11 @@
 <manifest
   xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.android.dialer.calldetails">
-  <application android:theme="@style/Theme.AppCompat">
+  <application>
     <activity
       android:label="@string/call_details"
       android:name="com.android.dialer.calldetails.CallDetailsActivity"
-      android:theme="@style/DialerThemeBase.NoActionBar">
+      android:theme="@style/Theme.AppCompat.Light.NoActionBar">
       <intent-filter>
         <action android:name="android.intent.action.VIEW"/>
         <category android:name="android.intent.category.DEFAULT"/>
diff --git a/java/com/android/dialer/calldetails/CallDetailsActivity.java b/java/com/android/dialer/calldetails/CallDetailsActivity.java
index 4d5853f..7eab951 100644
--- a/java/com/android/dialer/calldetails/CallDetailsActivity.java
+++ b/java/com/android/dialer/calldetails/CallDetailsActivity.java
@@ -29,13 +29,12 @@
 import android.support.v7.widget.Toolbar;
 import android.support.v7.widget.Toolbar.OnMenuItemClickListener;
 import android.view.MenuItem;
+import com.android.dialer.callcomposer.CallComposerContact;
 import com.android.dialer.calldetails.CallDetailsEntries.CallDetailsEntry;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.concurrent.AsyncTaskExecutors;
-import com.android.dialer.dialercontact.DialerContact;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
-import com.android.dialer.postcall.PostCall;
 import com.android.dialer.protos.ProtoParsers;
 import java.util.List;
 
@@ -49,7 +48,7 @@
   private List<CallDetailsEntry> entries;
 
   public static Intent newInstance(
-      Context context, @NonNull CallDetailsEntries details, @NonNull DialerContact contact) {
+      Context context, @NonNull CallDetailsEntries details, @NonNull CallComposerContact contact) {
     Assert.isNotNull(details);
     Assert.isNotNull(contact);
 
@@ -71,20 +70,14 @@
   }
 
   @Override
-  protected void onResume() {
-    super.onResume();
-    PostCall.promptUserForMessageIfNecessary(this, findViewById(R.id.recycler_view));
-  }
-
-  @Override
   protected void onNewIntent(Intent intent) {
     super.onNewIntent(intent);
     onHandleIntent(intent);
   }
 
   private void onHandleIntent(Intent intent) {
-    DialerContact contact =
-        ProtoParsers.getTrusted(intent, EXTRA_CONTACT, DialerContact.getDefaultInstance());
+    CallComposerContact contact =
+        ProtoParsers.getTrusted(intent, EXTRA_CONTACT, CallComposerContact.getDefaultInstance());
     entries =
         ProtoParsers.getTrusted(
                 intent, EXTRA_CALL_DETAILS_ENTRIES, CallDetailsEntries.getDefaultInstance())
diff --git a/java/com/android/dialer/calldetails/CallDetailsAdapter.java b/java/com/android/dialer/calldetails/CallDetailsAdapter.java
index d2fdbb4..7250779 100644
--- a/java/com/android/dialer/calldetails/CallDetailsAdapter.java
+++ b/java/com/android/dialer/calldetails/CallDetailsAdapter.java
@@ -22,26 +22,26 @@
 import android.support.v7.widget.RecyclerView.ViewHolder;
 import android.view.LayoutInflater;
 import android.view.ViewGroup;
+import com.android.dialer.callcomposer.CallComposerContact;
 import com.android.dialer.calldetails.CallDetailsEntries.CallDetailsEntry;
 import com.android.dialer.calllogutils.CallTypeHelper;
 import com.android.dialer.common.Assert;
-import com.android.dialer.dialercontact.DialerContact;
 import java.util.List;
 
 /** Adapter for RecyclerView in {@link CallDetailsActivity}. */
-final class CallDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
+public class CallDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
 
   private static final int HEADER_VIEW_TYPE = 1;
   private static final int CALL_ENTRY_VIEW_TYPE = 2;
   private static final int FOOTER_VIEW_TYPE = 3;
 
-  private final DialerContact contact;
+  private final CallComposerContact contact;
   private final List<CallDetailsEntry> callDetailsEntries;
   private final CallTypeHelper callTypeHelper;
 
-  CallDetailsAdapter(
+  public CallDetailsAdapter(
       Context context,
-      @NonNull DialerContact contact,
+      @NonNull CallComposerContact contact,
       @NonNull List<CallDetailsEntry> callDetailsEntries) {
     this.contact = Assert.isNotNull(contact);
     this.callDetailsEntries = callDetailsEntries;
@@ -62,8 +62,8 @@
         return new CallDetailsFooterViewHolder(
             inflater.inflate(R.layout.call_details_footer, parent, false));
       default:
-        throw Assert.createIllegalStateFailException(
-            "No ViewHolder available for viewType: " + viewType);
+        Assert.fail("No ViewHolder available for viewType: " + viewType);
+        return null;
     }
   }
 
diff --git a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
index 1ddd2e7..4d9aacf 100644
--- a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
+++ b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
@@ -25,12 +25,11 @@
 import android.widget.QuickContactBadge;
 import android.widget.TextView;
 import com.android.contacts.common.ContactPhotoManager;
+import com.android.dialer.callcomposer.CallComposerContact;
 import com.android.dialer.callintent.CallInitiationType;
 import com.android.dialer.callintent.CallIntentBuilder;
 import com.android.dialer.common.Assert;
-import com.android.dialer.dialercontact.DialerContact;
 import com.android.dialer.logging.DialerImpression;
-import com.android.dialer.logging.InteractionEvent;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.util.DialerUtils;
 
@@ -44,24 +43,20 @@
   private final QuickContactBadge contactPhoto;
   private final Context context;
 
-  private DialerContact contact;
+  private CallComposerContact contact;
 
   CallDetailsHeaderViewHolder(View container) {
     super(container);
     context = container.getContext();
     callBackButton = container.findViewById(R.id.call_back_button);
-    nameView = container.findViewById(R.id.contact_name);
-    numberView = container.findViewById(R.id.phone_number);
-    contactPhoto = container.findViewById(R.id.quick_contact_photo);
-
+    nameView = (TextView) container.findViewById(R.id.contact_name);
+    numberView = (TextView) container.findViewById(R.id.phone_number);
+    contactPhoto = (QuickContactBadge) container.findViewById(R.id.quick_contact_photo);
     callBackButton.setOnClickListener(this);
-    Logger.get(context)
-        .logQuickContactOnTouch(
-            contactPhoto, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CALL_DETAILS, true);
   }
 
   /** Populates the contact info fields based on the current contact information. */
-  void updateContactInfo(DialerContact contact) {
+  void updateContactInfo(CallComposerContact contact) {
     this.contact = contact;
     ContactPhotoManager.getInstance(context)
         .loadDialerThumbnailOrPhoto(
@@ -103,7 +98,7 @@
           view.getContext(),
           new CallIntentBuilder(contact.getNumber(), CallInitiationType.Type.CALL_DETAILS).build());
     } else {
-      throw Assert.createIllegalStateFailException("View OnClickListener not implemented: " + view);
+      Assert.fail("View OnClickListener not implemented: " + view);
     }
   }
 }
diff --git a/java/com/android/dialer/calldetails/res/layout/contact_container.xml b/java/com/android/dialer/calldetails/res/layout/contact_container.xml
index d8d6e4e..bb89b36 100644
--- a/java/com/android/dialer/calldetails/res/layout/contact_container.xml
+++ b/java/com/android/dialer/calldetails/res/layout/contact_container.xml
@@ -56,8 +56,6 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginStart="@dimen/photo_text_margin"
-        android:ellipsize="end"
-        android:maxLines="1"
         style="@style/SecondaryText"/>
   </LinearLayout>
 
@@ -68,8 +66,8 @@
       android:layout_alignParentEnd="true"
       android:layout_centerVertical="true"
       android:background="?android:attr/selectableItemBackgroundBorderless"
-      android:contentDescription="@string/call"
+      android:contentDescription="@string/description_call_log_call_action"
       android:scaleType="center"
       android:src="@drawable/quantum_ic_call_white_24"
       android:tint="@color/secondary_text_color"/>
-</RelativeLayout>
\ No newline at end of file
+</RelativeLayout>
diff --git a/java/com/android/dialer/calldetails/res/values-af/strings.xml b/java/com/android/dialer/calldetails/res/values-af/strings.xml
index 74fbcd0..86bef4b 100644
--- a/java/com/android/dialer/calldetails/res/values-af/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-af/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Vee uit"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopieer nommer"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Wysig nommer voordat jy bel"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Bel"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Het \'n foto gestuur"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Het \'n foto ontvang"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-am/strings.xml b/java/com/android/dialer/calldetails/res/values-am/strings.xml
index 4deaceb..2a23945 100644
--- a/java/com/android/dialer/calldetails/res/values-am/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-am/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"ሰርዝ"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"ቁጥር ቅዳ"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"ከመደወል በፊት ቁጥር አርትዕ ያድርጉ"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"ጥሪ"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"አንድ ፎቶ ተልኳል"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"አንድ ፎቶ ደርሷል"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ar/strings.xml b/java/com/android/dialer/calldetails/res/values-ar/strings.xml
index 11a80e9..6b0d8a7 100644
--- a/java/com/android/dialer/calldetails/res/values-ar/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ar/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"حذف"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"نسخ الرقم"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"تعديل الرقم قبل الاتصال"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"الاتصال"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"تم إرسال صورة"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"تم تلقي صورة"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-az/strings.xml b/java/com/android/dialer/calldetails/res/values-az/strings.xml
index 6710966..479837c 100644
--- a/java/com/android/dialer/calldetails/res/values-az/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-az/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Silin"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Nömrəni kopyalayın"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Zəng etmədən öncə nömrəyə düzəliş edin"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Zəng edin"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Foto göndərildi"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Foto alındı"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/calldetails/res/values-b+sr+Latn/strings.xml
index a08c4ed..01141ff 100644
--- a/java/com/android/dialer/calldetails/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-b+sr+Latn/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Izbriši"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiraj broj"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Izmenite broj pre poziva"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Pozovi"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Slika je poslata"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Slika je primljena"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-be/strings.xml b/java/com/android/dialer/calldetails/res/values-be/strings.xml
index 3997fb2..683f29b 100644
--- a/java/com/android/dialer/calldetails/res/values-be/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-be/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Выдаліць"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Скапіраваць нумар"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Рэдагаваць нумар перад выклікам"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Выклік"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Адпраўлена фота"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Атрымана фота"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-bg/strings.xml b/java/com/android/dialer/calldetails/res/values-bg/strings.xml
index 2354517..9cd70e2 100644
--- a/java/com/android/dialer/calldetails/res/values-bg/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-bg/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Изтриване"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Копиране на номера"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Редактиране на номера преди обаждане"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Обаждане"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Изпратена бе снимка"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Получена бе снимка"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-bn/strings.xml b/java/com/android/dialer/calldetails/res/values-bn/strings.xml
index 0667152..148f61a 100644
--- a/java/com/android/dialer/calldetails/res/values-bn/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-bn/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"মুছুন"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"নম্বর কপি করুন"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"কল করার আগে নম্বর সম্পাদন করুন"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"কল করুন"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"একটি ফটো পাঠিয়েছেন"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"একটি ফটো পেয়েছেন"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-bs/strings.xml b/java/com/android/dialer/calldetails/res/values-bs/strings.xml
index 305a413..6f164b2 100644
--- a/java/com/android/dialer/calldetails/res/values-bs/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-bs/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Izbriši"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiraj broj"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Uredi broj prije poziva"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Poziv"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Fotografija poslana"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Fotografija primljena"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ca/strings.xml b/java/com/android/dialer/calldetails/res/values-ca/strings.xml
index 6d5092e..0e33e60 100644
--- a/java/com/android/dialer/calldetails/res/values-ca/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ca/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Suprimeix"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copia el número"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Edita el número abans de trucar"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Truca"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"S\'ha enviat una foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"S\'ha rebut una foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"<xliff:g id="MESSAGE">%1$s</xliff:g>"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-cs/strings.xml b/java/com/android/dialer/calldetails/res/values-cs/strings.xml
index bec5bab..9747ee1 100644
--- a/java/com/android/dialer/calldetails/res/values-cs/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-cs/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Smazat"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopírovat číslo"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Před voláním upravit číslo"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Zavolat"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Byla poslána fotka"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Byla přijata fotka"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-da/strings.xml b/java/com/android/dialer/calldetails/res/values-da/strings.xml
index cfc4ad1..41bc252 100644
--- a/java/com/android/dialer/calldetails/res/values-da/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-da/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Slet"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiér nummer"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Rediger nummer før opkald"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Ring op"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Der blev sendt et billede"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Der blev modtaget et billede"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-de/strings.xml b/java/com/android/dialer/calldetails/res/values-de/strings.xml
index 6443924..014666b 100644
--- a/java/com/android/dialer/calldetails/res/values-de/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-de/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Löschen"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Nummer kopieren"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Nummer vor Anruf bearbeiten"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Anrufen"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Hat ein Foto gesendet"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Hat ein Foto empfangen"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-el/strings.xml b/java/com/android/dialer/calldetails/res/values-el/strings.xml
index 04c850e..6b51fc7 100644
--- a/java/com/android/dialer/calldetails/res/values-el/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-el/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Διαγραφή"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Αντιγραφή αριθμού"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Επεξεργασία αριθμού πριν από την κλήση"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Κλήση"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Έγινε αποστολή φωτογραφίας"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Έγινε λήψη φωτογραφίας"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-en-rAU/strings.xml b/java/com/android/dialer/calldetails/res/values-en-rAU/strings.xml
index 5f4f559..2d5210e 100644
--- a/java/com/android/dialer/calldetails/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-en-rAU/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Delete"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copy number"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Edit number before call"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Call"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Sent a photo"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Received a photo"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-en-rGB/strings.xml b/java/com/android/dialer/calldetails/res/values-en-rGB/strings.xml
index 5f4f559..2d5210e 100644
--- a/java/com/android/dialer/calldetails/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-en-rGB/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Delete"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copy number"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Edit number before call"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Call"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Sent a photo"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Received a photo"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-en-rIN/strings.xml b/java/com/android/dialer/calldetails/res/values-en-rIN/strings.xml
index 5f4f559..2d5210e 100644
--- a/java/com/android/dialer/calldetails/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-en-rIN/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Delete"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copy number"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Edit number before call"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Call"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Sent a photo"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Received a photo"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-es-rUS/strings.xml b/java/com/android/dialer/calldetails/res/values-es-rUS/strings.xml
index 8986534..d9db282 100644
--- a/java/com/android/dialer/calldetails/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-es-rUS/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Borrar"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de llamar"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Llamar"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Enviaste una foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Recibiste una foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-es/strings.xml b/java/com/android/dialer/calldetails/res/values-es/strings.xml
index ad581b4..e72e898 100644
--- a/java/com/android/dialer/calldetails/res/values-es/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-es/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Eliminar"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de llamar"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Llamar"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Se ha enviado una foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Se ha recibido una foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-et/strings.xml b/java/com/android/dialer/calldetails/res/values-et/strings.xml
index 9190b28..496459d 100644
--- a/java/com/android/dialer/calldetails/res/values-et/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-et/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Kustuta"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopeeri number"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Muuda numbrit enne helistamist"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Kõne"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Saatis foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Sai foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-eu/strings.xml b/java/com/android/dialer/calldetails/res/values-eu/strings.xml
index a8c48cf..913082f 100644
--- a/java/com/android/dialer/calldetails/res/values-eu/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-eu/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Ezabatu"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiatu zenbakia"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Editatu zenbakia deitu aurretik"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Deia"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Argazki bat bidali duzu"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Argazki bat jaso duzu"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-fa/strings.xml b/java/com/android/dialer/calldetails/res/values-fa/strings.xml
index d02591b..cad85a2 100644
--- a/java/com/android/dialer/calldetails/res/values-fa/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-fa/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"حذف"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"کپی کردن شماره"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"ویرایش شماره قبل از تماس"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"تماس"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"عکسی ارسال کرد"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"عکسی دریافت کرد"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-fi/strings.xml b/java/com/android/dialer/calldetails/res/values-fi/strings.xml
index 3b409ed..c16110d 100644
--- a/java/com/android/dialer/calldetails/res/values-fi/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-fi/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Poista"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopioi numero"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Muokkaa numeroa ennen puhelua"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Soita"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Lähetetty kuva"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Vastaanotettu kuva"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-fr-rCA/strings.xml b/java/com/android/dialer/calldetails/res/values-fr-rCA/strings.xml
index 7b88bdd..676861f 100644
--- a/java/com/android/dialer/calldetails/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-fr-rCA/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Supprimer"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copier le numéro"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Modifier le numéro avant de passer l\'appel"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Appeler"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Photo envoyée"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Photo reçue"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"« <xliff:g id="MESSAGE">%1$s</xliff:g> »"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-fr/strings.xml b/java/com/android/dialer/calldetails/res/values-fr/strings.xml
index 8319a2c..606cb10 100644
--- a/java/com/android/dialer/calldetails/res/values-fr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-fr/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Supprimer"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copier le numéro"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Modifier le numéro avant d\'appeler"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Appeler"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Envoi d\'une photo"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Réception d\'une photo"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-gl/strings.xml b/java/com/android/dialer/calldetails/res/values-gl/strings.xml
index f7aa166..aa5ff14 100644
--- a/java/com/android/dialer/calldetails/res/values-gl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-gl/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Eliminar"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de chamar"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Chamar"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Enviouse unha foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Recibiuse unha foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-gu/strings.xml b/java/com/android/dialer/calldetails/res/values-gu/strings.xml
index 03e402e..ccb8755 100644
--- a/java/com/android/dialer/calldetails/res/values-gu/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-gu/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"કાઢી નાખો"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"નંબર કૉપિ કરો"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"કૉલ કરતાં પહેલાં નંબર સંપાદિત કરો"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"કૉલ કરો"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"એક ફોટો મોકલ્યો"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"એક ફોટો પ્રાપ્ત કર્યો"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-hi/strings.xml b/java/com/android/dialer/calldetails/res/values-hi/strings.xml
index 3e46920..517fbe5 100644
--- a/java/com/android/dialer/calldetails/res/values-hi/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-hi/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"हटाएं"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"नंबर कॉपी करें"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"कॉल करने से पहले नंबर संपादित करें"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"कॉल करें"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"फ़ोटो भेजी गई"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"फ़ोटो मिली"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-hr/strings.xml b/java/com/android/dialer/calldetails/res/values-hr/strings.xml
index c1cc360..687a65e 100644
--- a/java/com/android/dialer/calldetails/res/values-hr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-hr/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Brisanje"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiranje broja"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Uređivanje broja prije poziva"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Poziv"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Šalje fotografiju"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Prima fotografiju"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-hu/strings.xml b/java/com/android/dialer/calldetails/res/values-hu/strings.xml
index 298c10e..66863e8 100644
--- a/java/com/android/dialer/calldetails/res/values-hu/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-hu/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Törlés"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Szám másolása"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Szám szerkesztése hívás előtt"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Telefonhívás"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Küldött egy fotót"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Kapott egy fotót"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-hy/strings.xml b/java/com/android/dialer/calldetails/res/values-hy/strings.xml
index ab44622..a1e84e9 100644
--- a/java/com/android/dialer/calldetails/res/values-hy/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-hy/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Ջնջել"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Պատճենել համարը"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Փոփոխել համարը զանգելուց առաջ"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Զանգ"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Ուղարկվել է լուսանկար"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Ստացվել է լուսանկար"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-in/strings.xml b/java/com/android/dialer/calldetails/res/values-in/strings.xml
index 68ced55..ba58ba0 100644
--- a/java/com/android/dialer/calldetails/res/values-in/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-in/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Hapus"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Salin nomor"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Edit nomor sebelum menelepon"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Telepon"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Mengirim foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Menerima foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-is/strings.xml b/java/com/android/dialer/calldetails/res/values-is/strings.xml
index 667ebd6..0770814 100644
--- a/java/com/android/dialer/calldetails/res/values-is/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-is/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Eyða"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Afrita númer"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Breyta númeri áður en hringt er"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Hringja"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Sendi mynd"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Tók á móti mynd"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-it/strings.xml b/java/com/android/dialer/calldetails/res/values-it/strings.xml
index 4f159d5..97af251 100644
--- a/java/com/android/dialer/calldetails/res/values-it/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-it/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Elimina"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copia numero"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Modifica numero prima di chiamare"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Chiama"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Foto inviata"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Foto ricevuta"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-iw/strings.xml b/java/com/android/dialer/calldetails/res/values-iw/strings.xml
index 87c6fed..329eded 100644
--- a/java/com/android/dialer/calldetails/res/values-iw/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-iw/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"מחק"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"העתק את המספר"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"ערוך את המספר לפני השיחה"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"התקשר"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"נשלחה תמונה"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"התקבלה תמונה"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ja/strings.xml b/java/com/android/dialer/calldetails/res/values-ja/strings.xml
index d3a15d4..7aef345 100644
--- a/java/com/android/dialer/calldetails/res/values-ja/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ja/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"削除"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"電話番号をコピー"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"発信前に電話番号を編集"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"発信"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"写真を送信しました"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"写真を受信しました"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"「<xliff:g id="MESSAGE">%1$s</xliff:g>」"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ka/strings.xml b/java/com/android/dialer/calldetails/res/values-ka/strings.xml
index 66f1928..1cd7bc2 100644
--- a/java/com/android/dialer/calldetails/res/values-ka/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ka/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"წაშლა"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"ნომრის კოპირება"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"ნომრის რედაქტირება დარეკვამდე"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"დარეკვა"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ფოტო გაიგზავნა"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"მიღებულია ფოტო"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-kk/strings.xml b/java/com/android/dialer/calldetails/res/values-kk/strings.xml
index c3903e1..1923cf7 100644
--- a/java/com/android/dialer/calldetails/res/values-kk/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-kk/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Жою"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Нөмірді көшіру"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Нөмірді қоңырау шалуға дейін өзгерту"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Қоңырау шалу"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Сурет жіберілді"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Сурет қабылданды"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-km/strings.xml b/java/com/android/dialer/calldetails/res/values-km/strings.xml
index 240e28a..e047279 100644
--- a/java/com/android/dialer/calldetails/res/values-km/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-km/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"លុប"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"ថតចម្លងលេខទូរសព្ទ"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"កែ​លេខ​ មុន​ពេល​ហៅទូរសព្ទ"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"ហៅទូរសព្ទ"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"បានផ្ញើរូបថត"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"បាន​ទទួល​រូបថត"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-kn/strings.xml b/java/com/android/dialer/calldetails/res/values-kn/strings.xml
index a833ffc..66c0d63 100644
--- a/java/com/android/dialer/calldetails/res/values-kn/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-kn/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"ಅಳಿಸಿ"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"ಸಂಖ್ಯೆಯನ್ನು ನಕಲಿಸಿ"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"ಕರೆ ಮಾಡುವ ಮೊದಲು ಸಂಖ್ಯೆಯನ್ನು ಎಡಿಟ್ ಮಾಡಿ"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"ಕರೆಮಾಡಿ"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ಫೋಟೋ ಕಳುಹಿಸಲಾಗಿದೆ"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"ಫೋಟೋ ಸ್ವೀಕರಿಸಲಾಗಿದೆ"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ko/strings.xml b/java/com/android/dialer/calldetails/res/values-ko/strings.xml
index 700c360..35c5038 100644
--- a/java/com/android/dialer/calldetails/res/values-ko/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ko/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"삭제"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"전화번호 복사"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"통화하기 전에 번호 수정"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"전화걸기"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"사진 전송됨"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"사진 수신됨"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\'<xliff:g id="MESSAGE">%1$s</xliff:g>\'"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ky/strings.xml b/java/com/android/dialer/calldetails/res/values-ky/strings.xml
index 08546c8..fe37b33 100644
--- a/java/com/android/dialer/calldetails/res/values-ky/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ky/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Жок кылуу"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Номерди көчүрүү"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Чалуудан мурун номерди түзөтүү"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Чалуу"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Сүрөт жөнөтүлдү"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Сүрөт алынды"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-lo/strings.xml b/java/com/android/dialer/calldetails/res/values-lo/strings.xml
index 8f099e8..85b636a 100644
--- a/java/com/android/dialer/calldetails/res/values-lo/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-lo/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"​ລຶບ"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"ສຳເນົາເບີໂທ"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"ແກ້ໄຂເບີກ່ອນໂທ"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"ໂທ"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ສົ່ງຮູບພາບ"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"ໄດ້ຮັບຮູບພາບແລ້ວ"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-lt/strings.xml b/java/com/android/dialer/calldetails/res/values-lt/strings.xml
index 62d89f5..9c8ad7b 100644
--- a/java/com/android/dialer/calldetails/res/values-lt/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-lt/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Ištrinti"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopijuoti numerį"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Redaguoti numerį prieš skambinant"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Skambinti"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Išsiuntė nuotrauką"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Gavo nuotrauką"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-lv/strings.xml b/java/com/android/dialer/calldetails/res/values-lv/strings.xml
index 3625649..d878393 100644
--- a/java/com/android/dialer/calldetails/res/values-lv/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-lv/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Dzēst"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopēt numuru"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Rediģēt numuru pirms zvanīšanas"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Zvanīt"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Nosūtīja fotoattēlu"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Saņēma fotoattēlu"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"“<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-mk/strings.xml b/java/com/android/dialer/calldetails/res/values-mk/strings.xml
index 6d1fd71..9388ae0 100644
--- a/java/com/android/dialer/calldetails/res/values-mk/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-mk/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Избриши"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Копирај го бројот"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Измени го бројот пред повикот"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Повикај"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Испрати фотографија"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Прими фотографија"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ml/strings.xml b/java/com/android/dialer/calldetails/res/values-ml/strings.xml
index fbafb88..d296911 100644
--- a/java/com/android/dialer/calldetails/res/values-ml/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ml/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"ഇല്ലാതാക്കുക"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"നമ്പർ പകർത്തുക"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"കോൾ ചെയ്യുന്നതിന് മുമ്പായി നമ്പർ എഡിറ്റുചെയ്യുക"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"കോള്‍ ചെയ്യുക"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ഒരു ഫോട്ടോ അയച്ചു"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"ഒരു ഫോട്ടോ ലഭിച്ചു"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-mn/strings.xml b/java/com/android/dialer/calldetails/res/values-mn/strings.xml
index 10b5d96..cb264e0 100644
--- a/java/com/android/dialer/calldetails/res/values-mn/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-mn/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Устгах"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Дугаар хуулах"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Залгахын өмнө дугаар засах"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Залгах"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Зураг илгээсэн"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Зураг хүлээн авсан"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-mr/strings.xml b/java/com/android/dialer/calldetails/res/values-mr/strings.xml
index 5644664..5c31e36 100644
--- a/java/com/android/dialer/calldetails/res/values-mr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-mr/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"हटवा"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"नंबर कॉपी करा"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"कॉल करण्यापूर्वी नंबर संपादित करा"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"कॉल करा"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"एक फोटो पाठविला"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"एक फोटो प्राप्त झाला"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ms/strings.xml b/java/com/android/dialer/calldetails/res/values-ms/strings.xml
index 157198d..da17d6e 100644
--- a/java/com/android/dialer/calldetails/res/values-ms/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ms/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Padam"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Salin nombor"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Edit nombor sebelum panggilan"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Panggil"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Menghantar foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Foto diterima"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-my/strings.xml b/java/com/android/dialer/calldetails/res/values-my/strings.xml
index bf3f90b..75508d8 100644
--- a/java/com/android/dialer/calldetails/res/values-my/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-my/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"ဖျက်ရန်"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"နံပါတ်ကိုကူးယူရန်"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"မခေါ်ဆိုမီ နံပါတ်ကိုပြင်ဆင်ရန်"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"ခေါ်ဆိုရန်"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ဓာတ်ပုံ ပို့လိုက်သည်"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"ဓာတ်ပုံ လက်ခံရရှိသည်"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-nb/strings.xml b/java/com/android/dialer/calldetails/res/values-nb/strings.xml
index 609c8af..022025f 100644
--- a/java/com/android/dialer/calldetails/res/values-nb/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-nb/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Slett"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiér nummeret"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Rediger nummeret før du ringer"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Ring"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Et bilde ble sendt"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Et bilde ble mottatt"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ne/strings.xml b/java/com/android/dialer/calldetails/res/values-ne/strings.xml
index 6b60967..8fe355b 100644
--- a/java/com/android/dialer/calldetails/res/values-ne/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ne/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"मेट्नुहोस्"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"नम्बर प्रतिलिपि गर्नुहोस्"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"कल गर्नु अघि नम्बर सम्पादन गर्नुहोस्"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"कल"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"एउटा तस्बिर पठाइयो"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"एउटा तस्बिर प्राप्त भयो"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-nl/strings.xml b/java/com/android/dialer/calldetails/res/values-nl/strings.xml
index f5efb1a..71657b8 100644
--- a/java/com/android/dialer/calldetails/res/values-nl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-nl/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Verwijderen"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Nummer kopiëren"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Nummer bewerken vóór bellen"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Bellen"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Foto verzonden"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Foto ontvangen"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\'<xliff:g id="MESSAGE">%1$s</xliff:g>\'"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-no/strings.xml b/java/com/android/dialer/calldetails/res/values-no/strings.xml
index 609c8af..022025f 100644
--- a/java/com/android/dialer/calldetails/res/values-no/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-no/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Slett"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiér nummeret"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Rediger nummeret før du ringer"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Ring"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Et bilde ble sendt"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Et bilde ble mottatt"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-pa/strings.xml b/java/com/android/dialer/calldetails/res/values-pa/strings.xml
index 8a9ec1f..d4f1759 100644
--- a/java/com/android/dialer/calldetails/res/values-pa/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-pa/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"ਮਿਟਾਓ"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"ਨੰਬਰ ਕਾਪੀ ਕਰੋ"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"ਕਾਲ ਤੋਂ ਪਹਿਲਾਂ ਨੰਬਰ ਸੰਪਾਦਿਤ ਕਰੋ"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"ਕਾਲ ਕਰੋ"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ਇੱਕ ਫ਼ੋਟੋ ਭੇਜੀ ਗਈ"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"ਇੱਕ ਫ਼ੋਟੋ ਪ੍ਰਾਪਤ ਹੋਈ"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-pl/strings.xml b/java/com/android/dialer/calldetails/res/values-pl/strings.xml
index 1a342b0..9644600 100644
--- a/java/com/android/dialer/calldetails/res/values-pl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-pl/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Usuń"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiuj numer"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Edytuj numer, zanim zadzwonisz"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Zadzwoń"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Wysłano zdjęcie"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Odebrano zdjęcie"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-pt-rBR/strings.xml b/java/com/android/dialer/calldetails/res/values-pt-rBR/strings.xml
index 7abc8be..467973d 100644
--- a/java/com/android/dialer/calldetails/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-pt-rBR/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Excluir"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de ligar"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Ligar"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Enviou uma foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Recebeu uma foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-pt-rPT/strings.xml b/java/com/android/dialer/calldetails/res/values-pt-rPT/strings.xml
index 5e6dae8..cfbbc02 100644
--- a/java/com/android/dialer/calldetails/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-pt-rPT/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Eliminar"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Editar o número antes de efetuar a chamada"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Telefonar"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Enviou uma foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Recebeu uma foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-pt/strings.xml b/java/com/android/dialer/calldetails/res/values-pt/strings.xml
index 7abc8be..467973d 100644
--- a/java/com/android/dialer/calldetails/res/values-pt/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-pt/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Excluir"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de ligar"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Ligar"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Enviou uma foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Recebeu uma foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ro/strings.xml b/java/com/android/dialer/calldetails/res/values-ro/strings.xml
index 3a6447b..e9281ae 100644
--- a/java/com/android/dialer/calldetails/res/values-ro/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ro/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Ștergeți"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copiați numărul"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Modificați numărul înainte de apelare"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Apelați"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"A fost trimisă o fotografie."</string>
     <string name="received_a_photo" msgid="3528953225576480505">"A fost primită o fotografie."</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ru/strings.xml b/java/com/android/dialer/calldetails/res/values-ru/strings.xml
index b071dc6..bf981e2 100644
--- a/java/com/android/dialer/calldetails/res/values-ru/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ru/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Удалить"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Скопировать номер"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Изменить номер перед вызовом"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Позвонить"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Отправлена фотография"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Получена фотография"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-si/strings.xml b/java/com/android/dialer/calldetails/res/values-si/strings.xml
index 999183b..5fdca0d 100644
--- a/java/com/android/dialer/calldetails/res/values-si/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-si/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"මකන්න"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"අංකය පිටපත් කරන්න"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"ඇමතුමට පෙර අංකය සංස්කරණය කරන්න"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"අමතන්න"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ඡායාරූපයක් යැවිණි"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"ඡායාරූපයක් ලැබිණි"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-sk/strings.xml b/java/com/android/dialer/calldetails/res/values-sk/strings.xml
index 57b90cf..db04787 100644
--- a/java/com/android/dialer/calldetails/res/values-sk/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sk/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Odstrániť"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopírovať číslo"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Pred volaním upraviť číslo"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Volať"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Bola odoslaná fotka"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Bola prijatá fotka"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-sl/strings.xml b/java/com/android/dialer/calldetails/res/values-sl/strings.xml
index 83ffcbb..98975f4 100644
--- a/java/com/android/dialer/calldetails/res/values-sl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sl/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Izbriši"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiraj številko"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Pred klicanjem uredi številko"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Pokliči"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Poslana fotografija"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Prejeta fotografija"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"»<xliff:g id="MESSAGE">%1$s</xliff:g>«"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-sq/strings.xml b/java/com/android/dialer/calldetails/res/values-sq/strings.xml
index d05770f..dd9915d 100644
--- a/java/com/android/dialer/calldetails/res/values-sq/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sq/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Fshi"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopjo numrin"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Redakto numrin para telefonatës"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Telefono"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"U dërgua një fotografi"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"U mor një fotografi"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-sr/strings.xml b/java/com/android/dialer/calldetails/res/values-sr/strings.xml
index a1294df..7f4005d 100644
--- a/java/com/android/dialer/calldetails/res/values-sr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sr/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Избриши"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Копирај број"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Измените број пре позива"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Позови"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Слика је послата"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Слика је примљена"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-sv/strings.xml b/java/com/android/dialer/calldetails/res/values-sv/strings.xml
index 9b2e25e..3967b4f 100644
--- a/java/com/android/dialer/calldetails/res/values-sv/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sv/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Radera"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiera nummer"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Redigera nummer före samtal"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Ring"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Skickade ett foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Tog emot ett foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"<xliff:g id="MESSAGE">%1$s</xliff:g>"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-sw/strings.xml b/java/com/android/dialer/calldetails/res/values-sw/strings.xml
index b767337..e5df823 100644
--- a/java/com/android/dialer/calldetails/res/values-sw/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sw/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Futa"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Nakili nambari"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Hariri nambari kabla ya kupiga"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Piga simu"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Picha imetumwa"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Picha imepokelewa"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ta/strings.xml b/java/com/android/dialer/calldetails/res/values-ta/strings.xml
index 51ff04f..840ad87 100644
--- a/java/com/android/dialer/calldetails/res/values-ta/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ta/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"நீக்கு"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"எண்ணை நகலெடு"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"அழைப்பதற்கு முன் எண்ணைத் திருத்து"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"அழை"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"படம் அனுப்பப்பட்டது"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"படம் பெறப்பட்டது"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-te/strings.xml b/java/com/android/dialer/calldetails/res/values-te/strings.xml
index 1d44e55..3054444 100644
--- a/java/com/android/dialer/calldetails/res/values-te/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-te/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"తొలగించు"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"నంబర్‌ను కాపీ చేయి"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"కాల్ చేసే ముందు నంబర్‌ను సవరించు"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"కాల్ చేయి"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ఫోటో పంపబడింది"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"ఫోటో స్వీకరించబడింది"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-th/strings.xml b/java/com/android/dialer/calldetails/res/values-th/strings.xml
index 3fe88f9..c565eba 100644
--- a/java/com/android/dialer/calldetails/res/values-th/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-th/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"ลบ"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"คัดลอกหมายเลข"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"แก้ไขหมายเลขก่อนโทร"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"โทร"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ส่งรูปภาพแล้ว"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"ได้รับรูปภาพแล้ว"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-tl/strings.xml b/java/com/android/dialer/calldetails/res/values-tl/strings.xml
index 91fb3be..81c148e 100644
--- a/java/com/android/dialer/calldetails/res/values-tl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-tl/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"I-delete"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopyahin ang numero"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"I-edit ang numero bago tumawag"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Tumawag"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Nagpadala ng larawan"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Nakatanggap ng larawan"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-tr/strings.xml b/java/com/android/dialer/calldetails/res/values-tr/strings.xml
index f84d0b3..ade4018 100644
--- a/java/com/android/dialer/calldetails/res/values-tr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-tr/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Sil"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Numarayı kopyala"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Telefon etmeden önce numarayı düzenleyin"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Telefon eder"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Bir fotoğraf gönderildi"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Bir fotoğraf alındı"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-uk/strings.xml b/java/com/android/dialer/calldetails/res/values-uk/strings.xml
index bf6e0ac..6538d66 100644
--- a/java/com/android/dialer/calldetails/res/values-uk/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-uk/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Видалити"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Копіювати номер"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Редагувати номер перед дзвінком"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Виклик"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Надіслано фотографію"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Отримано фотографію"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ur/strings.xml b/java/com/android/dialer/calldetails/res/values-ur/strings.xml
index 5a22869..90c3a59 100644
--- a/java/com/android/dialer/calldetails/res/values-ur/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ur/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"حذف کریں"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"نمبر کاپی کریں"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"کال کرنے سے پہلے نمبر میں ترمیم کریں"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"کال"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ایک تصویر بھیجی"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"ایک تصویر موصول ہوئی"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-uz/strings.xml b/java/com/android/dialer/calldetails/res/values-uz/strings.xml
index 890b7ae..7b443ca 100644
--- a/java/com/android/dialer/calldetails/res/values-uz/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-uz/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"O‘chirib tashlash"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Raqamni nusxalash"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Qo‘ng‘iroq qilishdan oldin raqamni tahrirlash"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Qo‘ng‘iroq qilish"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Rasm yuborildi"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Rasm qabul qilindi"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"“<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-vi/strings.xml b/java/com/android/dialer/calldetails/res/values-vi/strings.xml
index b589632..7a95021 100644
--- a/java/com/android/dialer/calldetails/res/values-vi/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-vi/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Xóa"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Sao chép số"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Chỉnh sửa số trước khi gọi"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Gọi"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Đã gửi một ảnh"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Đã nhận một ảnh"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-zh-rCN/strings.xml b/java/com/android/dialer/calldetails/res/values-zh-rCN/strings.xml
index 7b8b972..aad695a 100644
--- a/java/com/android/dialer/calldetails/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-zh-rCN/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"删除"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"复制号码"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"拨打电话之前修改号码"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"拨打电话"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"发送了一张照片"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"收到了一张照片"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"“<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-zh-rHK/strings.xml b/java/com/android/dialer/calldetails/res/values-zh-rHK/strings.xml
index 8771098..eb5b606 100644
--- a/java/com/android/dialer/calldetails/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-zh-rHK/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"刪除"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"複製號碼"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"在撥打前編輯號碼"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"通話"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"已傳送相片"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"已收到相片"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"「<xliff:g id="MESSAGE">%1$s</xliff:g>」"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-zh-rTW/strings.xml b/java/com/android/dialer/calldetails/res/values-zh-rTW/strings.xml
index 73aba80..fd426c0 100644
--- a/java/com/android/dialer/calldetails/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-zh-rTW/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"刪除"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"複製號碼"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"撥打電話前編輯號碼"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"撥號"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"傳送了 1 張相片"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"收到了 1 張相片"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"「<xliff:g id="MESSAGE">%1$s</xliff:g>」"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-zu/strings.xml b/java/com/android/dialer/calldetails/res/values-zu/strings.xml
index 94040ce..d41d1f5 100644
--- a/java/com/android/dialer/calldetails/res/values-zu/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-zu/strings.xml
@@ -21,6 +21,7 @@
     <string name="delete" msgid="2141020674108406737">"Susa"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopisha inombolo"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Hlela inombolo ngaphambi kokushaya ucingo"</string>
+    <string name="description_call_log_call_action" msgid="1421313064764221900">"Shaya"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Uthumele isithombe"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Uthole isithombe"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values/dimens.xml b/java/com/android/dialer/calldetails/res/values/dimens.xml
index 91bf70e..f85d02f 100644
--- a/java/com/android/dialer/calldetails/res/values/dimens.xml
+++ b/java/com/android/dialer/calldetails/res/values/dimens.xml
@@ -15,6 +15,8 @@
   ~ limitations under the License
   -->
 <resources>
+  <dimen name="call_details_primary_text_size">16sp</dimen>
+  <dimen name="call_details_secondary_text_size">14sp</dimen>
   <dimen name="call_details_top_margin">6dp</dimen>
 
   <!-- contact container -->
diff --git a/java/com/android/dialer/calldetails/res/values/strings.xml b/java/com/android/dialer/calldetails/res/values/strings.xml
index 6b3b179..4471605 100644
--- a/java/com/android/dialer/calldetails/res/values/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values/strings.xml
@@ -27,6 +27,10 @@
   <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
   <string name="call_details_edit_number">Edit number before call</string>
 
+  <!-- String describing the phone icon on a call log list item. When tapped, it will place a
+       call to the number represented by that call log entry. [CHAR LIMIT=NONE]-->
+  <string name="description_call_log_call_action">Call</string>
+
   <!-- String shown when the call details show a image that was sent -->
   <string name="sent_a_photo">Sent a photo</string>
 
diff --git a/java/com/android/dialer/calldetails/res/values/styles.xml b/java/com/android/dialer/calldetails/res/values/styles.xml
index 1a2b529..4fffe1a 100644
--- a/java/com/android/dialer/calldetails/res/values/styles.xml
+++ b/java/com/android/dialer/calldetails/res/values/styles.xml
@@ -15,6 +15,24 @@
   ~ limitations under the License
   -->
 <resources>
+  <style name="PrimaryText">
+    <item name="android:textColor">#DE000000</item>
+    <item name="android:textSize">@dimen/call_details_primary_text_size</item>
+    <item name="android:maxLines">1</item>
+  </style>
+
+  <style name="SecondaryText">
+    <item name="android:textColor">#8A000000</item>
+    <item name="android:textSize">@dimen/call_details_secondary_text_size</item>
+    <item name="android:maxLines">1</item>
+  </style>
+
+  <style name="ECText">
+    <item name="android:textColor">#8A000000</item>
+    <item name="android:textSize">@dimen/call_details_ec_text_size</item>
+    <item name="android:maxLines">1</item>
+  </style>
+
   <style name="CallDetailsActionItemStyle">
     <item name="android:foreground">?android:attr/selectableItemBackground</item>
     <item name="android:clickable">true</item>
diff --git a/java/com/android/dialer/callintent/call_specific_app_data.proto b/java/com/android/dialer/callintent/call_specific_app_data.proto
index c62006d..20ffc1f 100644
--- a/java/com/android/dialer/callintent/call_specific_app_data.proto
+++ b/java/com/android/dialer/callintent/call_specific_app_data.proto
@@ -7,7 +7,6 @@
 package com.android.dialer.callintent;
 
 import "java/com/android/dialer/callintent/call_initiation_type.proto";
-import "java/com/android/dialer/callintent/speed_dial_contact_type.proto";
 
 // Miscellaneous data that's included in a new outgoing call initiated by
 // Dialer. The system will pass this data to the InCallUi which can use it
@@ -18,7 +17,4 @@
   optional int32 position_of_selected_search_result = 2;
 
   optional int32 characters_in_search_string = 3;
-
-  repeated SpeedDialContactType.Type speed_dial_contact_type = 4;
-  optional int32 speed_dial_contact_position = 5;
 }
diff --git a/java/com/android/dialer/callintent/speed_dial_contact_type.proto b/java/com/android/dialer/callintent/speed_dial_contact_type.proto
deleted file mode 100644
index d352f45..0000000
--- a/java/com/android/dialer/callintent/speed_dial_contact_type.proto
+++ /dev/null
@@ -1,18 +0,0 @@
-syntax = "proto2";
-
-option java_package = "com.android.dialer.callintent";
-option java_multiple_files = true;
-
-package com.android.dialer.callintent;
-option optimize_for = LITE_RUNTIME;
-
-// The type of speed call contact (favorites). Applies to initiation type
-// SPEED_DIAL only.
-message SpeedDialContactType {
-  enum Type {
-    UNDEFINED = 0;
-    PINNED_CONTACT = 1;
-    STARRED_CONTACT = 2;
-    FREQUENT_CONTACT = 3;
-  }
-}
diff --git a/java/com/android/dialer/calllog/CallLogComponent.java b/java/com/android/dialer/calllog/CallLogComponent.java
index c7db2a1..5cdd2b4 100644
--- a/java/com/android/dialer/calllog/CallLogComponent.java
+++ b/java/com/android/dialer/calllog/CallLogComponent.java
@@ -25,8 +25,6 @@
 
   public abstract CallLogFramework callLogFramework();
 
-  public abstract RefreshAnnotatedCallLogWorker getRefreshAnnotatedCallLogWorker();
-
   public static CallLogComponent get(Context context) {
     return ((HasComponent) ((HasRootComponent) context.getApplicationContext()).component())
         .callLogComponent();
diff --git a/java/com/android/dialer/calllog/CallLogFramework.java b/java/com/android/dialer/calllog/CallLogFramework.java
index 55ef15b..508413b 100644
--- a/java/com/android/dialer/calllog/CallLogFramework.java
+++ b/java/com/android/dialer/calllog/CallLogFramework.java
@@ -22,7 +22,6 @@
 import android.support.annotation.MainThread;
 import android.support.annotation.Nullable;
 import com.android.dialer.calllog.datasources.CallLogDataSource;
-import com.android.dialer.calllog.datasources.DataSources;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.ConfigProviderBindings;
 import com.android.dialer.common.LogUtil;
@@ -39,6 +38,7 @@
 public final class CallLogFramework implements CallLogDataSource.ContentObserverCallbacks {
 
   static final String PREF_FORCE_REBUILD = "callLogFrameworkForceRebuild";
+  static final String PREF_LAST_REBUILD_TIMESTAMP_MILLIS = "callLogFrameworkLastRebuild";
 
   private final DataSources dataSources;
 
@@ -58,7 +58,6 @@
     LogUtil.enterBlock("CallLogFramework.registerContentObservers");
 
     if (!isNewCallLogEnabled(appContext)) {
-      LogUtil.i("CallLogFramework.registerContentObservers", "new call log not enabled");
       return;
     }
 
diff --git a/java/com/android/dialer/calllog/CallLogModule.java b/java/com/android/dialer/calllog/CallLogModule.java
index 2f2f16d..d7473a7 100644
--- a/java/com/android/dialer/calllog/CallLogModule.java
+++ b/java/com/android/dialer/calllog/CallLogModule.java
@@ -17,9 +17,11 @@
 package com.android.dialer.calllog;
 
 import com.android.dialer.calllog.datasources.CallLogDataSource;
-import com.android.dialer.calllog.datasources.DataSources;
 import com.android.dialer.calllog.datasources.contacts.ContactsDataSource;
 import com.android.dialer.calllog.datasources.systemcalllog.SystemCallLogDataSource;
+import com.android.dialer.common.concurrent.DefaultDialerExecutorFactory;
+import com.android.dialer.common.concurrent.DialerExecutorFactory;
+import dagger.Binds;
 import dagger.Module;
 import dagger.Provides;
 import java.util.Arrays;
@@ -30,6 +32,10 @@
 @Module
 public abstract class CallLogModule {
 
+  @Binds
+  abstract DialerExecutorFactory bindDialerExecutorFactory(
+      DefaultDialerExecutorFactory defaultDialerExecutorFactory);
+
   @Provides
   static DataSources provideCallLogDataSources(
       SystemCallLogDataSource systemCallLogDataSource, ContactsDataSource contactsDataSource) {
diff --git a/java/com/android/dialer/calllog/datasources/DataSources.java b/java/com/android/dialer/calllog/DataSources.java
similarity index 88%
rename from java/com/android/dialer/calllog/datasources/DataSources.java
rename to java/com/android/dialer/calllog/DataSources.java
index 911ca3f..21d1901 100644
--- a/java/com/android/dialer/calllog/datasources/DataSources.java
+++ b/java/com/android/dialer/calllog/DataSources.java
@@ -14,13 +14,14 @@
  * limitations under the License
  */
 
-package com.android.dialer.calllog.datasources;
+package com.android.dialer.calllog;
 
+import com.android.dialer.calllog.datasources.CallLogDataSource;
 import com.android.dialer.calllog.datasources.systemcalllog.SystemCallLogDataSource;
 import java.util.List;
 
 /** Immutable lists of data sources used to populate the annotated call log. */
-public interface DataSources {
+interface DataSources {
 
   SystemCallLogDataSource getSystemCallLogDataSource();
 
diff --git a/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java b/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java
index d25ec5e..f9f0c99 100644
--- a/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java
+++ b/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java
@@ -18,16 +18,14 @@
 
 import android.annotation.TargetApi;
 import android.content.Context;
-import android.content.OperationApplicationException;
 import android.content.SharedPreferences;
+import android.database.sqlite.SQLiteDatabase;
 import android.os.Build;
-import android.os.RemoteException;
 import android.preference.PreferenceManager;
 import android.support.annotation.WorkerThread;
-import com.android.dialer.calllog.database.CallLogDatabaseComponent;
+import com.android.dialer.calllog.database.AnnotatedCallLog;
+import com.android.dialer.calllog.database.CallLogMutations;
 import com.android.dialer.calllog.datasources.CallLogDataSource;
-import com.android.dialer.calllog.datasources.CallLogMutations;
-import com.android.dialer.calllog.datasources.DataSources;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.concurrent.DialerExecutor.Worker;
@@ -36,65 +34,75 @@
 /**
  * Worker which brings the annotated call log up to date, if necessary.
  *
- * <p>Accepts a boolean which indicates if the dirty check should be skipped.
+ * <p>Accepts a boolean which indicates if the dirty check should be skipped, and returns true if
+ * the annotated call log was updated.
  */
-public class RefreshAnnotatedCallLogWorker implements Worker<Boolean, Void> {
+public class RefreshAnnotatedCallLogWorker implements Worker<Boolean, Boolean> {
 
   private final Context appContext;
   private final DataSources dataSources;
 
   @Inject
-  RefreshAnnotatedCallLogWorker(Context appContext, DataSources dataSources) {
+  public RefreshAnnotatedCallLogWorker(Context appContext, DataSources dataSources) {
     this.appContext = appContext;
     this.dataSources = dataSources;
   }
 
   @Override
-  public Void doInBackground(Boolean skipDirtyCheck)
-      throws RemoteException, OperationApplicationException {
-    LogUtil.enterBlock("RefreshAnnotatedCallLogWorker.doInBackground");
+  public Boolean doInBackground(Boolean skipDirtyCheck) {
+    LogUtil.enterBlock("RefreshAnnotatedCallLogWorker.doInBackgroundFallible");
 
     long startTime = System.currentTimeMillis();
-    checkDirtyAndRebuildIfNecessary(appContext, skipDirtyCheck);
+    boolean annotatedCallLogUpdated = checkDirtyAndRebuildIfNecessary(appContext, skipDirtyCheck);
     LogUtil.i(
-        "RefreshAnnotatedCallLogWorker.doInBackground",
-        "took %dms",
+        "RefreshAnnotatedCallLogWorker.doInBackgroundFallible",
+        "updated? %s, took %dms",
+        annotatedCallLogUpdated,
         System.currentTimeMillis() - startTime);
-    return null;
+    return annotatedCallLogUpdated;
   }
 
   @WorkerThread
-  private void checkDirtyAndRebuildIfNecessary(Context appContext, boolean skipDirtyCheck)
-      throws RemoteException, OperationApplicationException {
+  private boolean checkDirtyAndRebuildIfNecessary(Context appContext, boolean skipDirtyCheck) {
     Assert.isWorkerThread();
 
     long startTime = System.currentTimeMillis();
 
     SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(appContext);
-    // Default to true. If the pref doesn't exist, the annotated call log hasn't been created and
-    // we just skip isDirty checks and force a rebuild.
+    long lastRebuildTimeMillis =
+        sharedPreferences.getLong(CallLogFramework.PREF_LAST_REBUILD_TIMESTAMP_MILLIS, 0);
+    if (lastRebuildTimeMillis == 0) {
+      LogUtil.i(
+          "RefreshAnnotatedCallLogWorker.checkDirtyAndRebuildIfNecessary",
+          "annotated call log has never been built, marking it dirty");
+    }
     boolean forceRebuildPrefValue =
-        sharedPreferences.getBoolean(CallLogFramework.PREF_FORCE_REBUILD, true);
+        sharedPreferences.getBoolean(CallLogFramework.PREF_FORCE_REBUILD, false);
     if (forceRebuildPrefValue) {
       LogUtil.i(
           "RefreshAnnotatedCallLogWorker.checkDirtyAndRebuildIfNecessary",
-          "annotated call log has been marked dirty or does not exist");
+          "call log has been marked dirty");
     }
 
-    boolean isDirty = skipDirtyCheck || forceRebuildPrefValue || isDirty(appContext);
-
+    boolean isDirty =
+        lastRebuildTimeMillis == 0
+            || skipDirtyCheck
+            || forceRebuildPrefValue
+            || isDirty(appContext);
     LogUtil.i(
         "RefreshAnnotatedCallLogWorker.checkDirtyAndRebuildIfNecessary",
         "isDirty took: %dms",
         System.currentTimeMillis() - startTime);
     if (isDirty) {
       startTime = System.currentTimeMillis();
-      rebuild(appContext);
+      rebuild(appContext, lastRebuildTimeMillis);
       LogUtil.i(
           "RefreshAnnotatedCallLogWorker.checkDirtyAndRebuildIfNecessary",
           "rebuild took: %dms",
           System.currentTimeMillis() - startTime);
+      return true; // Annotated call log was updated.
     }
+    return false; // Annotated call log was not updated.
   }
 
   @WorkerThread
@@ -121,48 +129,51 @@
 
   @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
   @WorkerThread
-  private void rebuild(Context appContext) throws RemoteException, OperationApplicationException {
+  private void rebuild(Context appContext, long lastRebuildTimeMillis) {
     Assert.isWorkerThread();
 
-    CallLogMutations mutations = new CallLogMutations();
+    // TODO: Start a transaction?
+    try (SQLiteDatabase database = AnnotatedCallLog.getWritableDatabase(appContext)) {
 
-    // System call log data source must go first!
-    CallLogDataSource systemCallLogDataSource = dataSources.getSystemCallLogDataSource();
-    String dataSourceName = getName(systemCallLogDataSource);
-    LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "filling %s", dataSourceName);
-    long startTime = System.currentTimeMillis();
-    systemCallLogDataSource.fill(appContext, mutations);
-    LogUtil.i(
-        "RefreshAnnotatedCallLogWorker.rebuild",
-        "%s.fill took: %dms",
-        dataSourceName,
-        System.currentTimeMillis() - startTime);
+      CallLogMutations mutations = new CallLogMutations();
 
-    for (CallLogDataSource dataSource : dataSources.getDataSourcesExcludingSystemCallLog()) {
-      dataSourceName = getName(dataSource);
+      // System call log data source must go first!
+      CallLogDataSource systemCallLogDataSource = dataSources.getSystemCallLogDataSource();
+      String dataSourceName = getName(systemCallLogDataSource);
       LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "filling %s", dataSourceName);
-      startTime = System.currentTimeMillis();
-      dataSource.fill(appContext, mutations);
+      long startTime = System.currentTimeMillis();
+      systemCallLogDataSource.fill(appContext, database, lastRebuildTimeMillis, mutations);
       LogUtil.i(
-          "CallLogFramework.rebuild",
+          "RefreshAnnotatedCallLogWorker.rebuild",
           "%s.fill took: %dms",
           dataSourceName,
           System.currentTimeMillis() - startTime);
+
+      for (CallLogDataSource dataSource : dataSources.getDataSourcesExcludingSystemCallLog()) {
+        dataSourceName = getName(dataSource);
+        LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "filling %s", dataSourceName);
+        startTime = System.currentTimeMillis();
+        dataSource.fill(appContext, database, lastRebuildTimeMillis, mutations);
+        LogUtil.i(
+            "CallLogFramework.rebuild",
+            "%s.fill took: %dms",
+            dataSourceName,
+            System.currentTimeMillis() - startTime);
+      }
+      LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "applying mutations to database");
+      startTime = System.currentTimeMillis();
+      mutations.applyToDatabase(database);
+      LogUtil.i(
+          "RefreshAnnotatedCallLogWorker.rebuild",
+          "applyToDatabase took: %dms",
+          System.currentTimeMillis() - startTime);
     }
-    LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "applying mutations to database");
-    startTime = System.currentTimeMillis();
-    CallLogDatabaseComponent.get(appContext)
-        .mutationApplier()
-        .applyToDatabase(mutations, appContext);
-    LogUtil.i(
-        "RefreshAnnotatedCallLogWorker.rebuild",
-        "applyToDatabase took: %dms",
-        System.currentTimeMillis() - startTime);
 
     SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(appContext);
     sharedPreferences
         .edit()
         .putBoolean(CallLogFramework.PREF_FORCE_REBUILD, false)
+        .putLong(CallLogFramework.PREF_LAST_REBUILD_TIMESTAMP_MILLIS, System.currentTimeMillis())
         .commit();
   }
 
diff --git a/java/com/android/dialer/calllog/database/AndroidManifest.xml b/java/com/android/dialer/calllog/database/AndroidManifest.xml
deleted file mode 100644
index 396a6d9..0000000
--- a/java/com/android/dialer/calllog/database/AndroidManifest.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.dialer.calllog.database">
-
-  <application>
-
-    <provider
-        android:authorities="com.android.dialer.annotatedcalllog"
-        android:exported="false"
-        android:multiprocess="false"
-        android:name=".AnnotatedCallLogContentProvider"/>
-
-  </application>
-</manifest>
diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLog.java b/java/com/android/dialer/calllog/database/AnnotatedCallLog.java
new file mode 100644
index 0000000..7dca44a
--- /dev/null
+++ b/java/com/android/dialer/calllog/database/AnnotatedCallLog.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.calllog.database;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.support.annotation.WorkerThread;
+import com.android.dialer.common.Assert;
+
+/** Static methods and constants for interacting with the annotated call log table. */
+public final class AnnotatedCallLog {
+
+  private static final String DATABASE_NAME = "annotated_call_log.db";
+
+  public static final String TABLE_NAME = "AnnotatedCallLog";
+
+  /** Column names for the annotated call log table. */
+  public static final class Columns {
+    public static final String ID = "_id";
+    public static final String TIMESTAMP = "timestamp";
+    public static final String CONTACT_NAME = "contact_name";
+  }
+
+  private AnnotatedCallLog() {}
+
+  @WorkerThread
+  public static SQLiteDatabase getWritableDatabase(Context appContext) {
+    Assert.isWorkerThread();
+
+    return new AnnotatedCallLogDatabaseHelper(appContext, DATABASE_NAME).getWritableDatabase();
+  }
+
+  @WorkerThread
+  public static SQLiteDatabase getReadableDatabase(Context appContext) {
+    Assert.isWorkerThread();
+
+    return new AnnotatedCallLogDatabaseHelper(appContext, DATABASE_NAME).getReadableDatabase();
+  }
+}
diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java b/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java
deleted file mode 100644
index a9c0d36..0000000
--- a/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialer.calllog.database;
-
-import android.annotation.TargetApi;
-import android.content.ContentProvider;
-import android.content.ContentProviderOperation;
-import android.content.ContentProviderResult;
-import android.content.ContentUris;
-import android.content.ContentValues;
-import android.content.OperationApplicationException;
-import android.content.UriMatcher;
-import android.database.Cursor;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteQueryBuilder;
-import android.net.Uri;
-import android.os.Build;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract;
-import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
-import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.CoalescedAnnotatedCallLog;
-import com.android.dialer.common.Assert;
-import com.android.dialer.common.LogUtil;
-import java.util.ArrayList;
-
-/** {@link ContentProvider} for the annotated call log. */
-public class AnnotatedCallLogContentProvider extends ContentProvider {
-
-  private static final int ANNOTATED_CALL_LOG_TABLE_CODE = 1;
-  private static final int ANNOTATED_CALL_LOG_TABLE_ID_CODE = 2;
-  private static final int COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE = 3;
-
-  private static final UriMatcher uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
-
-  static {
-    uriMatcher.addURI(
-        AnnotatedCallLogContract.AUTHORITY, AnnotatedCallLog.TABLE, ANNOTATED_CALL_LOG_TABLE_CODE);
-    uriMatcher.addURI(
-        AnnotatedCallLogContract.AUTHORITY,
-        AnnotatedCallLog.TABLE + "/#",
-        ANNOTATED_CALL_LOG_TABLE_ID_CODE);
-    uriMatcher.addURI(
-        AnnotatedCallLogContract.AUTHORITY,
-        CoalescedAnnotatedCallLog.TABLE,
-        COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE);
-  }
-
-  private AnnotatedCallLogDatabaseHelper databaseHelper;
-  private Coalescer coalescer;
-
-  private final ThreadLocal<Boolean> applyingBatch = new ThreadLocal<>();
-
-  /** Ensures that only a single notification is generated from {@link #applyBatch(ArrayList)}. */
-  private boolean isApplyingBatch() {
-    return applyingBatch.get() != null && applyingBatch.get();
-  }
-
-  @Override
-  public boolean onCreate() {
-    databaseHelper = new AnnotatedCallLogDatabaseHelper(getContext());
-    coalescer = CallLogDatabaseComponent.get(getContext()).coalescer();
-    return true;
-  }
-
-  @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
-  @Nullable
-  @Override
-  public Cursor query(
-      @NonNull Uri uri,
-      @Nullable String[] projection,
-      @Nullable String selection,
-      @Nullable String[] selectionArgs,
-      @Nullable String sortOrder) {
-    SQLiteDatabase db = databaseHelper.getReadableDatabase();
-    SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
-    queryBuilder.setTables(AnnotatedCallLog.TABLE);
-    int match = uriMatcher.match(uri);
-    switch (match) {
-      case ANNOTATED_CALL_LOG_TABLE_ID_CODE:
-        queryBuilder.appendWhere(AnnotatedCallLog._ID + "=" + ContentUris.parseId(uri));
-        // fall through
-      case ANNOTATED_CALL_LOG_TABLE_CODE:
-        Cursor cursor =
-            queryBuilder.query(db, projection, selection, selectionArgs, null, null, sortOrder);
-        if (cursor != null) {
-          cursor.setNotificationUri(
-              getContext().getContentResolver(), AnnotatedCallLog.CONTENT_URI);
-        } else {
-          LogUtil.w("AnnotatedCallLogContentProvider.query", "cursor was null");
-        }
-        return cursor;
-      case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE:
-        Assert.checkArgument(projection == null, "projection not supported for coalesced call log");
-        Assert.checkArgument(selection == null, "selection not supported for coalesced call log");
-        Assert.checkArgument(
-            selectionArgs == null, "selection args not supported for coalesced call log");
-        Assert.checkArgument(sortOrder == null, "sort order not supported for coalesced call log");
-        try (Cursor allAnnotatedCallLogRows =
-            queryBuilder.query(
-                db, null, null, null, null, null, AnnotatedCallLog.TIMESTAMP + " DESC")) {
-          Cursor coalescedRows = coalescer.coalesce(allAnnotatedCallLogRows);
-          coalescedRows.setNotificationUri(
-              getContext().getContentResolver(), CoalescedAnnotatedCallLog.CONTENT_URI);
-          return coalescedRows;
-        }
-      default:
-        throw new IllegalArgumentException("Unknown uri: " + uri);
-    }
-  }
-
-  @Nullable
-  @Override
-  public String getType(@NonNull Uri uri) {
-    return AnnotatedCallLog.CONTENT_ITEM_TYPE;
-  }
-
-  @Nullable
-  @Override
-  public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
-    // Javadoc states values is not nullable, even though it is annotated as such (b/38123194)!
-    Assert.checkArgument(values != null);
-
-    SQLiteDatabase database = databaseHelper.getWritableDatabase();
-    int match = uriMatcher.match(uri);
-    switch (match) {
-      case ANNOTATED_CALL_LOG_TABLE_CODE:
-        Assert.checkArgument(
-            values.get(AnnotatedCallLog._ID) != null, "You must specify an _ID when inserting");
-        break;
-      case ANNOTATED_CALL_LOG_TABLE_ID_CODE:
-        Long idFromUri = ContentUris.parseId(uri);
-        Long idFromValues = values.getAsLong(AnnotatedCallLog._ID);
-        Assert.checkArgument(
-            idFromValues == null || idFromValues.equals(idFromUri),
-            "_ID from values %d does not match ID from URI: %s",
-            idFromValues,
-            uri);
-        if (idFromValues == null) {
-          values.put(AnnotatedCallLog._ID, idFromUri);
-        }
-        break;
-      case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE:
-        throw new UnsupportedOperationException("coalesced call log does not support inserting");
-      default:
-        throw new IllegalArgumentException("Unknown uri: " + uri);
-    }
-    long id = database.insert(AnnotatedCallLog.TABLE, null, values);
-    if (id < 0) {
-      LogUtil.w(
-          "AnnotatedCallLogContentProvider.insert",
-          "error inserting row with id: %d",
-          values.get(AnnotatedCallLog._ID));
-      return null;
-    }
-    Uri insertedUri = ContentUris.withAppendedId(AnnotatedCallLog.CONTENT_URI, id);
-    if (!isApplyingBatch()) {
-      notifyChange(insertedUri);
-    }
-    return insertedUri;
-  }
-
-  @Override
-  public int delete(
-      @NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
-    SQLiteDatabase database = databaseHelper.getWritableDatabase();
-    final int match = uriMatcher.match(uri);
-    switch (match) {
-      case ANNOTATED_CALL_LOG_TABLE_CODE:
-        break;
-      case ANNOTATED_CALL_LOG_TABLE_ID_CODE:
-        Assert.checkArgument(selection == null, "Do not specify selection when deleting by ID");
-        Assert.checkArgument(
-            selectionArgs == null, "Do not specify selection args when deleting by ID");
-        long id = ContentUris.parseId(uri);
-        Assert.checkArgument(id != -1, "error parsing id from uri %s", uri);
-        selection = getSelectionWithId(id);
-        break;
-      case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE:
-        throw new UnsupportedOperationException("coalesced call log does not support deleting");
-      default:
-        throw new IllegalArgumentException("Unknown uri: " + uri);
-    }
-    int rows = database.delete(AnnotatedCallLog.TABLE, selection, selectionArgs);
-    if (rows > 0) {
-      if (!isApplyingBatch()) {
-        notifyChange(uri);
-      }
-    } else {
-      LogUtil.w("AnnotatedCallLogContentProvider.delete", "no rows deleted");
-    }
-    return rows;
-  }
-
-  @Override
-  public int update(
-      @NonNull Uri uri,
-      @Nullable ContentValues values,
-      @Nullable String selection,
-      @Nullable String[] selectionArgs) {
-    // Javadoc states values is not nullable, even though it is annotated as such (b/38123194)!
-    Assert.checkArgument(values != null);
-
-    SQLiteDatabase database = databaseHelper.getWritableDatabase();
-    int match = uriMatcher.match(uri);
-    switch (match) {
-      case ANNOTATED_CALL_LOG_TABLE_CODE:
-        break;
-      case ANNOTATED_CALL_LOG_TABLE_ID_CODE:
-        Assert.checkArgument(
-            !values.containsKey(AnnotatedCallLog._ID), "Do not specify _ID when updating by ID");
-        Assert.checkArgument(selection == null, "Do not specify selection when updating by ID");
-        Assert.checkArgument(
-            selectionArgs == null, "Do not specify selection args when updating by ID");
-        selection = getSelectionWithId(ContentUris.parseId(uri));
-        break;
-      case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE:
-        throw new UnsupportedOperationException("coalesced call log does not support updating");
-      default:
-        throw new IllegalArgumentException("Unknown uri: " + uri);
-    }
-    int rows = database.update(AnnotatedCallLog.TABLE, values, selection, selectionArgs);
-    if (rows > 0) {
-      if (!isApplyingBatch()) {
-        notifyChange(uri);
-      }
-    } else {
-      LogUtil.w("AnnotatedCallLogContentProvider.update", "no rows updated");
-    }
-    return rows;
-  }
-
-  /**
-   * {@inheritDoc}
-   *
-   * <p>Note: When applyBatch is used with the AnnotatedCallLog, only a single notification for the
-   * content URI is generated, not individual notifications for each affected URI.
-   */
-  @NonNull
-  @Override
-  public ContentProviderResult[] applyBatch(@NonNull ArrayList<ContentProviderOperation> operations)
-      throws OperationApplicationException {
-    ContentProviderResult[] results = new ContentProviderResult[operations.size()];
-    if (operations.isEmpty()) {
-      return results;
-    }
-
-    SQLiteDatabase database = databaseHelper.getWritableDatabase();
-    try {
-      applyingBatch.set(true);
-      database.beginTransaction();
-      for (int i = 0; i < operations.size(); i++) {
-        ContentProviderOperation operation = operations.get(i);
-        int match = uriMatcher.match(operation.getUri());
-        switch (match) {
-          case ANNOTATED_CALL_LOG_TABLE_CODE:
-          case ANNOTATED_CALL_LOG_TABLE_ID_CODE:
-            // These are allowed values, continue.
-            break;
-          case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE:
-            throw new UnsupportedOperationException(
-                "coalesced call log does not support applyBatch");
-          default:
-            throw new IllegalArgumentException("Unknown uri: " + operation.getUri());
-        }
-        ContentProviderResult result = operation.apply(this, results, i);
-        if (operations.get(i).isInsert()) {
-          if (result.uri == null) {
-            throw new OperationApplicationException("error inserting row");
-          }
-        } else if (result.count == 0) {
-          throw new OperationApplicationException("error updating or deleting rows");
-        }
-        results[i] = result;
-      }
-      database.setTransactionSuccessful();
-    } finally {
-      applyingBatch.set(false);
-      database.endTransaction();
-    }
-    notifyChange(AnnotatedCallLog.CONTENT_URI);
-    return results;
-  }
-
-  private String getSelectionWithId(long id) {
-    return AnnotatedCallLog._ID + "=" + id;
-  }
-
-  private void notifyChange(Uri uri) {
-    getContext().getContentResolver().notifyChange(uri, null);
-    // Any time the annotated call log changes, we need to also notify observers of the
-    // CoalescedAnnotatedCallLog, since that is just a massaged in-memory view of the real annotated
-    // call log table.
-    getContext().getContentResolver().notifyChange(CoalescedAnnotatedCallLog.CONTENT_URI, null);
-  }
-}
diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
index 3cca639..7b28e55 100644
--- a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
+++ b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
@@ -16,25 +16,28 @@
 
 package com.android.dialer.calllog.database;
 
+import static com.android.dialer.calllog.database.AnnotatedCallLog.Columns.CONTACT_NAME;
+import static com.android.dialer.calllog.database.AnnotatedCallLog.Columns.ID;
+import static com.android.dialer.calllog.database.AnnotatedCallLog.Columns.TIMESTAMP;
+
 import android.content.Context;
 import android.database.sqlite.SQLiteDatabase;
 import android.database.sqlite.SQLiteOpenHelper;
-import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
 import com.android.dialer.common.LogUtil;
 
 /** {@link SQLiteOpenHelper} for the AnnotatedCallLog database. */
 class AnnotatedCallLogDatabaseHelper extends SQLiteOpenHelper {
 
-  AnnotatedCallLogDatabaseHelper(Context appContext) {
-    super(appContext, "annotated_call_log.db", null, 1);
+  AnnotatedCallLogDatabaseHelper(Context appContext, String databaseName) {
+    super(appContext, databaseName, null, 1);
   }
 
   private static final String CREATE_SQL =
       new StringBuilder()
-          .append("create table if not exists " + AnnotatedCallLog.TABLE + " (")
-          .append(AnnotatedCallLog._ID + " integer primary key, ")
-          .append(AnnotatedCallLog.TIMESTAMP + " integer, ")
-          .append(AnnotatedCallLog.CONTACT_NAME + " string")
+          .append("create table if not exists " + AnnotatedCallLog.TABLE_NAME + " (")
+          .append(ID + " integer primary key, ")
+          .append(TIMESTAMP + " integer, ")
+          .append(CONTACT_NAME + " string")
           .append(");")
           .toString();
 
diff --git a/java/com/android/dialer/calllog/database/CallLogDatabaseComponent.java b/java/com/android/dialer/calllog/database/CallLogDatabaseComponent.java
deleted file mode 100644
index ede4691..0000000
--- a/java/com/android/dialer/calllog/database/CallLogDatabaseComponent.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.dialer.calllog.database;
-
-import android.content.Context;
-import com.android.dialer.inject.HasRootComponent;
-import dagger.Subcomponent;
-
-/** Dagger component for database package. */
-@Subcomponent
-public abstract class CallLogDatabaseComponent {
-
-  public abstract Coalescer coalescer();
-
-  public abstract MutationApplier mutationApplier();
-
-  public static CallLogDatabaseComponent get(Context context) {
-    return ((CallLogDatabaseComponent.HasComponent)
-            ((HasRootComponent) context.getApplicationContext()).component())
-        .callLogDatabaseComponent();
-  }
-
-  /** Used to refer to the root application component. */
-  public interface HasComponent {
-    CallLogDatabaseComponent callLogDatabaseComponent();
-  }
-}
diff --git a/java/com/android/dialer/calllog/database/CallLogMutations.java b/java/com/android/dialer/calllog/database/CallLogMutations.java
new file mode 100644
index 0000000..ec020c6
--- /dev/null
+++ b/java/com/android/dialer/calllog/database/CallLogMutations.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.calllog.database;
+
+import android.content.ContentValues;
+import android.database.sqlite.SQLiteDatabase;
+import android.support.annotation.WorkerThread;
+import android.util.ArrayMap;
+import android.util.ArraySet;
+import com.android.dialer.common.Assert;
+
+/** A collection of mutations to the annotated call log. */
+public final class CallLogMutations {
+
+  private final ArrayMap<Integer, ContentValues> inserts = new ArrayMap<>();
+  private final ArrayMap<Integer, ContentValues> updates = new ArrayMap<>();
+  private final ArraySet<Integer> deletes = new ArraySet<>();
+
+  /** @param contentValues an entire row not including the ID */
+  public void insert(int id, ContentValues contentValues) {
+    inserts.put(id, contentValues);
+  }
+
+  /** @param contentValues the specific columns to update, not including the ID. */
+  public void update(int id, ContentValues contentValues) {
+    // TODO: Consider merging automatically.
+    updates.put(id, contentValues);
+  }
+
+  public void delete(int id) {
+    deletes.add(id);
+  }
+
+  public boolean isEmpty() {
+    return inserts.isEmpty() && updates.isEmpty() && deletes.isEmpty();
+  }
+
+  @WorkerThread
+  public void applyToDatabase(SQLiteDatabase writableDatabase) {
+    Assert.isWorkerThread();
+
+    // TODO: Implementation.
+  }
+}
diff --git a/java/com/android/dialer/calllog/database/Coalescer.java b/java/com/android/dialer/calllog/database/Coalescer.java
deleted file mode 100644
index e3dfb7e..0000000
--- a/java/com/android/dialer/calllog/database/Coalescer.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.dialer.calllog.database;
-
-import android.content.ContentValues;
-import android.database.Cursor;
-import android.database.DatabaseUtils;
-import android.database.MatrixCursor;
-import android.support.annotation.NonNull;
-import android.support.annotation.WorkerThread;
-import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
-import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.CoalescedAnnotatedCallLog;
-import com.android.dialer.calllog.datasources.CallLogDataSource;
-import com.android.dialer.calllog.datasources.DataSources;
-import com.android.dialer.common.Assert;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import javax.inject.Inject;
-
-/**
- * Coalesces call log rows by combining some adjacent rows.
- *
- * <p>Applies the business which logic which determines which adjacent rows should be coalasced, and
- * then delegates to each data source to determine how individual columns should be aggregated.
- */
-public class Coalescer {
-
-  private final DataSources dataSources;
-
-  @Inject
-  Coalescer(DataSources dataSources) {
-    this.dataSources = dataSources;
-  }
-
-  /**
-   * Reads the entire {@link AnnotatedCallLog} database into memory from the provided {@code
-   * allAnnotatedCallLog} parameter and then builds and returns a new {@link MatrixCursor} which is
-   * the result of combining adjacent rows which should be collapsed for display purposes.
-   *
-   * @param allAnnotatedCallLogRowsSortedByTimestampDesc all {@link AnnotatedCallLog} rows, sorted
-   *     by timestamp descending
-   * @return a new {@link MatrixCursor} containing the {@link CoalescedAnnotatedCallLog} rows to
-   *     display
-   */
-  @WorkerThread
-  @NonNull
-  Cursor coalesce(@NonNull Cursor allAnnotatedCallLogRowsSortedByTimestampDesc) {
-    Assert.isWorkerThread();
-
-    // Note: This method relies on rowsShouldBeCombined to determine which rows should be combined,
-    // but delegates to data sources to actually aggregate column values.
-
-    MatrixCursor allCoalescedRowsMatrixCursor =
-        new MatrixCursor(
-            CoalescedAnnotatedCallLog.ALL_COLUMNS,
-            Assert.isNotNull(allAnnotatedCallLogRowsSortedByTimestampDesc).getCount());
-
-    if (allAnnotatedCallLogRowsSortedByTimestampDesc.moveToFirst()) {
-      int coalescedRowId = 0;
-
-      List<ContentValues> currentRowGroup = new ArrayList<>();
-
-      do {
-        ContentValues currentRow = new ContentValues();
-        DatabaseUtils.cursorRowToContentValues(
-            allAnnotatedCallLogRowsSortedByTimestampDesc, currentRow);
-
-        if (currentRowGroup.isEmpty()) {
-          currentRowGroup.add(currentRow);
-          continue;
-        }
-
-        ContentValues previousRow = currentRowGroup.get(currentRowGroup.size() - 1);
-
-        if (!rowsShouldBeCombined(previousRow, currentRow)) {
-          ContentValues coalescedRow = coalesceRowsForAllDataSources(currentRowGroup);
-          coalescedRow.put(CoalescedAnnotatedCallLog.NUMBER_CALLS, currentRowGroup.size());
-          addContentValuesToMatrixCursor(
-              coalescedRow, allCoalescedRowsMatrixCursor, coalescedRowId++);
-          currentRowGroup.clear();
-        }
-        currentRowGroup.add(currentRow);
-      } while (allAnnotatedCallLogRowsSortedByTimestampDesc.moveToNext());
-
-      // Deal with leftover rows.
-      ContentValues coalescedRow = coalesceRowsForAllDataSources(currentRowGroup);
-      coalescedRow.put(CoalescedAnnotatedCallLog.NUMBER_CALLS, currentRowGroup.size());
-      addContentValuesToMatrixCursor(coalescedRow, allCoalescedRowsMatrixCursor, coalescedRowId);
-    }
-    return allCoalescedRowsMatrixCursor;
-  }
-
-  /**
-   * @param row1 a row from {@link AnnotatedCallLog}
-   * @param row2 a row from {@link AnnotatedCallLog}
-   */
-  private static boolean rowsShouldBeCombined(ContentValues row1, ContentValues row2) {
-    // TODO: Real implementation.
-    return row1.get(AnnotatedCallLog.TIMESTAMP).equals(row2.get(AnnotatedCallLog.TIMESTAMP));
-  }
-
-  /**
-   * Delegates to data sources to aggregate individual columns to create a new coalesced row.
-   *
-   * @param individualRows {@link AnnotatedCallLog} rows sorted by timestamp descending
-   * @return a {@link CoalescedAnnotatedCallLog} row
-   */
-  private ContentValues coalesceRowsForAllDataSources(List<ContentValues> individualRows) {
-    ContentValues coalescedValues = new ContentValues();
-    for (CallLogDataSource dataSource : dataSources.getDataSourcesIncludingSystemCallLog()) {
-      coalescedValues.putAll(dataSource.coalesce(individualRows));
-    }
-    return coalescedValues;
-  }
-
-  /**
-   * @param contentValues a {@link CoalescedAnnotatedCallLog} row
-   * @param matrixCursor represents {@link CoalescedAnnotatedCallLog}
-   */
-  private static void addContentValuesToMatrixCursor(
-      ContentValues contentValues, MatrixCursor matrixCursor, int rowId) {
-    MatrixCursor.RowBuilder rowBuilder = matrixCursor.newRow();
-    rowBuilder.add(CoalescedAnnotatedCallLog._ID, rowId);
-    for (Map.Entry<String, Object> entry : contentValues.valueSet()) {
-      rowBuilder.add(entry.getKey(), entry.getValue());
-    }
-  }
-}
diff --git a/java/com/android/dialer/calllog/database/MutationApplier.java b/java/com/android/dialer/calllog/database/MutationApplier.java
deleted file mode 100644
index 21c8a50..0000000
--- a/java/com/android/dialer/calllog/database/MutationApplier.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.dialer.calllog.database;
-
-import android.content.ContentProviderOperation;
-import android.content.ContentUris;
-import android.content.ContentValues;
-import android.content.Context;
-import android.content.OperationApplicationException;
-import android.os.RemoteException;
-import android.support.annotation.WorkerThread;
-import android.text.TextUtils;
-import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract;
-import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
-import com.android.dialer.calllog.datasources.CallLogMutations;
-import com.android.dialer.common.Assert;
-import com.android.dialer.common.LogUtil;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Map.Entry;
-import javax.inject.Inject;
-
-/** Applies {@link CallLogMutations} to the annotated call log. */
-public class MutationApplier {
-
-  @Inject
-  MutationApplier() {}
-
-  /** Applies the provided {@link CallLogMutations} to the annotated call log. */
-  @WorkerThread
-  public void applyToDatabase(CallLogMutations mutations, Context appContext)
-      throws RemoteException, OperationApplicationException {
-    Assert.isWorkerThread();
-
-    if (mutations.isEmpty()) {
-      return;
-    }
-
-    ArrayList<ContentProviderOperation> operations = new ArrayList<>();
-
-    if (!mutations.getInserts().isEmpty()) {
-      LogUtil.i(
-          "CallLogMutations.applyToDatabase", "inserting %d rows", mutations.getInserts().size());
-      for (Entry<Long, ContentValues> entry : mutations.getInserts().entrySet()) {
-        long id = entry.getKey();
-        ContentValues contentValues = entry.getValue();
-        operations.add(
-            ContentProviderOperation.newInsert(
-                    ContentUris.withAppendedId(AnnotatedCallLog.CONTENT_URI, id))
-                .withValues(contentValues)
-                .build());
-      }
-    }
-
-    if (!mutations.getUpdates().isEmpty()) {
-      LogUtil.i(
-          "CallLogMutations.applyToDatabase", "updating %d rows", mutations.getUpdates().size());
-      for (Entry<Long, ContentValues> entry : mutations.getUpdates().entrySet()) {
-        long id = entry.getKey();
-        ContentValues contentValues = entry.getValue();
-        operations.add(
-            ContentProviderOperation.newUpdate(
-                    ContentUris.withAppendedId(AnnotatedCallLog.CONTENT_URI, id))
-                .withValues(contentValues)
-                .build());
-      }
-    }
-
-    if (!mutations.getDeletes().isEmpty()) {
-      LogUtil.i(
-          "CallLogMutations.applyToDatabase", "deleting %d rows", mutations.getDeletes().size());
-      String[] questionMarks = new String[mutations.getDeletes().size()];
-      Arrays.fill(questionMarks, "?");
-
-      String whereClause =
-          (AnnotatedCallLog._ID + " in (") + TextUtils.join(",", questionMarks) + ")";
-
-      String[] whereArgs = new String[mutations.getDeletes().size()];
-      int i = 0;
-      for (long id : mutations.getDeletes()) {
-        whereArgs[i++] = String.valueOf(id);
-      }
-
-      operations.add(
-          ContentProviderOperation.newDelete(AnnotatedCallLog.CONTENT_URI)
-              .withSelection(whereClause, whereArgs)
-              .build());
-    }
-
-    appContext.getContentResolver().applyBatch(AnnotatedCallLogContract.AUTHORITY, operations);
-  }
-}
diff --git a/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java b/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java
deleted file mode 100644
index 8b3b0a8..0000000
--- a/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialer.calllog.database.contract;
-
-import android.net.Uri;
-import android.provider.BaseColumns;
-import com.android.dialer.constants.Constants;
-import java.util.Arrays;
-
-/** Contract for the AnnotatedCallLog content provider. */
-public class AnnotatedCallLogContract {
-  public static final String AUTHORITY = Constants.get().getAnnotatedCallLogProviderAuthority();
-
-  public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY);
-
-  /**
-   * Columns shared by {@link AnnotatedCallLog} and {@link CoalescedAnnotatedCallLog}.
-   *
-   * <p>When adding columns be sure to update {@link #ALL_COMMON_COLUMNS}.
-   */
-  interface CommonColumns extends BaseColumns {
-
-    /**
-     * Timestamp of the entry, in milliseconds.
-     *
-     * <p>Type: INTEGER (long)
-     */
-    String TIMESTAMP = "timestamp";
-
-    /**
-     * Name to display for the entry.
-     *
-     * <p>Type: TEXT
-     */
-    String CONTACT_NAME = "contact_name";
-
-    String[] ALL_COMMON_COLUMNS = new String[] {_ID, TIMESTAMP, CONTACT_NAME};
-  }
-
-  /**
-   * AnnotatedCallLog table.
-   *
-   * <p>This contains all of the non-coalesced call log entries.
-   */
-  public static final class AnnotatedCallLog implements CommonColumns {
-
-    public static final String TABLE = "AnnotatedCallLog";
-
-    /** The content URI for this table. */
-    public static final Uri CONTENT_URI =
-        Uri.withAppendedPath(AnnotatedCallLogContract.CONTENT_URI, TABLE);
-
-    /** The MIME type of a {@link android.content.ContentProvider#getType(Uri)} single entry. */
-    public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/annotated_call_log";
-  }
-
-  /**
-   * Coalesced view of the AnnotatedCallLog table.
-   *
-   * <p>This is an in-memory view of the {@link AnnotatedCallLog} with some adjacent entries
-   * collapsed.
-   *
-   * <p>When adding columns be sure to update {@link #COLUMNS_ONLY_IN_COALESCED_CALL_LOG}.
-   */
-  public static final class CoalescedAnnotatedCallLog implements CommonColumns {
-
-    public static final String TABLE = "CoalescedAnnotatedCallLog";
-
-    /** The content URI for this table. */
-    public static final Uri CONTENT_URI =
-        Uri.withAppendedPath(AnnotatedCallLogContract.CONTENT_URI, TABLE);
-
-    /** The MIME type of a {@link android.content.ContentProvider#getType(Uri)} single entry. */
-    public static final String CONTENT_ITEM_TYPE =
-        "vnd.android.cursor.item/coalesced_annotated_call_log";
-
-    /**
-     * Number of AnnotatedCallLog rows represented by this CoalescedAnnotatedCallLog row.
-     *
-     * <p>Type: INTEGER
-     */
-    public static final String NUMBER_CALLS = "number_calls";
-
-    /**
-     * Columns that are only in the {@link CoalescedAnnotatedCallLog} but not the {@link
-     * AnnotatedCallLog}.
-     */
-    private static final String[] COLUMNS_ONLY_IN_COALESCED_CALL_LOG = new String[] {NUMBER_CALLS};
-
-    /** All columns in the {@link CoalescedAnnotatedCallLog}. */
-    public static final String[] ALL_COLUMNS =
-        concat(ALL_COMMON_COLUMNS, COLUMNS_ONLY_IN_COALESCED_CALL_LOG);
-  }
-
-  private static String[] concat(String[] first, String[] second) {
-    String[] result = Arrays.copyOf(first, first.length + second.length);
-    System.arraycopy(second, 0, result, first.length, second.length);
-    return result;
-  }
-}
diff --git a/java/com/android/dialer/calllog/datasources/CallLogDataSource.java b/java/com/android/dialer/calllog/datasources/CallLogDataSource.java
index 3fff3ba..13d0b84 100644
--- a/java/com/android/dialer/calllog/datasources/CallLogDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/CallLogDataSource.java
@@ -16,39 +16,13 @@
 
 package com.android.dialer.calllog.datasources;
 
-import android.content.ContentValues;
 import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
 import android.support.annotation.MainThread;
 import android.support.annotation.WorkerThread;
-import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract;
-import java.util.List;
+import com.android.dialer.calllog.database.CallLogMutations;
 
-/**
- * A source of data for one or more columns in the annotated call log.
- *
- * <p>Data sources have three lifecycle operations, which are always called on the same thread and
- * in the same order for a particular "checkDirtyAndRebuild" cycle. However, not all operations are
- * always invoked.
- *
- * <ol>
- *   <li>{@link #isDirty(Context)}: Invoked only if the framework doesn't yet know if a rebuild is
- *       necessary.
- *   <li>{@link #fill(Context, CallLogMutations)}: Invoked only if the framework determined a
- *       rebuild is necessary.
- *   <li>{@link #onSuccessfulFill(Context)}: Invoked if and only if fill was previously called and
- *       the mutations provided by the previous fill operation succeeded in being applied.
- * </ol>
- *
- * <p>Because {@link #isDirty(Context)} is not always invoked, {@link #fill(Context,
- * CallLogMutations)} shouldn't rely on any state saved during {@link #isDirty(Context)}. It
- * <em>is</em> safe to assume that {@link #onSuccessfulFill(Context)} refers to the previous fill
- * operation.
- *
- * <p>The same data source objects may be reused across multiple checkDirtyAndRebuild cycles, so
- * implementors should take care to clear any internal state at the start of a new cycle.
- *
- * <p>{@link #coalesce(List)} may be called from any worker thread at any time.
- */
+/** A source of data for one or more columns in the annotated call log. */
 public interface CallLogDataSource {
 
   /**
@@ -61,8 +35,6 @@
    * <p>Most implementations of this method will rely on some sort of last modified timestamp. If it
    * is impossible for a data source to be modified without the dialer application being notified,
    * this method may immediately return false.
-   *
-   * @see CallLogDataSource class doc for complete lifecyle information
    */
   @WorkerThread
   boolean isDirty(Context appContext);
@@ -71,39 +43,16 @@
    * Computes the set of mutations necessary to update the annotated call log with respect to this
    * data source.
    *
-   * @see CallLogDataSource class doc for complete lifecyle information
    * @param mutations the set of mutations which this method should contribute to. Note that it may
    *     contain inserts from the system call log, and these inserts should be modified by each data
    *     source.
    */
   @WorkerThread
-  void fill(Context appContext, CallLogMutations mutations);
-
-  /**
-   * Called after database mutations have been applied to all data sources. This is useful for
-   * saving state such as the timestamp of the last row processed in an underlying database. Note
-   * that all mutations across all data sources are applied in a single transaction.
-   *
-   * @see CallLogDataSource class doc for complete lifecyle information
-   */
-  @WorkerThread
-  void onSuccessfulFill(Context appContext);
-
-  /**
-   * Combines raw annotated call log rows into a single coalesced row.
-   *
-   * <p>May be called by any worker thread at any time so implementations should take care to be
-   * threadsafe. (Ideally no state should be required to implement this.)
-   *
-   * @param individualRowsSortedByTimestampDesc group of fully populated rows from {@link
-   *     AnnotatedCallLogContract.AnnotatedCallLog} which need to be combined for display purposes.
-   *     This method should not modify this list.
-   * @return a partial {@link AnnotatedCallLogContract.CoalescedAnnotatedCallLog} row containing
-   *     only columns which this data source is responsible for, which is the result of aggregating
-   *     {@code individualRowsSortedByTimestampDesc}.
-   */
-  @WorkerThread
-  ContentValues coalesce(List<ContentValues> individualRowsSortedByTimestampDesc);
+  void fill(
+      Context appContext,
+      SQLiteDatabase readableDatabase,
+      long lastRebuildTimeMillis,
+      CallLogMutations mutations);
 
   @MainThread
   void registerContentObservers(
diff --git a/java/com/android/dialer/calllog/datasources/CallLogMutations.java b/java/com/android/dialer/calllog/datasources/CallLogMutations.java
deleted file mode 100644
index 148601d..0000000
--- a/java/com/android/dialer/calllog/datasources/CallLogMutations.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialer.calllog.datasources;
-
-import android.content.ContentValues;
-import android.util.ArrayMap;
-import android.util.ArraySet;
-import com.android.dialer.common.Assert;
-
-/** A collection of mutations to the annotated call log. */
-public final class CallLogMutations {
-
-  private final ArrayMap<Long, ContentValues> inserts = new ArrayMap<>();
-  private final ArrayMap<Long, ContentValues> updates = new ArrayMap<>();
-  private final ArraySet<Long> deletes = new ArraySet<>();
-
-  /**
-   * @param contentValues an entire row not including the ID
-   * @throws IllegalStateException if this {@link CallLogMutations} already contains an insert,
-   *     update, or delete with the provided id
-   */
-  public void insert(long id, ContentValues contentValues) {
-    Assert.checkArgument(!inserts.containsKey(id), "Can't insert row already scheduled for insert");
-    Assert.checkArgument(!updates.containsKey(id), "Can't insert row scheduled for update");
-    Assert.checkArgument(!deletes.contains(id), "Can't insert row scheduled for delete");
-
-    inserts.put(id, contentValues);
-  }
-
-  /**
-   * Stores a database update using the provided ID and content values. If this {@link
-   * CallLogMutations} object already contains an update with the specified ID, the existing content
-   * values are merged with the provided ones, with the provided ones overwriting the existing ones
-   * for values with the same key.
-   *
-   * @param contentValues the specific columns to update, not including the ID.
-   * @throws IllegalStateException if this {@link CallLogMutations} already contains an insert or
-   *     delete with the provided id
-   */
-  public void update(long id, ContentValues contentValues) {
-    Assert.checkArgument(!inserts.containsKey(id), "Can't update row scheduled for insert");
-    Assert.checkArgument(!deletes.contains(id), "Can't delete row scheduled for delete");
-
-    ContentValues existingContentValues = updates.get(id);
-    if (existingContentValues != null) {
-      existingContentValues.putAll(contentValues);
-    } else {
-      updates.put(id, contentValues);
-    }
-  }
-
-  /**
-   * @throws IllegalStateException if this {@link CallLogMutations} already contains an insert,
-   *     update, or delete with the provided id
-   */
-  public void delete(long id) {
-    Assert.checkArgument(!inserts.containsKey(id), "Can't delete row scheduled for insert");
-    Assert.checkArgument(!updates.containsKey(id), "Can't delete row scheduled for update");
-    Assert.checkArgument(!deletes.contains(id), "Can't delete row already scheduled for delete");
-
-    deletes.add(id);
-  }
-
-  public boolean isEmpty() {
-    return inserts.isEmpty() && updates.isEmpty() && deletes.isEmpty();
-  }
-
-  /**
-   * Get the pending inserts.
-   *
-   * @return the pending inserts where the key is the annotated call log database ID and the values
-   *     are values to be inserted (not including the ID)
-   */
-  public ArrayMap<Long, ContentValues> getInserts() {
-    return inserts;
-  }
-
-  /**
-   * Get the pending updates.
-   *
-   * @return the pending updates where the key is the annotated call log database ID and the values
-   *     are values to be updated (not including the ID)
-   */
-  public ArrayMap<Long, ContentValues> getUpdates() {
-    return updates;
-  }
-
-  /**
-   * Get the pending deletes.
-   *
-   * @return the annotated call log database IDs corresponding to the rows to be deleted
-   */
-  public ArraySet<Long> getDeletes() {
-    return deletes;
-  }
-}
diff --git a/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java b/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java
index e9538da..355940f 100644
--- a/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java
@@ -16,16 +16,13 @@
 
 package com.android.dialer.calllog.datasources.contacts;
 
-import android.content.ContentValues;
 import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
 import android.support.annotation.MainThread;
 import android.support.annotation.WorkerThread;
-import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
+import com.android.dialer.calllog.database.CallLogMutations;
 import com.android.dialer.calllog.datasources.CallLogDataSource;
-import com.android.dialer.calllog.datasources.CallLogMutations;
-import com.android.dialer.calllog.datasources.util.RowCombiner;
 import com.android.dialer.common.Assert;
-import java.util.List;
 import javax.inject.Inject;
 
 /** Responsible for maintaining the contacts related columns in the annotated call log. */
@@ -47,24 +44,13 @@
   @Override
   public void fill(
       Context appContext,
+      SQLiteDatabase readableDatabase,
+      long lastRebuildTimeMillis,
       CallLogMutations mutations) {
     Assert.isWorkerThread();
     // TODO: Implementation.
   }
 
-  @Override
-  public void onSuccessfulFill(Context appContext) {
-    // TODO: Implementation.
-  }
-
-  @Override
-  public ContentValues coalesce(List<ContentValues> individualRowsSortedByTimestampDesc) {
-    // TODO: Implementation.
-    return new RowCombiner(individualRowsSortedByTimestampDesc)
-        .useSingleValueString(AnnotatedCallLog.CONTACT_NAME)
-        .combine();
-  }
-
   @MainThread
   @Override
   public void registerContentObservers(
diff --git a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
index be2df60..ea6663f 100644
--- a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
@@ -16,49 +16,28 @@
 
 package com.android.dialer.calllog.datasources.systemcalllog;
 
-import android.Manifest.permission;
-import android.annotation.TargetApi;
-import android.content.ContentValues;
 import android.content.Context;
 import android.database.ContentObserver;
-import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
 import android.net.Uri;
-import android.os.Build;
 import android.os.Handler;
-import android.preference.PreferenceManager;
 import android.provider.CallLog;
-import android.provider.CallLog.Calls;
 import android.support.annotation.MainThread;
-import android.support.annotation.Nullable;
-import android.support.annotation.VisibleForTesting;
 import android.support.annotation.WorkerThread;
-import android.text.TextUtils;
-import android.util.ArraySet;
-import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
+import com.android.dialer.calllog.database.CallLogMutations;
 import com.android.dialer.calllog.datasources.CallLogDataSource;
-import com.android.dialer.calllog.datasources.CallLogMutations;
-import com.android.dialer.calllog.datasources.util.RowCombiner;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.concurrent.ThreadUtil;
 import com.android.dialer.util.PermissionsUtil;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Set;
 import javax.inject.Inject;
 
 /**
  * Responsible for defining the rows in the annotated call log and maintaining the columns in it
  * which are derived from the system call log.
  */
-@SuppressWarnings("MissingPermission")
 public class SystemCallLogDataSource implements CallLogDataSource {
 
-  @VisibleForTesting
-  static final String PREF_LAST_TIMESTAMP_PROCESSED = "systemCallLogLastTimestampProcessed";
-
-  @Nullable private Long lastTimestampProcessed;
-
   @Inject
   public SystemCallLogDataSource() {}
 
@@ -68,8 +47,6 @@
       Context appContext, ContentObserverCallbacks contentObserverCallbacks) {
     Assert.isMainThread();
 
-    LogUtil.enterBlock("SystemCallLogDataSource.registerContentObservers");
-
     if (!PermissionsUtil.hasCallLogReadPermissions(appContext)) {
       LogUtil.i("SystemCallLogDataSource.registerContentObservers", "no call log permissions");
       return;
@@ -100,185 +77,17 @@
 
   @WorkerThread
   @Override
-  public void fill(Context appContext, CallLogMutations mutations) {
+  public void fill(
+      Context appContext,
+      SQLiteDatabase readableDatabase,
+      long lastRebuildTimeMillis,
+      CallLogMutations mutations) {
     Assert.isWorkerThread();
 
-    lastTimestampProcessed = null;
-
-    if (!PermissionsUtil.hasPermission(appContext, permission.READ_CALL_LOG)) {
-      LogUtil.i("SystemCallLogDataSource.fill", "no call log permissions");
-      return;
-    }
-
     // This data source should always run first so the mutations should always be empty.
-    Assert.checkArgument(mutations.isEmpty());
+    Assert.checkState(mutations.isEmpty());
 
-    Set<Long> annotatedCallLogIds = getAnnotatedCallLogIds(appContext);
-
-    LogUtil.i(
-        "SystemCallLogDataSource.fill",
-        "found %d existing annotated call log ids",
-        annotatedCallLogIds.size());
-
-    handleInsertsAndUpdates(appContext, mutations, annotatedCallLogIds);
-    handleDeletes(appContext, annotatedCallLogIds, mutations);
-  }
-
-  @WorkerThread
-  @Override
-  public void onSuccessfulFill(Context appContext) {
-    // If a fill operation was a no-op, lastTimestampProcessed could still be null.
-    if (lastTimestampProcessed != null) {
-      PreferenceManager.getDefaultSharedPreferences(appContext)
-          .edit()
-          .putLong(PREF_LAST_TIMESTAMP_PROCESSED, lastTimestampProcessed)
-          .commit();
-    }
-  }
-
-  @Override
-  public ContentValues coalesce(List<ContentValues> individualRowsSortedByTimestampDesc) {
-    // TODO: Complete implementation.
-    return new RowCombiner(individualRowsSortedByTimestampDesc)
-        .useMostRecentLong(AnnotatedCallLog.TIMESTAMP)
-        .combine();
-  }
-
-  @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
-  private void handleInsertsAndUpdates(
-      Context appContext, CallLogMutations mutations, Set<Long> existingAnnotatedCallLogIds) {
-    long previousTimestampProcessed =
-        PreferenceManager.getDefaultSharedPreferences(appContext)
-            .getLong(PREF_LAST_TIMESTAMP_PROCESSED, 0L);
-
-    try (Cursor cursor =
-        appContext
-            .getContentResolver()
-            .query(
-                Calls.CONTENT_URI, // Excludes voicemail
-                new String[] {Calls._ID, Calls.DATE, Calls.LAST_MODIFIED},
-                Calls.LAST_MODIFIED + " > ?",
-                new String[] {String.valueOf(previousTimestampProcessed)},
-                Calls.LAST_MODIFIED + " DESC LIMIT 1000")) {
-
-      if (cursor == null) {
-        LogUtil.e("SystemCallLogDataSource.handleInsertsAndUpdates", "null cursor");
-        return;
-      }
-
-      LogUtil.i(
-          "SystemCallLogDataSource.handleInsertsAndUpdates",
-          "found %d entries to insert/update",
-          cursor.getCount());
-
-      if (cursor.moveToFirst()) {
-        int idColumn = cursor.getColumnIndexOrThrow(Calls._ID);
-        int dateColumn = cursor.getColumnIndexOrThrow(Calls.DATE);
-        int lastModifiedColumn = cursor.getColumnIndexOrThrow(Calls.LAST_MODIFIED);
-
-        // The cursor orders by LAST_MODIFIED DESC, so the first result is the most recent timestamp
-        // processed.
-        lastTimestampProcessed = cursor.getLong(lastModifiedColumn);
-        do {
-          long id = cursor.getLong(idColumn);
-          long date = cursor.getLong(dateColumn);
-
-          ContentValues contentValues = new ContentValues();
-          contentValues.put(AnnotatedCallLog.TIMESTAMP, date);
-
-          if (existingAnnotatedCallLogIds.contains(id)) {
-            mutations.update(id, contentValues);
-          } else {
-            mutations.insert(id, contentValues);
-          }
-        } while (cursor.moveToNext());
-      } // else no new results, do nothing.
-    }
-  }
-
-  private static void handleDeletes(
-      Context appContext, Set<Long> existingAnnotatedCallLogIds, CallLogMutations mutations) {
-    Set<Long> systemCallLogIds =
-        getIdsFromSystemCallLogThatMatch(appContext, existingAnnotatedCallLogIds);
-    LogUtil.i(
-        "SystemCallLogDataSource.handleDeletes",
-        "found %d entries in system call log",
-        systemCallLogIds.size());
-    Set<Long> idsInAnnotatedCallLogNoLongerInSystemCallLog = new ArraySet<>();
-    idsInAnnotatedCallLogNoLongerInSystemCallLog.addAll(existingAnnotatedCallLogIds);
-    idsInAnnotatedCallLogNoLongerInSystemCallLog.removeAll(systemCallLogIds);
-
-    LogUtil.i(
-        "SystemCallLogDataSource.handleDeletes",
-        "found %d call log entries to remove",
-        idsInAnnotatedCallLogNoLongerInSystemCallLog.size());
-
-    for (long id : idsInAnnotatedCallLogNoLongerInSystemCallLog) {
-      mutations.delete(id);
-    }
-  }
-
-  @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
-  private static Set<Long> getAnnotatedCallLogIds(Context appContext) {
-    ArraySet<Long> ids = new ArraySet<>();
-
-    try (Cursor cursor =
-        appContext
-            .getContentResolver()
-            .query(
-                AnnotatedCallLog.CONTENT_URI,
-                new String[] {AnnotatedCallLog._ID},
-                null,
-                null,
-                null)) {
-
-      if (cursor == null) {
-        LogUtil.e("SystemCallLogDataSource.getAnnotatedCallLogIds", "null cursor");
-        return ids;
-      }
-
-      if (cursor.moveToFirst()) {
-        int idColumn = cursor.getColumnIndexOrThrow(AnnotatedCallLog._ID);
-        do {
-          ids.add(cursor.getLong(idColumn));
-        } while (cursor.moveToNext());
-      }
-    }
-    return ids;
-  }
-
-  @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
-  private static Set<Long> getIdsFromSystemCallLogThatMatch(
-      Context appContext, Set<Long> matchingIds) {
-    ArraySet<Long> ids = new ArraySet<>();
-
-    String[] questionMarks = new String[matchingIds.size()];
-    Arrays.fill(questionMarks, "?");
-    String whereClause = (Calls._ID + " in (") + TextUtils.join(",", questionMarks) + ")";
-    String[] whereArgs = new String[matchingIds.size()];
-    int i = 0;
-    for (long id : matchingIds) {
-      whereArgs[i++] = String.valueOf(id);
-    }
-
-    try (Cursor cursor =
-        appContext
-            .getContentResolver()
-            .query(Calls.CONTENT_URI, new String[] {Calls._ID}, whereClause, whereArgs, null)) {
-
-      if (cursor == null) {
-        LogUtil.e("SystemCallLogDataSource.getIdsFromSystemCallLog", "null cursor");
-        return ids;
-      }
-
-      if (cursor.moveToFirst()) {
-        int idColumn = cursor.getColumnIndexOrThrow(Calls._ID);
-        do {
-          ids.add(cursor.getLong(idColumn));
-        } while (cursor.moveToNext());
-      }
-      return ids;
-    }
+    // TODO: Implementation.
   }
 
   private static class CallLogObserver extends ContentObserver {
diff --git a/java/com/android/dialer/calllog/datasources/util/RowCombiner.java b/java/com/android/dialer/calllog/datasources/util/RowCombiner.java
deleted file mode 100644
index 0c7be1e..0000000
--- a/java/com/android/dialer/calllog/datasources/util/RowCombiner.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.dialer.calllog.datasources.util;
-
-import android.content.ContentValues;
-import com.android.dialer.common.Assert;
-import java.util.Iterator;
-import java.util.List;
-
-/** Convenience class for aggregating row values. */
-public class RowCombiner {
-  private final List<ContentValues> individualRowsSortedByTimestampDesc;
-  private final ContentValues combinedRow = new ContentValues();
-
-  public RowCombiner(List<ContentValues> individualRowsSortedByTimestampDesc) {
-    Assert.checkArgument(!individualRowsSortedByTimestampDesc.isEmpty());
-    this.individualRowsSortedByTimestampDesc = individualRowsSortedByTimestampDesc;
-  }
-
-  /** Use the most recent value for the specified column. */
-  public RowCombiner useMostRecentLong(String columnName) {
-    combinedRow.put(columnName, individualRowsSortedByTimestampDesc.get(0).getAsLong(columnName));
-    return this;
-  }
-
-  /** Asserts that all column values for the given column name are the same, and uses it. */
-  public RowCombiner useSingleValueString(String columnName) {
-    Iterator<ContentValues> iterator = individualRowsSortedByTimestampDesc.iterator();
-    String singleValue = iterator.next().getAsString(columnName);
-    while (iterator.hasNext()) {
-      Assert.checkState(iterator.next().getAsString(columnName).equals(singleValue));
-    }
-    combinedRow.put(columnName, singleValue);
-    return this;
-  }
-
-  public ContentValues combine() {
-    return combinedRow;
-  }
-}
diff --git a/java/com/android/dialer/calllog/testing/FakeCallLogApplication.java b/java/com/android/dialer/calllog/testing/FakeCallLogApplication.java
deleted file mode 100644
index cb22405..0000000
--- a/java/com/android/dialer/calllog/testing/FakeCallLogApplication.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.dialer.calllog.testing;
-
-import android.app.Application;
-import com.android.dialer.calllog.CallLogModule;
-import com.android.dialer.calllog.database.CallLogDatabaseComponent;
-import com.android.dialer.inject.HasRootComponent;
-import dagger.Component;
-import javax.inject.Singleton;
-
-/**
- * Fake application for call log robolectric tests which uses all real bindings but doesn't require
- * tests to depend on and use all of DialerApplication.
- */
-public final class FakeCallLogApplication extends Application implements HasRootComponent {
-
-  @Override
-  public Object component() {
-    return DaggerFakeCallLogApplication_FakeComponent.create();
-  }
-
-  @Singleton
-  @Component(modules = CallLogModule.class)
-  interface FakeComponent extends CallLogDatabaseComponent.HasComponent {}
-}
diff --git a/java/com/android/dialer/calllog/ui/AndroidManifest.xml b/java/com/android/dialer/calllog/ui/AndroidManifest.xml
index eaf71ab..2281677 100644
--- a/java/com/android/dialer/calllog/ui/AndroidManifest.xml
+++ b/java/com/android/dialer/calllog/ui/AndroidManifest.xml
@@ -13,4 +13,4 @@
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License
  -->
-<manifest package="com.android.dialer.calllog.ui"/>
+<manifest package="com.android.dialer.calllog"/>
diff --git a/java/com/android/dialer/calllog/ui/AnnotatedCallLogCursorLoader.java b/java/com/android/dialer/calllog/ui/AnnotatedCallLogCursorLoader.java
new file mode 100644
index 0000000..cd8622e
--- /dev/null
+++ b/java/com/android/dialer/calllog/ui/AnnotatedCallLogCursorLoader.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.calllog.ui;
+
+import android.annotation.TargetApi;
+import android.content.Context;
+import android.content.CursorLoader;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.os.Build;
+import com.android.dialer.calllog.database.AnnotatedCallLog;
+import com.android.dialer.calllog.database.AnnotatedCallLog.Columns;
+
+/** CursorLoader which reads the annotated call log. */
+class AnnotatedCallLogCursorLoader extends CursorLoader {
+
+  AnnotatedCallLogCursorLoader(Context context) {
+    super(context);
+  }
+
+  @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
+  @Override
+  public Cursor loadInBackground() {
+    try (SQLiteDatabase readableDatabase = AnnotatedCallLog.getReadableDatabase(getContext())) {
+      return readableDatabase.rawQuery(
+          "SELECT * FROM "
+              + AnnotatedCallLog.TABLE_NAME
+              + " ORDER BY "
+              + Columns.TIMESTAMP
+              + " DESC",
+          null /* selectionArgs */);
+    }
+  }
+}
diff --git a/java/com/android/dialer/calllog/ui/NewCallLogAdapter.java b/java/com/android/dialer/calllog/ui/NewCallLogAdapter.java
deleted file mode 100644
index f9ab21c..0000000
--- a/java/com/android/dialer/calllog/ui/NewCallLogAdapter.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.dialer.calllog.ui;
-
-import android.database.Cursor;
-import android.support.v7.widget.RecyclerView;
-import android.view.LayoutInflater;
-import android.view.ViewGroup;
-import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.CoalescedAnnotatedCallLog;
-
-/** {@link RecyclerView.Adapter} for the new call log fragment. */
-final class NewCallLogAdapter extends RecyclerView.Adapter<NewCallLogViewHolder> {
-
-  private final Cursor cursor;
-  private final int timestampIndex;
-
-  NewCallLogAdapter(Cursor cursor) {
-    this.cursor = cursor;
-    timestampIndex = cursor.getColumnIndexOrThrow(CoalescedAnnotatedCallLog.TIMESTAMP);
-  }
-
-  @Override
-  public NewCallLogViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
-    return new NewCallLogViewHolder(
-        LayoutInflater.from(viewGroup.getContext())
-            .inflate(R.layout.new_call_log_entry, viewGroup, false));
-  }
-
-  @Override
-  public void onBindViewHolder(NewCallLogViewHolder viewHolder, int position) {
-    cursor.moveToPosition(position);
-    long timestamp = cursor.getLong(timestampIndex);
-    viewHolder.bind(timestamp);
-  }
-
-  @Override
-  public int getItemCount() {
-    return cursor.getCount();
-  }
-}
diff --git a/java/com/android/dialer/calllog/ui/NewCallLogFragment.java b/java/com/android/dialer/calllog/ui/NewCallLogFragment.java
index 89ed52f..b8f2b13 100644
--- a/java/com/android/dialer/calllog/ui/NewCallLogFragment.java
+++ b/java/com/android/dialer/calllog/ui/NewCallLogFragment.java
@@ -17,30 +17,30 @@
 
 import android.app.Fragment;
 import android.app.LoaderManager.LoaderCallbacks;
-import android.content.CursorLoader;
+import android.content.Context;
 import android.content.Loader;
 import android.database.Cursor;
 import android.os.Bundle;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.CursorAdapter;
+import android.widget.ListView;
+import android.widget.SimpleCursorAdapter;
+import android.widget.TextView;
 import com.android.dialer.calllog.CallLogComponent;
 import com.android.dialer.calllog.CallLogFramework;
 import com.android.dialer.calllog.CallLogFramework.CallLogUi;
-import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.CoalescedAnnotatedCallLog;
+import com.android.dialer.calllog.database.AnnotatedCallLog.Columns;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.common.concurrent.DialerExecutor;
-import com.android.dialer.common.concurrent.DialerExecutorComponent;
-import com.android.dialer.common.concurrent.DialerExecutorFactory;
+import java.text.SimpleDateFormat;
+import java.util.Locale;
 
 /** The "new" call log fragment implementation, which is built on top of the annotated call log. */
 public final class NewCallLogFragment extends Fragment
     implements CallLogUi, LoaderCallbacks<Cursor> {
 
-  private DialerExecutor<Boolean> refreshAnnotatedCallLogTask;
-  private RecyclerView recyclerView;
+  private CursorAdapter cursorAdapter;
 
   public NewCallLogFragment() {
     LogUtil.enterBlock("NewCallLogFragment.NewCallLogFragment");
@@ -52,27 +52,8 @@
 
     LogUtil.enterBlock("NewCallLogFragment.onCreate");
 
-    CallLogComponent component = CallLogComponent.get(getContext());
-    CallLogFramework callLogFramework = component.callLogFramework();
+    CallLogFramework callLogFramework = CallLogComponent.get(getContext()).callLogFramework();
     callLogFramework.attachUi(this);
-
-    DialerExecutorFactory dialerExecutorFactory =
-        DialerExecutorComponent.get(getContext()).dialerExecutorFactory();
-
-    refreshAnnotatedCallLogTask =
-        dialerExecutorFactory
-            .createUiTaskBuilder(
-                getFragmentManager(),
-                "NewCallLogFragment.refreshAnnotatedCallLog",
-                component.getRefreshAnnotatedCallLogWorker())
-            .build();
-  }
-
-  @Override
-  public void onStart() {
-    super.onStart();
-
-    LogUtil.enterBlock("NewCallLogFragment.onStart");
   }
 
   @Override
@@ -83,9 +64,6 @@
 
     CallLogFramework callLogFramework = CallLogComponent.get(getContext()).callLogFramework();
     callLogFramework.attachUi(this);
-
-    // TODO: Consider doing this when fragment becomes visible.
-    checkAnnotatedCallLogDirtyAndRefreshIfNecessary();
   }
 
   @Override
@@ -104,44 +82,57 @@
     LogUtil.enterBlock("NewCallLogFragment.onCreateView");
 
     View view = inflater.inflate(R.layout.new_call_log_fragment, container, false);
-    recyclerView = view.findViewById(R.id.new_call_log_recycler_view);
+    ListView listView = (ListView) view.findViewById(R.id.list);
 
-    getLoaderManager().restartLoader(0, null, this);
+    this.cursorAdapter =
+        new MyCursorAdapter(
+            getContext(),
+            R.layout.new_call_log_entry,
+            null /* cursor */,
+            new String[] {Columns.TIMESTAMP, Columns.CONTACT_NAME},
+            new int[] {R.id.timestamp, R.id.contact_name},
+            0);
+    listView.setAdapter(cursorAdapter);
+
+    getLoaderManager().initLoader(0, null, this);
 
     return view;
   }
 
-  private void checkAnnotatedCallLogDirtyAndRefreshIfNecessary() {
-    LogUtil.enterBlock("NewCallLogFragment.checkAnnotatedCallLogDirtyAndRefreshIfNecessary");
-    refreshAnnotatedCallLogTask.executeSerial(false /* skipDirtyCheck */);
-  }
-
   @Override
   public void invalidateUi() {
     LogUtil.enterBlock("NewCallLogFragment.invalidateUi");
-    refreshAnnotatedCallLogTask.executeSerial(true /* skipDirtyCheck */);
+    // TODO: Implementation.
   }
 
   @Override
   public Loader<Cursor> onCreateLoader(int id, Bundle args) {
-    LogUtil.enterBlock("NewCallLogFragment.onCreateLoader");
-    // CoalescedAnnotatedCallLog requires that all params be null.
-    return new CursorLoader(
-        getContext(), CoalescedAnnotatedCallLog.CONTENT_URI, null, null, null, null);
+    // TODO: This is sort of weird, do we need to implement a content provider?
+    return new AnnotatedCallLogCursorLoader(getContext());
   }
 
   @Override
   public void onLoadFinished(Loader<Cursor> loader, Cursor newCursor) {
-    LogUtil.enterBlock("NewCallLogFragment.onLoadFinished");
-
-    // TODO: Handle empty cursor by showing empty view.
-    recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
-    recyclerView.setAdapter(new NewCallLogAdapter(newCursor));
+    cursorAdapter.swapCursor(newCursor);
   }
 
   @Override
   public void onLoaderReset(Loader<Cursor> loader) {
-    LogUtil.enterBlock("NewCallLogFragment.onLoaderReset");
-    recyclerView.setAdapter(null);
+    cursorAdapter.swapCursor(null);
+  }
+
+  private static class MyCursorAdapter extends SimpleCursorAdapter {
+
+    MyCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to, int flags) {
+      super(context, layout, c, from, to, flags);
+    }
+
+    @Override
+    public void setViewText(TextView view, String text) {
+      if (view.getId() == R.id.timestamp) {
+        text = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.US).format(Long.valueOf(text));
+      }
+      view.setText(text);
+    }
   }
 }
diff --git a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
deleted file mode 100644
index 4c459e1..0000000
--- a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.dialer.calllog.ui;
-
-import android.support.v7.widget.RecyclerView;
-import android.view.View;
-import android.widget.TextView;
-import java.text.SimpleDateFormat;
-import java.util.Locale;
-
-/** {@link RecyclerView.ViewHolder} for the new call log. */
-final class NewCallLogViewHolder extends RecyclerView.ViewHolder {
-
-  // TODO: Format correctly using current locale.
-  private final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.US);
-
-  private final TextView contactNameView;
-  private final TextView timestampView;
-
-  NewCallLogViewHolder(View view) {
-    super(view);
-    contactNameView = view.findViewById(R.id.contact_name);
-    timestampView = view.findViewById(R.id.timestamp);
-  }
-
-  void bind(long timestamp) {
-    contactNameView.setText("Contact Name Placeholder");
-    timestampView.setText(dateFormat.format(timestamp));
-  }
-}
diff --git a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml
index 99797fa..ee3efd0 100644
--- a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml
+++ b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml
@@ -18,20 +18,16 @@
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:padding="8dp"
-    android:orientation="vertical">
-
-  <TextView
-      android:id="@+id/contact_name"
-      android:layout_width="wrap_content"
-      android:layout_height="wrap_content"
-      style="@style/PrimaryText"/>
+    android:layout_height="match_parent"
+    android:orientation="horizontal">
 
   <TextView
       android:id="@+id/timestamp"
       android:layout_width="wrap_content"
-      android:layout_height="wrap_content"
-      style="@style/SecondaryText"/>
+      android:layout_height="wrap_content"/>
 
+  <TextView
+      android:id="@+id/contact_name"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"/>
 </LinearLayout>
\ No newline at end of file
diff --git a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_fragment.xml b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_fragment.xml
index e1d8410..433dbdd 100644
--- a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_fragment.xml
+++ b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_fragment.xml
@@ -15,9 +15,8 @@
   ~ limitations under the License
   -->
 
-<android.support.v7.widget.RecyclerView
+<ListView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/new_call_log_recycler_view"
+    android:id="@+id/list"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@color/background_dialer_light"/>
+    android:layout_height="match_parent"/>
diff --git a/java/com/android/dialer/common/Assert.java b/java/com/android/dialer/common/Assert.java
index 943e1dd..189d209 100644
--- a/java/com/android/dialer/common/Assert.java
+++ b/java/com/android/dialer/common/Assert.java
@@ -30,6 +30,10 @@
     Assert.areThreadAssertsEnabled = areThreadAssertsEnabled;
   }
 
+  public static boolean areThreadAssertsEnabled() {
+    return areThreadAssertsEnabled;
+  }
+
   /**
    * Called when a truly exceptional case occurs.
    *
diff --git a/java/com/android/dialer/common/concurrent/DialerExecutorComponent.java b/java/com/android/dialer/common/concurrent/DialerExecutorComponent.java
deleted file mode 100644
index 2503325..0000000
--- a/java/com/android/dialer/common/concurrent/DialerExecutorComponent.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialer.common.concurrent;
-
-import android.content.Context;
-import com.android.dialer.inject.HasRootComponent;
-import dagger.Subcomponent;
-
-/** Dagger component which provides a {@link DialerExecutorFactory}. */
-@Subcomponent
-public abstract class DialerExecutorComponent {
-
-  public abstract DialerExecutorFactory dialerExecutorFactory();
-
-  public static DialerExecutorComponent get(Context context) {
-    return ((DialerExecutorComponent.HasComponent)
-            ((HasRootComponent) context.getApplicationContext()).component())
-        .dialerExecutorComponent();
-  }
-
-  /** Used to refer to the root application component. */
-  public interface HasComponent {
-    DialerExecutorComponent dialerExecutorComponent();
-  }
-}
diff --git a/java/com/android/dialer/common/concurrent/DialerExecutorModule.java b/java/com/android/dialer/common/concurrent/DialerExecutorModule.java
deleted file mode 100644
index 281f88c..0000000
--- a/java/com/android/dialer/common/concurrent/DialerExecutorModule.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.dialer.common.concurrent;
-
-import dagger.Binds;
-import dagger.Module;
-
-/** Module which binds the production {@link DialerExecutorFactory}. */
-@Module
-public abstract class DialerExecutorModule {
-
-  @Binds
-  abstract DialerExecutorFactory bindDialerExecutorFactory(
-      DefaultDialerExecutorFactory defaultDialerExecutorFactory);
-}
diff --git a/java/com/android/dialer/compat/CompatUtils.java b/java/com/android/dialer/compat/CompatUtils.java
index 351c89a..673cb70 100644
--- a/java/com/android/dialer/compat/CompatUtils.java
+++ b/java/com/android/dialer/compat/CompatUtils.java
@@ -16,9 +16,15 @@
 package com.android.dialer.compat;
 
 import android.os.Build;
+import android.support.annotation.Nullable;
+import android.text.TextUtils;
+import android.util.Log;
+import java.lang.reflect.InvocationTargetException;
 
 public final class CompatUtils {
 
+  private static final String TAG = CompatUtils.class.getSimpleName();
+
   /** PrioritizedMimeType is added in API level 23. */
   public static boolean hasPrioritizedMimeType() {
     return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M;
@@ -64,4 +70,153 @@
   public static boolean isCallSubjectCompatible() {
     return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP) >= Build.VERSION_CODES.M;
   }
+
+  /**
+   * Determines if this version is compatible with a default dialer. Can also force the version to
+   * be lower through {@link SdkVersionOverride}.
+   *
+   * @return {@code true} if default dialer is a feature on this device, {@code false} otherwise.
+   */
+  public static boolean isDefaultDialerCompatible() {
+    return isMarshmallowCompatible();
+  }
+
+  /**
+   * Determines if this version is compatible with Lollipop Mr1-specific APIs. Can also force the
+   * version to be lower through SdkVersionOverride.
+   *
+   * @return {@code true} if runtime sdk is compatible with Lollipop MR1, {@code false} otherwise.
+   */
+  public static boolean isLollipopMr1Compatible() {
+    return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP_MR1)
+        >= Build.VERSION_CODES.LOLLIPOP_MR1;
+  }
+
+  /**
+   * Determines if this version is compatible with Marshmallow-specific APIs. Can also force the
+   * version to be lower through SdkVersionOverride.
+   *
+   * @return {@code true} if runtime sdk is compatible with Marshmallow, {@code false} otherwise.
+   */
+  public static boolean isMarshmallowCompatible() {
+    return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP) >= Build.VERSION_CODES.M;
+  }
+
+  /**
+   * Determines if the given class is available. Can be used to check if system apis exist at
+   * runtime.
+   *
+   * @param className the name of the class to look for.
+   * @return {@code true} if the given class is available, {@code false} otherwise or if className
+   *     is empty.
+   */
+  public static boolean isClassAvailable(@Nullable String className) {
+    if (TextUtils.isEmpty(className)) {
+      return false;
+    }
+    try {
+      Class.forName(className);
+      return true;
+    } catch (ClassNotFoundException e) {
+      return false;
+    } catch (Throwable t) {
+      Log.e(
+          TAG,
+          "Unexpected exception when checking if class:" + className + " exists at " + "runtime",
+          t);
+      return false;
+    }
+  }
+
+  /**
+   * Determines if the given class's method is available to call. Can be used to check if system
+   * apis exist at runtime.
+   *
+   * @param className the name of the class to look for
+   * @param methodName the name of the method to look for
+   * @param parameterTypes the needed parameter types for the method to look for
+   * @return {@code true} if the given class is available, {@code false} otherwise or if className
+   *     or methodName are empty.
+   */
+  public static boolean isMethodAvailable(
+      @Nullable String className, @Nullable String methodName, Class<?>... parameterTypes) {
+    if (TextUtils.isEmpty(className) || TextUtils.isEmpty(methodName)) {
+      return false;
+    }
+
+    try {
+      Class.forName(className).getMethod(methodName, parameterTypes);
+      return true;
+    } catch (ClassNotFoundException | NoSuchMethodException e) {
+      Log.v(TAG, "Could not find method: " + className + "#" + methodName);
+      return false;
+    } catch (Throwable t) {
+      Log.e(
+          TAG,
+          "Unexpected exception when checking if method: "
+              + className
+              + "#"
+              + methodName
+              + " exists at runtime",
+          t);
+      return false;
+    }
+  }
+
+  /**
+   * Invokes a given class's method using reflection. Can be used to call system apis that exist at
+   * runtime but not in the SDK.
+   *
+   * @param instance The instance of the class to invoke the method on.
+   * @param methodName The name of the method to invoke.
+   * @param parameterTypes The needed parameter types for the method.
+   * @param parameters The parameter values to pass into the method.
+   * @return The result of the invocation or {@code null} if instance or methodName are empty, or if
+   *     the reflection fails.
+   */
+  @Nullable
+  public static Object invokeMethod(
+      @Nullable Object instance,
+      @Nullable String methodName,
+      Class<?>[] parameterTypes,
+      Object[] parameters) {
+    if (instance == null || TextUtils.isEmpty(methodName)) {
+      return null;
+    }
+
+    String className = instance.getClass().getName();
+    try {
+      return Class.forName(className)
+          .getMethod(methodName, parameterTypes)
+          .invoke(instance, parameters);
+    } catch (ClassNotFoundException
+        | NoSuchMethodException
+        | IllegalArgumentException
+        | IllegalAccessException
+        | InvocationTargetException e) {
+      Log.v(TAG, "Could not invoke method: " + className + "#" + methodName);
+      return null;
+    } catch (Throwable t) {
+      Log.e(
+          TAG,
+          "Unexpected exception when invoking method: "
+              + className
+              + "#"
+              + methodName
+              + " at runtime",
+          t);
+      return null;
+    }
+  }
+
+  /**
+   * Determines if this version is compatible with Lollipop-specific APIs. Can also force the
+   * version to be lower through SdkVersionOverride.
+   *
+   * @return {@code true} if call subject is a feature on this device, {@code false} otherwise.
+   */
+  public static boolean isLollipopCompatible() {
+    return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP)
+        >= Build.VERSION_CODES.LOLLIPOP;
+  }
 }
diff --git a/java/com/android/dialer/constants/Constants.java b/java/com/android/dialer/constants/Constants.java
index 076393e..d92c0bc 100644
--- a/java/com/android/dialer/constants/Constants.java
+++ b/java/com/android/dialer/constants/Constants.java
@@ -53,8 +53,5 @@
   @NonNull
   public abstract String getFileProviderAuthority();
 
-  @NonNull
-  public abstract String getAnnotatedCallLogProviderAuthority();
-
   protected Constants() {}
 }
diff --git a/java/com/android/dialer/constants/ScheduledJobIds.java b/java/com/android/dialer/constants/ScheduledJobIds.java
index a54adc7..2fed4ef 100644
--- a/java/com/android/dialer/constants/ScheduledJobIds.java
+++ b/java/com/android/dialer/constants/ScheduledJobIds.java
@@ -32,7 +32,6 @@
   public static final int VVM_TASK_SCHEDULER_JOB = 200;
   public static final int VVM_STATUS_CHECK_JOB = 201;
   public static final int VVM_DEVICE_PROVISIONED_JOB = 202;
-  public static final int VVM_TRANSCRIPTION_JOB = 203;
 
   public static final int VOIP_REGISTRATION = 300;
 
diff --git a/java/com/android/dialer/constants/aospdialer/ConstantsImpl.java b/java/com/android/dialer/constants/aospdialer/ConstantsImpl.java
index 1111732..6b78b98 100644
--- a/java/com/android/dialer/constants/aospdialer/ConstantsImpl.java
+++ b/java/com/android/dialer/constants/aospdialer/ConstantsImpl.java
@@ -34,10 +34,4 @@
   public String getFileProviderAuthority() {
     return "com.android.dialer.files";
   }
-
-  @NonNull
-  @Override
-  public String getAnnotatedCallLogProviderAuthority() {
-    return "com.android.dialer.annotatedcalllog";
-  }
 }
diff --git a/java/com/android/dialer/contactactions/AndroidManifest.xml b/java/com/android/dialer/contactactions/AndroidManifest.xml
deleted file mode 100644
index a64066e..0000000
--- a/java/com/android/dialer/contactactions/AndroidManifest.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<manifest package="com.android.dialer.contactactions"/>
diff --git a/java/com/android/dialer/contactactions/ContactActionBottomSheet.java b/java/com/android/dialer/contactactions/ContactActionBottomSheet.java
deleted file mode 100644
index 4718ff0..0000000
--- a/java/com/android/dialer/contactactions/ContactActionBottomSheet.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dialer.contactactions;
-
-import android.content.Context;
-import android.net.Uri;
-import android.os.Bundle;
-import android.support.design.widget.BottomSheetDialog;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-import com.android.contacts.common.ContactPhotoManager;
-import com.android.dialer.common.Assert;
-import com.android.dialer.dialercontact.DialerContact;
-import java.util.List;
-
-/**
- * {@link BottomSheetDialog} used for building a list of contact actions in a bottom sheet menu.
- *
- * <p>{@link #show(Context, DialerContact, List)} should be used to create and display the menu.
- * Modules are built using {@link ContactActionModule} and some defaults are provided by {@link
- * IntentModule} and {@link DividerModule}.
- */
-public class ContactActionBottomSheet extends BottomSheetDialog implements OnClickListener {
-
-  private final List<ContactActionModule> modules;
-  private final DialerContact contact;
-
-  private ContactActionBottomSheet(
-      Context context, DialerContact contact, List<ContactActionModule> modules) {
-    super(context);
-    this.modules = modules;
-    this.contact = contact;
-    setContentView(LayoutInflater.from(context).inflate(R.layout.sheet_layout, null));
-  }
-
-  public static ContactActionBottomSheet show(
-      Context context, DialerContact contact, List<ContactActionModule> modules) {
-    ContactActionBottomSheet sheet = new ContactActionBottomSheet(context, contact, modules);
-    sheet.show();
-    return sheet;
-  }
-
-  @Override
-  protected void onCreate(Bundle bundle) {
-    super.onCreate(bundle);
-    LinearLayout container = Assert.isNotNull(findViewById(R.id.action_container));
-    container.addView(getContactView(container));
-
-    for (ContactActionModule module : modules) {
-      if (module instanceof DividerModule) {
-        container.addView(getDividerView(container));
-      } else {
-        container.addView(getModuleView(container, module));
-      }
-    }
-  }
-
-  // TODO: add on click action to contact.
-  private View getContactView(ViewGroup container) {
-    LayoutInflater inflater = LayoutInflater.from(getContext());
-    View contactView = inflater.inflate(R.layout.contact_layout, container, false);
-
-    ContactPhotoManager.getInstance(getContext())
-        .loadDialerThumbnailOrPhoto(
-            contactView.findViewById(R.id.quick_contact_photo),
-            contact.hasContactUri() ? Uri.parse(contact.getContactUri()) : null,
-            contact.getPhotoId(),
-            contact.hasPhotoUri() ? Uri.parse(contact.getPhotoUri()) : null,
-            contact.getNameOrNumber(),
-            contact.getContactType());
-
-    TextView nameView = contactView.findViewById(R.id.contact_name);
-    TextView numberView = contactView.findViewById(R.id.phone_number);
-
-    nameView.setText(contact.getNameOrNumber());
-    if (!TextUtils.isEmpty(contact.getDisplayNumber())) {
-      numberView.setVisibility(View.VISIBLE);
-      String secondaryInfo =
-          TextUtils.isEmpty(contact.getNumberLabel())
-              ? contact.getDisplayNumber()
-              : getContext()
-                  .getString(
-                      com.android.contacts.common.R.string.call_subject_type_and_number,
-                      contact.getNumberLabel(),
-                      contact.getDisplayNumber());
-      numberView.setText(secondaryInfo);
-    } else {
-      numberView.setVisibility(View.GONE);
-      numberView.setText(null);
-    }
-    return contactView;
-  }
-
-  private View getDividerView(ViewGroup container) {
-    LayoutInflater inflater = LayoutInflater.from(getContext());
-    return inflater.inflate(R.layout.divider_layout, container, false);
-  }
-
-  private View getModuleView(ViewGroup container, ContactActionModule module) {
-    LayoutInflater inflater = LayoutInflater.from(getContext());
-    View moduleView = inflater.inflate(R.layout.module_layout, container, false);
-    ((TextView) moduleView.findViewById(R.id.module_text)).setText(module.getStringId());
-    ((ImageView) moduleView.findViewById(R.id.module_image))
-        .setImageResource(module.getDrawableId());
-    moduleView.setOnClickListener(this);
-    moduleView.setTag(module);
-    return moduleView;
-  }
-
-  @Override
-  public void onClick(View view) {
-    if (((ContactActionModule) view.getTag()).onClick()) {
-      dismiss();
-    }
-  }
-}
diff --git a/java/com/android/dialer/contactactions/ContactActionModule.java b/java/com/android/dialer/contactactions/ContactActionModule.java
deleted file mode 100644
index 8089edc..0000000
--- a/java/com/android/dialer/contactactions/ContactActionModule.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dialer.contactactions;
-
-import android.support.annotation.DrawableRes;
-import android.support.annotation.StringRes;
-
-/**
- * Modules used to build {@link ContactActionBottomSheet}.
- *
- * <p>Contacts as they relate to this class should be thought of as any entity that an action can be
- * performed on like unknown/restricted contacts, along with saved and non-saved contacts.
- */
-public interface ContactActionModule {
-
-  @StringRes
-  int getStringId();
-
-  @DrawableRes
-  int getDrawableId();
-
-  /** @return true if the bottom sheet should close, false otherwise */
-  boolean onClick();
-}
diff --git a/java/com/android/dialer/contactactions/DividerModule.java b/java/com/android/dialer/contactactions/DividerModule.java
deleted file mode 100644
index aabd160..0000000
--- a/java/com/android/dialer/contactactions/DividerModule.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dialer.contactactions;
-
-import com.android.dialer.common.Assert;
-
-/**
- * A module that inserts a grey line divider into {@link ContactActionModule}. Layout it provided in
- * R.layout.divider_layout.xml
- */
-public final class DividerModule implements ContactActionModule {
-
-  @Override
-  public int getStringId() {
-    throw Assert.createUnsupportedOperationFailException();
-  }
-
-  @Override
-  public int getDrawableId() {
-    throw Assert.createUnsupportedOperationFailException();
-  }
-
-  @Override
-  public boolean onClick() {
-    throw Assert.createUnsupportedOperationFailException();
-  }
-}
diff --git a/java/com/android/dialer/contactactions/IntentModule.java b/java/com/android/dialer/contactactions/IntentModule.java
deleted file mode 100644
index 201f521..0000000
--- a/java/com/android/dialer/contactactions/IntentModule.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dialer.contactactions;
-
-import android.content.Context;
-import android.content.Intent;
-import android.support.annotation.DrawableRes;
-import android.support.annotation.StringRes;
-import com.android.dialer.callintent.CallInitiationType.Type;
-import com.android.dialer.callintent.CallIntentBuilder;
-
-/**
- * {@link ContactActionModule} useful for making easy to build modules based on starting an intent.
- */
-public class IntentModule implements ContactActionModule {
-
-  private final Context context;
-  private final Intent intent;
-  private final @StringRes int text;
-  private final @DrawableRes int image;
-
-  public IntentModule(Context context, Intent intent, @StringRes int text, @DrawableRes int image) {
-    this.context = context;
-    this.intent = intent;
-    this.text = text;
-    this.image = image;
-  }
-
-  @Override
-  public int getStringId() {
-    return text;
-  }
-
-  @Override
-  public int getDrawableId() {
-    return image;
-  }
-
-  @Override
-  public boolean onClick() {
-    context.startActivity(intent);
-    return true;
-  }
-
-  public static IntentModule newCallModule(Context context, String number, Type initiationType) {
-    return new IntentModule(
-        context,
-        new CallIntentBuilder(number, initiationType).build(),
-        R.string.call,
-        R.drawable.quantum_ic_call_white_24);
-  }
-
-  public static IntentModule newVideoCallModule(
-      Context context, String number, Type initiationType) {
-    return new IntentModule(
-        context,
-        new CallIntentBuilder(number, initiationType).setIsVideoCall(true).build(),
-        R.string.video_call,
-        R.drawable.quantum_ic_videocam_white_24);
-  }
-}
diff --git a/java/com/android/dialer/contactactions/res/layout/contact_layout.xml b/java/com/android/dialer/contactactions/res/layout/contact_layout.xml
deleted file mode 100644
index bf32971..0000000
--- a/java/com/android/dialer/contactactions/res/layout/contact_layout.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="horizontal"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:layout_marginTop="8dp"
-    android:layout_marginBottom="12dp"
-    android:layout_marginEnd="8dp">
-
-  <QuickContactBadge
-      android:id="@+id/quick_contact_photo"
-      android:layout_width="@dimen/contact_actions_image_size"
-      android:layout_height="@dimen/contact_actions_image_size"
-      android:layout_marginStart="@dimen/contact_actions_image_margin"
-      android:layout_marginEnd="@dimen/contact_actions_image_margin"
-      android:padding="4dp"
-      android:focusable="true"/>
-
-  <LinearLayout
-      android:orientation="vertical"
-      android:layout_width="wrap_content"
-      android:layout_height="wrap_content"
-      android:gravity="center_vertical">
-
-    <TextView
-        android:id="@+id/contact_name"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        style="@style/PrimaryText"/>
-
-    <TextView
-        android:id="@+id/phone_number"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="2dp"
-        style="@style/SecondaryText"/>
-  </LinearLayout>
-</LinearLayout>
\ No newline at end of file
diff --git a/java/com/android/dialer/contactactions/res/layout/divider_layout.xml b/java/com/android/dialer/contactactions/res/layout/divider_layout.xml
deleted file mode 100644
index fdee50e..0000000
--- a/java/com/android/dialer/contactactions/res/layout/divider_layout.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<View
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="1dp"
-    android:layout_marginTop="8dp"
-    android:layout_marginBottom="8dp"
-    android:background="#12000000"/>
diff --git a/java/com/android/dialer/contactactions/res/layout/module_layout.xml b/java/com/android/dialer/contactactions/res/layout/module_layout.xml
deleted file mode 100644
index 9aee679..0000000
--- a/java/com/android/dialer/contactactions/res/layout/module_layout.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/module_container"
-    android:orientation="horizontal"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:background="?android:attr/selectableItemBackground">
-
-  <ImageView
-      android:id="@+id/module_image"
-      android:layout_width="@dimen/contact_actions_image_size"
-      android:layout_height="@dimen/contact_actions_image_size"
-      android:layout_marginStart="@dimen/contact_actions_image_margin"
-      android:layout_marginEnd="@dimen/contact_actions_image_margin"
-      android:tint="@color/dialer_secondary_text_color"
-      android:scaleType="center"/>
-
-  <TextView
-      android:id="@+id/module_text"
-      android:layout_width="wrap_content"
-      android:layout_height="wrap_content"
-      android:layout_gravity="center_vertical"
-      style="@style/PrimaryText"/>
-</LinearLayout>
\ No newline at end of file
diff --git a/java/com/android/dialer/contactactions/res/layout/sheet_layout.xml b/java/com/android/dialer/contactactions/res/layout/sheet_layout.xml
deleted file mode 100644
index 6984367..0000000
--- a/java/com/android/dialer/contactactions/res/layout/sheet_layout.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/action_container"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:paddingTop="4dp"
-    android:paddingBottom="8dp"/>
diff --git a/java/com/android/dialer/contactactions/res/values/dimens.xml b/java/com/android/dialer/contactactions/res/values/dimens.xml
deleted file mode 100644
index 47bf804..0000000
--- a/java/com/android/dialer/contactactions/res/values/dimens.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <dimen name="contact_actions_image_size">48dp</dimen>
-  <dimen name="contact_actions_image_margin">12dp</dimen>
-</resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/contactsfragment/ContactViewHolder.java b/java/com/android/dialer/contactsfragment/ContactViewHolder.java
index 586e22a..5df106d 100644
--- a/java/com/android/dialer/contactsfragment/ContactViewHolder.java
+++ b/java/com/android/dialer/contactsfragment/ContactViewHolder.java
@@ -16,7 +16,6 @@
 
 package com.android.dialer.contactsfragment;
 
-import android.content.Context;
 import android.net.Uri;
 import android.provider.ContactsContract.QuickContact;
 import android.support.v7.widget.RecyclerView;
@@ -26,8 +25,6 @@
 import android.widget.QuickContactBadge;
 import android.widget.TextView;
 import com.android.dialer.common.Assert;
-import com.android.dialer.logging.InteractionEvent;
-import com.android.dialer.logging.Logger;
 
 /** View holder for a contact. */
 final class ContactViewHolder extends RecyclerView.ViewHolder implements OnClickListener {
@@ -35,14 +32,12 @@
   private final TextView header;
   private final TextView name;
   private final QuickContactBadge photo;
-  private final Context context;
 
   private String headerText;
   private Uri contactUri;
 
   public ContactViewHolder(View itemView) {
     super(itemView);
-    context = itemView.getContext();
     itemView.findViewById(R.id.click_target).setOnClickListener(this);
     header = (TextView) itemView.findViewById(R.id.header);
     name = (TextView) itemView.findViewById(R.id.contact_name);
@@ -65,10 +60,6 @@
     name.setText(displayName);
     header.setText(headerText);
     header.setVisibility(showHeader ? View.VISIBLE : View.INVISIBLE);
-
-    Logger.get(context)
-        .logQuickContactOnTouch(
-            photo, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CONTACTS_FRAGMENT_BADGE, true);
   }
 
   public QuickContactBadge getPhoto() {
@@ -85,8 +76,6 @@
 
   @Override
   public void onClick(View v) {
-    Logger.get(context)
-        .logInteraction(InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CONTACTS_FRAGMENT_ITEM);
     QuickContact.showQuickContact(
         photo.getContext(), photo, contactUri, QuickContact.MODE_LARGE, null /* excludeMimes */);
   }
diff --git a/java/com/android/dialer/contactsfragment/ContactsAdapter.java b/java/com/android/dialer/contactsfragment/ContactsAdapter.java
index 309e034..4692eff 100644
--- a/java/com/android/dialer/contactsfragment/ContactsAdapter.java
+++ b/java/com/android/dialer/contactsfragment/ContactsAdapter.java
@@ -23,10 +23,10 @@
 import android.support.v4.util.ArrayMap;
 import android.support.v7.widget.RecyclerView;
 import android.view.LayoutInflater;
-import android.view.View;
 import android.view.ViewGroup;
+import android.widget.TextView;
 import com.android.contacts.common.ContactPhotoManager;
-import com.android.contacts.common.lettertiles.LetterTileDrawable;
+import com.android.dialer.common.Assert;
 
 /** List adapter for the union of all contacts associated with every account on the device. */
 final class ContactsAdapter extends RecyclerView.Adapter<ContactViewHolder> {
@@ -70,7 +70,7 @@
             getPhotoId(cursor),
             getPhotoUri(cursor),
             name,
-            LetterTileDrawable.TYPE_DEFAULT);
+            0);
 
     String photoDescription =
         context.getString(com.android.contacts.common.R.string.description_quick_contact_for, name);
@@ -79,23 +79,17 @@
     // Always show the view holder's header if it's the first item in the list. Otherwise, compare
     // it to the previous element and only show the anchored header if the row elements fall into
     // the same sublists.
-    boolean showHeader = position == 0 || !header.equals(getHeaderString(position - 1));
-    contactViewHolder.bind(header, name, contactUri, showHeader);
-  }
-
-  @Override
-  public void onViewRecycled(ContactViewHolder contactViewHolder) {
-    super.onViewRecycled(contactViewHolder);
-    holderMap.remove(contactViewHolder);
+    if (position == 0) {
+      contactViewHolder.bind(header, name, contactUri, true);
+    } else {
+      boolean showHeader = !header.equals(getHeaderString(position - 1));
+      contactViewHolder.bind(header, name, contactUri, showHeader);
+    }
   }
 
   public void refreshHeaders() {
     for (ContactViewHolder holder : holderMap.keySet()) {
-      int position = holderMap.get(holder);
-      boolean showHeader =
-          position == 0 || !getHeaderString(position).equals(getHeaderString(position - 1));
-      int visibility = showHeader ? View.VISIBLE : View.INVISIBLE;
-      holder.getHeaderView().setVisibility(visibility);
+      onBindViewHolder(holder, holderMap.get(holder));
     }
   }
 
@@ -104,6 +98,27 @@
     return cursor == null ? 0 : cursor.getCount();
   }
 
+  public String getHeader(int position) {
+    return getHolderAt(position).getHeader();
+  }
+
+  public TextView getHeaderView(int position) {
+    return getHolderAt(position).getHeaderView();
+  }
+
+  public void setHeaderVisibility(int position, int visibility) {
+    getHolderAt(position).getHeaderView().setVisibility(visibility);
+  }
+
+  private ContactViewHolder getHolderAt(int position) {
+    for (ContactViewHolder holder : holderMap.keySet()) {
+      if (holderMap.get(holder) == position) {
+        return holder;
+      }
+    }
+    throw Assert.createIllegalStateFailException("No holder for position: " + position);
+  }
+
   private static String getDisplayName(Cursor cursor) {
     return cursor.getString(ContactsCursorLoader.CONTACT_DISPLAY_NAME);
   }
@@ -123,7 +138,7 @@
     return Contacts.getLookupUri(contactId, lookupKey);
   }
 
-  public String getHeaderString(int position) {
+  private String getHeaderString(int position) {
     int index = -1;
     int sum = 0;
     while (sum <= position) {
diff --git a/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java b/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java
index 2bb540a..6d4d210 100644
--- a/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java
+++ b/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java
@@ -29,7 +29,7 @@
   public static final int CONTACT_PHOTO_URI = 3;
   public static final int CONTACT_LOOKUP_KEY = 4;
 
-  public static final String[] CONTACTS_PROJECTION_DISPLAY_NAME_PRIMARY =
+  public static final String[] CONTACTS_PROJECTION =
       new String[] {
         Contacts._ID, // 0
         Contacts.DISPLAY_NAME_PRIMARY, // 1
@@ -38,35 +38,16 @@
         Contacts.LOOKUP_KEY, // 4
       };
 
-  public static final String[] CONTACTS_PROJECTION_DISPLAY_NAME_ALTERNATIVE =
-      new String[] {
-        Contacts._ID, // 0
-        Contacts.DISPLAY_NAME_ALTERNATIVE, // 1
-        Contacts.PHOTO_ID, // 2
-        Contacts.PHOTO_THUMBNAIL_URI, // 3
-        Contacts.LOOKUP_KEY, // 4
-      };
-
-  private ContactsCursorLoader(Context context, String[] contactProjection, String sortKey) {
+  public ContactsCursorLoader(Context context) {
     super(
         context,
         Contacts.CONTENT_URI
             .buildUpon()
             .appendQueryParameter(Contacts.EXTRA_ADDRESS_BOOK_INDEX, "true")
             .build(),
-        contactProjection,
+        CONTACTS_PROJECTION,
         null,
         null,
-        sortKey + " ASC");
-  }
-
-  public static ContactsCursorLoader createInstanceDisplayNamePrimary(
-      Context context, String sortKey) {
-    return new ContactsCursorLoader(context, CONTACTS_PROJECTION_DISPLAY_NAME_PRIMARY, sortKey);
-  }
-
-  public static ContactsCursorLoader createInstanceDisplayNameAlternative(
-      Context context, String sortKey) {
-    return new ContactsCursorLoader(context, CONTACTS_PROJECTION_DISPLAY_NAME_ALTERNATIVE, sortKey);
+        Contacts.SORT_KEY_PRIMARY + " ASC");
   }
 }
diff --git a/java/com/android/dialer/contactsfragment/ContactsFragment.java b/java/com/android/dialer/contactsfragment/ContactsFragment.java
index a996a4f..ea662fc 100644
--- a/java/com/android/dialer/contactsfragment/ContactsFragment.java
+++ b/java/com/android/dialer/contactsfragment/ContactsFragment.java
@@ -16,125 +16,63 @@
 
 package com.android.dialer.contactsfragment;
 
-import android.Manifest.permission;
 import android.app.Fragment;
 import android.app.LoaderManager.LoaderCallbacks;
 import android.content.Loader;
-import android.content.pm.PackageManager;
 import android.database.Cursor;
 import android.os.Bundle;
-import android.provider.ContactsContract.Contacts;
 import android.support.annotation.Nullable;
-import android.support.v13.app.FragmentCompat;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.RecyclerView.Recycler;
-import android.support.v7.widget.RecyclerView.State;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View.OnScrollChangeListener;
 import android.view.ViewGroup;
 import android.widget.TextView;
-import com.android.contacts.common.preference.ContactsPreferences;
-import com.android.dialer.common.Assert;
-import com.android.dialer.util.DialerUtils;
-import com.android.dialer.util.IntentUtil;
 import com.android.dialer.util.PermissionsUtil;
-import com.android.dialer.widget.EmptyContentView;
-import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
 
 /** Fragment containing a list of all contacts. */
 public class ContactsFragment extends Fragment
-    implements LoaderCallbacks<Cursor>,
-        OnScrollChangeListener,
-        OnEmptyViewActionButtonClickedListener {
+    implements LoaderCallbacks<Cursor>, OnScrollChangeListener {
 
-  public static final int READ_CONTACTS_PERMISSION_REQUEST_CODE = 1;
-
-  private FastScroller fastScroller;
   private TextView anchoredHeader;
   private RecyclerView recyclerView;
   private LinearLayoutManager manager;
   private ContactsAdapter adapter;
-  private EmptyContentView emptyContentView;
-
-  private ContactsPreferences contactsPrefs;
-
-  private final ContactsPreferences.ChangeListener preferencesChangeListener =
-      () -> getLoaderManager().restartLoader(0, null, this);
-
-  @Override
-  public void onCreate(Bundle savedState) {
-    super.onCreate(savedState);
-    contactsPrefs = new ContactsPreferences(getContext());
-    contactsPrefs.registerChangeListener(preferencesChangeListener);
-  }
 
   @Nullable
   @Override
   public View onCreateView(
       LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
     View view = inflater.inflate(R.layout.fragment_contacts, container, false);
-    fastScroller = (FastScroller) view.findViewById(R.id.fast_scroller);
     anchoredHeader = (TextView) view.findViewById(R.id.header);
-    recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
+    manager = new LinearLayoutManager(getContext());
 
-    emptyContentView = (EmptyContentView) view.findViewById(R.id.empty_list_view);
-    emptyContentView.setImage(R.drawable.empty_contacts);
-    emptyContentView.setActionClickedListener(this);
+    // TODO: Handle contacts permission denied view
+    // TODO: Handle 0 contacts layout
+    recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
+    recyclerView.setLayoutManager(manager);
+    getLoaderManager().initLoader(0, null, this);
 
     if (PermissionsUtil.hasContactsReadPermissions(getContext())) {
       getLoaderManager().initLoader(0, null, this);
-    } else {
-      emptyContentView.setDescription(R.string.permission_no_contacts);
-      emptyContentView.setActionLabel(R.string.permission_single_turn_on);
-      emptyContentView.setVisibility(View.VISIBLE);
     }
 
     return view;
   }
 
-  /** @return a loader according to sort order and display order. */
   @Override
   public Loader<Cursor> onCreateLoader(int id, Bundle args) {
-    boolean sortOrderPrimary =
-        (contactsPrefs.getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY);
-    boolean displayOrderPrimary =
-        (contactsPrefs.getDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY);
-
-    String sortKey = sortOrderPrimary ? Contacts.SORT_KEY_PRIMARY : Contacts.SORT_KEY_ALTERNATIVE;
-    return displayOrderPrimary
-        ? ContactsCursorLoader.createInstanceDisplayNamePrimary(getContext(), sortKey)
-        : ContactsCursorLoader.createInstanceDisplayNameAlternative(getContext(), sortKey);
+    return new ContactsCursorLoader(getContext());
   }
 
   @Override
   public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
-    if (cursor.getCount() == 0) {
-      emptyContentView.setDescription(R.string.all_contacts_empty);
-      emptyContentView.setActionLabel(R.string.all_contacts_empty_add_contact_action);
-      emptyContentView.setVisibility(View.VISIBLE);
-    } else {
-      emptyContentView.setVisibility(View.GONE);
-      adapter = new ContactsAdapter(getContext(), cursor);
-      manager =
-          new LinearLayoutManager(getContext()) {
-            @Override
-            public void onLayoutChildren(Recycler recycler, State state) {
-              super.onLayoutChildren(recycler, state);
-              int itemsShown = findLastVisibleItemPosition() - findFirstVisibleItemPosition() + 1;
-              if (adapter.getItemCount() > itemsShown) {
-                fastScroller.setVisibility(View.VISIBLE);
-                recyclerView.setOnScrollChangeListener(ContactsFragment.this);
-              } else {
-                fastScroller.setVisibility(View.GONE);
-              }
-            }
-          };
-
-      recyclerView.setLayoutManager(manager);
-      recyclerView.setAdapter(adapter);
-      fastScroller.setup(adapter, manager);
+    // TODO setup fast scroller.
+    adapter = new ContactsAdapter(getContext(), cursor);
+    recyclerView.setAdapter(adapter);
+    if (adapter.getItemCount() > 1) {
+      recyclerView.setOnScrollChangeListener(this);
     }
   }
 
@@ -143,7 +81,6 @@
     recyclerView.setAdapter(null);
     recyclerView.setOnScrollChangeListener(null);
     adapter = null;
-    contactsPrefs.unregisterChangeListener();
   }
 
   /*
@@ -158,10 +95,8 @@
    */
   @Override
   public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
-    fastScroller.updateContainerAndScrollBarPosition(recyclerView);
     int firstVisibleItem = manager.findFirstVisibleItemPosition();
     int firstCompletelyVisible = manager.findFirstCompletelyVisibleItemPosition();
-    String anchoredHeaderString = adapter.getHeaderString(firstCompletelyVisible);
 
     // If the user swipes to the top of the list very quickly, there is some strange behavior
     // between this method updating headers and adapter#onBindViewHolder updating headers.
@@ -169,46 +104,15 @@
     if (firstVisibleItem == firstCompletelyVisible && firstVisibleItem == 0) {
       adapter.refreshHeaders();
       anchoredHeader.setVisibility(View.INVISIBLE);
-    } else if (adapter.getHeaderString(firstVisibleItem).equals(anchoredHeaderString)) {
-      anchoredHeader.setText(anchoredHeaderString);
-      anchoredHeader.setVisibility(View.VISIBLE);
-      getContactHolder(firstVisibleItem).getHeaderView().setVisibility(View.INVISIBLE);
-      getContactHolder(firstCompletelyVisible).getHeaderView().setVisibility(View.INVISIBLE);
     } else {
-      anchoredHeader.setVisibility(View.INVISIBLE);
-      getContactHolder(firstVisibleItem).getHeaderView().setVisibility(View.VISIBLE);
-      getContactHolder(firstCompletelyVisible).getHeaderView().setVisibility(View.VISIBLE);
-    }
-  }
+      boolean showAnchor =
+          adapter.getHeader(firstVisibleItem).equals(adapter.getHeader(firstCompletelyVisible));
+      anchoredHeader.setText(adapter.getHeader(firstCompletelyVisible));
+      anchoredHeader.setVisibility(showAnchor ? View.VISIBLE : View.INVISIBLE);
 
-  private ContactViewHolder getContactHolder(int position) {
-    return ((ContactViewHolder) recyclerView.findViewHolderForAdapterPosition(position));
-  }
-
-  @Override
-  public void onEmptyViewActionButtonClicked() {
-    if (emptyContentView.getActionLabel() == R.string.permission_single_turn_on) {
-      FragmentCompat.requestPermissions(
-          this, new String[] {permission.READ_CONTACTS}, READ_CONTACTS_PERMISSION_REQUEST_CODE);
-    } else if (emptyContentView.getActionLabel()
-        == R.string.all_contacts_empty_add_contact_action) {
-      // Add new contact
-      DialerUtils.startActivityWithErrorToast(
-          getContext(), IntentUtil.getNewContactIntent(), R.string.add_contact_not_available);
-    } else {
-      throw Assert.createIllegalStateFailException("Invalid empty content view action label.");
-    }
-  }
-
-  @Override
-  public void onRequestPermissionsResult(
-      int requestCode, String[] permissions, int[] grantResults) {
-    if (requestCode == READ_CONTACTS_PERMISSION_REQUEST_CODE) {
-      if (grantResults.length >= 1 && PackageManager.PERMISSION_GRANTED == grantResults[0]) {
-        // Force a refresh of the data since we were missing the permission before this.
-        emptyContentView.setVisibility(View.GONE);
-        getLoaderManager().initLoader(0, null, this);
-      }
+      int rowHeaderVisibility = showAnchor ? View.INVISIBLE : View.VISIBLE;
+      adapter.setHeaderVisibility(firstVisibleItem, rowHeaderVisibility);
+      adapter.setHeaderVisibility(firstCompletelyVisible, rowHeaderVisibility);
     }
   }
 }
diff --git a/java/com/android/dialer/contactsfragment/FastScroller.java b/java/com/android/dialer/contactsfragment/FastScroller.java
deleted file mode 100644
index 980032c..0000000
--- a/java/com/android/dialer/contactsfragment/FastScroller.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dialer.contactsfragment;
-
-import android.content.Context;
-import android.support.annotation.NonNull;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.util.AttributeSet;
-import android.view.MotionEvent;
-import android.view.View;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-/** Widget to add fast scrolling to {@link ContactsFragment}. */
-public class FastScroller extends RelativeLayout {
-
-  private final int touchTargetWidth;
-
-  private ContactsAdapter adapter;
-  private LinearLayoutManager layoutManager;
-
-  private TextView container;
-  private View scrollBar;
-
-  private boolean dragStarted;
-
-  public FastScroller(Context context, AttributeSet attrs) {
-    super(context, attrs);
-    touchTargetWidth =
-        context.getResources().getDimensionPixelSize(R.dimen.fast_scroller_touch_target_width);
-  }
-
-  @Override
-  protected void onFinishInflate() {
-    super.onFinishInflate();
-    container = (TextView) findViewById(R.id.fast_scroller_container);
-    scrollBar = findViewById(R.id.fast_scroller_scroll_bar);
-  }
-
-  void setup(ContactsAdapter adapter, LinearLayoutManager layoutManager) {
-    this.adapter = adapter;
-    this.layoutManager = layoutManager;
-  }
-
-  @Override
-  public boolean onTouchEvent(@NonNull MotionEvent event) {
-    // Don't override if touch event isn't within desired touch target and dragging hasn't started.
-    if (!dragStarted && getWidth() - touchTargetWidth - event.getX() > 0) {
-      return super.onTouchEvent(event);
-    }
-
-    switch (event.getAction()) {
-      case MotionEvent.ACTION_DOWN:
-        dragStarted = true;
-        container.setVisibility(VISIBLE);
-        scrollBar.setSelected(true);
-        // fall through
-      case MotionEvent.ACTION_MOVE:
-        setContainerAndScrollBarPosition(event.getY());
-        setRecyclerViewPosition(event.getY());
-        return true;
-      case MotionEvent.ACTION_UP:
-      case MotionEvent.ACTION_CANCEL:
-        dragStarted = false;
-        container.setVisibility(INVISIBLE);
-        scrollBar.setSelected(false);
-        return true;
-    }
-    return super.onTouchEvent(event);
-  }
-
-  private void setRecyclerViewPosition(float y) {
-    final int itemCount = adapter.getItemCount();
-    float scrolledPosition = getScrolledPercentage(y) * (float) itemCount;
-    int targetPos = getValueInRange(0, itemCount - 1, (int) scrolledPosition);
-    layoutManager.scrollToPositionWithOffset(targetPos, 0);
-    container.setText(adapter.getHeaderString(targetPos));
-  }
-
-  // Returns a float in range [0, 1] which represents the position of the scroller.
-  private float getScrolledPercentage(float y) {
-    if (scrollBar.getY() == 0) {
-      return 0f;
-    } else if (scrollBar.getY() + scrollBar.getHeight() >= getHeight()) {
-      return 1f;
-    } else {
-      return y / (float) getHeight();
-    }
-  }
-
-  private int getValueInRange(int min, int max, int value) {
-    int minimum = Math.max(min, value);
-    return Math.min(minimum, max);
-  }
-
-  void updateContainerAndScrollBarPosition(RecyclerView recyclerView) {
-    if (!scrollBar.isSelected()) {
-      int verticalScrollOffset = recyclerView.computeVerticalScrollOffset();
-      int verticalScrollRange = recyclerView.computeVerticalScrollRange();
-      float proportion = (float) verticalScrollOffset / ((float) verticalScrollRange - getHeight());
-      setContainerAndScrollBarPosition(getHeight() * proportion);
-    }
-  }
-
-  private void setContainerAndScrollBarPosition(float y) {
-    int scrollBarHeight = scrollBar.getHeight();
-    int containerHeight = container.getHeight();
-    scrollBar.setY(
-        getValueInRange(0, getHeight() - scrollBarHeight, (int) (y - scrollBarHeight / 2)));
-    container.setY(
-        getValueInRange(
-            0, getHeight() - containerHeight - scrollBarHeight / 2, (int) (y - containerHeight)));
-  }
-}
diff --git a/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_container_background.xml b/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_container_background.xml
deleted file mode 100644
index a7b2277..0000000
--- a/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_container_background.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle">
-  <solid android:color="@color/dialer_theme_color"/>
-  <size
-      android:height="@dimen/fast_scroller_container_size"
-      android:width="@dimen/fast_scroller_container_size"/>
-  <corners
-      android:topLeftRadius="@dimen/fast_scroller_container_corner_radius"
-      android:topRightRadius="@dimen/fast_scroller_container_corner_radius"
-      android:bottomLeftRadius="@dimen/fast_scroller_bottom_left_corner_radius"
-      android:bottomRightRadius="@dimen/fast_scroller_bottom_right_corner_radius"/>
-</shape>
\ No newline at end of file
diff --git a/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_scroll_bar.xml b/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_scroll_bar.xml
deleted file mode 100644
index a3e0c25..0000000
--- a/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_scroll_bar.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-  <item android:state_selected="true">
-    <shape android:shape="rectangle">
-      <solid android:color="@color/dialer_theme_color"/>
-      <size android:height="32dp" android:width="4dp"/>
-      <corners android:radius="2dp"/>
-    </shape>
-  </item>
-  <item>
-    <shape android:shape="rectangle">
-      <solid android:color="@color/dialer_secondary_text_color"/>
-      <size android:height="32dp" android:width="4dp"/>
-      <corners android:radius="2dp"/>
-    </shape>
-  </item>
-</selector>
\ No newline at end of file
diff --git a/java/com/android/dialer/contactsfragment/res/layout/contact_row.xml b/java/com/android/dialer/contactsfragment/res/layout/contact_row.xml
index 9e829fe..af87c7f 100644
--- a/java/com/android/dialer/contactsfragment/res/layout/contact_row.xml
+++ b/java/com/android/dialer/contactsfragment/res/layout/contact_row.xml
@@ -43,13 +43,11 @@
 
     <TextView
         android:id="@+id/contact_name"
-        android:layout_width="wrap_content"
+        android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:paddingStart="@dimen/text_padding_start"
         android:paddingEnd="@dimen/text_padding_end"
-        android:maxLines="1"
-        android:ellipsize="end"
-        android:gravity="center_vertical"
+        android:gravity="center_vertical|start"
         android:textSize="@dimen/text_size"
         android:textColor="@color/dialer_primary_text_color"
         android:fontFamily="sans-serif"/>
diff --git a/java/com/android/dialer/contactsfragment/res/layout/fragment_contacts.xml b/java/com/android/dialer/contactsfragment/res/layout/fragment_contacts.xml
index 7cbc4f0..67b490f 100644
--- a/java/com/android/dialer/contactsfragment/res/layout/fragment_contacts.xml
+++ b/java/com/android/dialer/contactsfragment/res/layout/fragment_contacts.xml
@@ -23,46 +23,8 @@
       android:id="@+id/recycler_view"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
-      android:background="@color/background_dialer_light"/>
-
-  <!-- Scrollbars are always on the right side of the screen. Layouts should use Rights/Left instead
-       of Start/End -->
-  <com.android.dialer.contactsfragment.FastScroller
-      android:id="@+id/fast_scroller"
-      android:layout_width="match_parent"
-      android:layout_height="match_parent"
-      android:layout_marginTop="8dp"
-      android:layout_marginBottom="8dp"
-      android:clipChildren="false">
-
-    <TextView
-        android:id="@+id/fast_scroller_container"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_toLeftOf="@+id/fast_scroller_scroll_bar"
-        android:gravity="center"
-        android:textSize="48sp"
-        android:textColor="@color/background_dialer_white"
-        android:visibility="gone"
-        android:background="@drawable/fast_scroller_container_background"/>
-
-    <ImageView
-        android:id="@+id/fast_scroller_scroll_bar"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginLeft="8dp"
-        android:layout_alignParentRight="true"
-        android:paddingRight="16dp"
-        android:src="@drawable/fast_scroller_scroll_bar" />
-  </com.android.dialer.contactsfragment.FastScroller>
+      android:background="@color/background_dialer_white"/>
 
   <!-- Anchored header view -->
   <include layout="@layout/header"/>
-
-  <com.android.dialer.widget.EmptyContentView
-      android:id="@+id/empty_list_view"
-      android:layout_width="match_parent"
-      android:layout_height="wrap_content"
-      android:layout_gravity="center"
-      android:visibility="gone"/>
 </FrameLayout>
diff --git a/java/com/android/dialer/contactsfragment/res/values/dimens.xml b/java/com/android/dialer/contactsfragment/res/values/dimens.xml
index f120014..00d7c6d 100644
--- a/java/com/android/dialer/contactsfragment/res/values/dimens.xml
+++ b/java/com/android/dialer/contactsfragment/res/values/dimens.xml
@@ -25,11 +25,4 @@
   <dimen name="text_padding_start">16dp</dimen>
   <dimen name="text_padding_end">8dp</dimen>
   <dimen name="text_size">16sp</dimen>
-
-  <dimen name="fast_scroller_touch_target_width">20dp</dimen>
-
-  <dimen name="fast_scroller_container_size">88dp</dimen>
-  <dimen name="fast_scroller_container_corner_radius">44dp</dimen>
-  <dimen name="fast_scroller_bottom_right_corner_radius">0px</dimen>
-  <dimen name="fast_scroller_bottom_left_corner_radius">44dp</dimen>
-</resources>
\ No newline at end of file
+</resources>
diff --git a/java/com/android/dialer/database/DialerDatabaseHelper.java b/java/com/android/dialer/database/DialerDatabaseHelper.java
index 6dd7cf4..3488142 100644
--- a/java/com/android/dialer/database/DialerDatabaseHelper.java
+++ b/java/com/android/dialer/database/DialerDatabaseHelper.java
@@ -34,7 +34,6 @@
 import android.provider.ContactsContract.Data;
 import android.provider.ContactsContract.Directory;
 import android.support.annotation.VisibleForTesting;
-import android.support.annotation.WorkerThread;
 import android.text.TextUtils;
 import com.android.contacts.common.R;
 import com.android.contacts.common.util.StopWatch;
@@ -47,6 +46,7 @@
 import java.util.HashSet;
 import java.util.Objects;
 import java.util.Set;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * Database helper for smart dial. Designed as a singleton to make sure there is only one access
@@ -77,6 +77,8 @@
   private static final int MAX_ENTRIES = 20;
 
   private final Context mContext;
+  private final Object mLock = new Object();
+  private final AtomicBoolean mInUpdate = new AtomicBoolean(false);
   private boolean mIsTestInstance = false;
 
   protected DialerDatabaseHelper(Context context, String databaseName, int dbVersion) {
@@ -594,212 +596,218 @@
    * accordingly. It also queries the deleted contact database to remove newly deleted contacts
    * since last update.
    */
-  @WorkerThread
-  public synchronized void updateSmartDialDatabase() {
+  public void updateSmartDialDatabase() {
     LogUtil.enterBlock("DialerDatabaseHelper.updateSmartDialDatabase");
 
     final SQLiteDatabase db = getWritableDatabase();
 
-    LogUtil.v("DialerDatabaseHelper.updateSmartDialDatabase", "starting to update database");
-    final StopWatch stopWatch = DEBUG ? StopWatch.start("Updating databases") : null;
+    synchronized (mLock) {
+      LogUtil.v("DialerDatabaseHelper.updateSmartDialDatabase", "starting to update database");
+      final StopWatch stopWatch = DEBUG ? StopWatch.start("Updating databases") : null;
 
-    /** Gets the last update time on the database. */
-    final SharedPreferences databaseLastUpdateSharedPref =
-        mContext.getSharedPreferences(DATABASE_LAST_CREATED_SHARED_PREF, Context.MODE_PRIVATE);
-    final String lastUpdateMillis =
-        String.valueOf(databaseLastUpdateSharedPref.getLong(LAST_UPDATED_MILLIS, 0));
+      /** Gets the last update time on the database. */
+      final SharedPreferences databaseLastUpdateSharedPref =
+          mContext.getSharedPreferences(DATABASE_LAST_CREATED_SHARED_PREF, Context.MODE_PRIVATE);
+      final String lastUpdateMillis =
+          String.valueOf(databaseLastUpdateSharedPref.getLong(LAST_UPDATED_MILLIS, 0));
 
-    LogUtil.v(
-        "DialerDatabaseHelper.updateSmartDialDatabase", "last updated at " + lastUpdateMillis);
+      LogUtil.v(
+          "DialerDatabaseHelper.updateSmartDialDatabase", "last updated at " + lastUpdateMillis);
 
-    /** Sets the time after querying the database as the current update time. */
-    final Long currentMillis = System.currentTimeMillis();
+      /** Sets the time after querying the database as the current update time. */
+      final Long currentMillis = System.currentTimeMillis();
 
-    if (DEBUG) {
-      stopWatch.lap("Queried the Contacts database");
-    }
+      if (DEBUG) {
+        stopWatch.lap("Queried the Contacts database");
+      }
 
-    /** Removes contacts that have been deleted. */
-    removeDeletedContacts(db, getDeletedContactCursor(lastUpdateMillis));
-    removePotentiallyCorruptedContacts(db, lastUpdateMillis);
+      /** Prevents the app from reading the dialer database when updating. */
+      mInUpdate.getAndSet(true);
 
-    if (DEBUG) {
-      stopWatch.lap("Finished deleting deleted entries");
-    }
+      /** Removes contacts that have been deleted. */
+      removeDeletedContacts(db, getDeletedContactCursor(lastUpdateMillis));
+      removePotentiallyCorruptedContacts(db, lastUpdateMillis);
 
-    /**
-     * If the database did not exist before, jump through deletion as there is nothing to delete.
-     */
-    if (!lastUpdateMillis.equals("0")) {
+      if (DEBUG) {
+        stopWatch.lap("Finished deleting deleted entries");
+      }
+
       /**
-       * Removes contacts that have been updated. Updated contact information will be inserted
-       * later. Note that this has to use a separate result set from updatePhoneCursor, since it is
-       * possible for a contact to be updated (e.g. phone number deleted), but have no results show
-       * up in updatedPhoneCursor (since all of its phone numbers have been deleted).
+       * If the database did not exist before, jump through deletion as there is nothing to delete.
        */
-      final Cursor updatedContactCursor =
+      if (!lastUpdateMillis.equals("0")) {
+        /**
+         * Removes contacts that have been updated. Updated contact information will be inserted
+         * later. Note that this has to use a separate result set from updatePhoneCursor, since it
+         * is possible for a contact to be updated (e.g. phone number deleted), but have no results
+         * show up in updatedPhoneCursor (since all of its phone numbers have been deleted).
+         */
+        final Cursor updatedContactCursor =
+            mContext
+                .getContentResolver()
+                .query(
+                    UpdatedContactQuery.URI,
+                    UpdatedContactQuery.PROJECTION,
+                    UpdatedContactQuery.SELECT_UPDATED_CLAUSE,
+                    new String[] {lastUpdateMillis},
+                    null);
+        if (updatedContactCursor == null) {
+          LogUtil.e(
+              "DialerDatabaseHelper.updateSmartDialDatabase",
+              "smartDial query received null for cursor");
+          return;
+        }
+        try {
+          removeUpdatedContacts(db, updatedContactCursor);
+        } finally {
+          updatedContactCursor.close();
+        }
+        if (DEBUG) {
+          stopWatch.lap("Finished deleting entries belonging to updated contacts");
+        }
+      }
+
+      /**
+       * Queries the contact database to get all phone numbers that have been updated since the last
+       * update time.
+       */
+      final Cursor updatedPhoneCursor =
           mContext
               .getContentResolver()
               .query(
-                  UpdatedContactQuery.URI,
-                  UpdatedContactQuery.PROJECTION,
-                  UpdatedContactQuery.SELECT_UPDATED_CLAUSE,
+                  PhoneQuery.URI,
+                  PhoneQuery.PROJECTION,
+                  PhoneQuery.SELECTION,
                   new String[] {lastUpdateMillis},
                   null);
-      if (updatedContactCursor == null) {
+      if (updatedPhoneCursor == null) {
         LogUtil.e(
             "DialerDatabaseHelper.updateSmartDialDatabase",
             "smartDial query received null for cursor");
         return;
       }
+
       try {
-        removeUpdatedContacts(db, updatedContactCursor);
-      } finally {
-        updatedContactCursor.close();
-      }
-      if (DEBUG) {
-        stopWatch.lap("Finished deleting entries belonging to updated contacts");
-      }
-    }
-
-    /**
-     * Queries the contact database to get all phone numbers that have been updated since the last
-     * update time.
-     */
-    final Cursor updatedPhoneCursor =
-        mContext
-            .getContentResolver()
-            .query(
-                PhoneQuery.URI,
-                PhoneQuery.PROJECTION,
-                PhoneQuery.SELECTION,
-                new String[] {lastUpdateMillis},
-                null);
-    if (updatedPhoneCursor == null) {
-      LogUtil.e(
-          "DialerDatabaseHelper.updateSmartDialDatabase",
-          "smartDial query received null for cursor");
-      return;
-    }
-
-    try {
-      /** Inserts recently updated phone numbers to the smartdial database. */
-      insertUpdatedContactsAndNumberPrefix(db, updatedPhoneCursor, currentMillis);
-      if (DEBUG) {
-        stopWatch.lap("Finished building the smart dial table");
-      }
-    } finally {
-      updatedPhoneCursor.close();
-    }
-
-    /**
-     * Gets a list of distinct contacts which have been updated, and adds the name prefixes of these
-     * contacts to the prefix table.
-     */
-    final Cursor nameCursor =
-        db.rawQuery(
-            "SELECT DISTINCT "
-                + SmartDialDbColumns.DISPLAY_NAME_PRIMARY
-                + ", "
-                + SmartDialDbColumns.CONTACT_ID
-                + " FROM "
-                + Tables.SMARTDIAL_TABLE
-                + " WHERE "
-                + SmartDialDbColumns.LAST_SMARTDIAL_UPDATE_TIME
-                + " = "
-                + currentMillis,
-            new String[] {});
-    if (nameCursor != null) {
-      try {
+        /** Inserts recently updated phone numbers to the smartdial database. */
+        insertUpdatedContactsAndNumberPrefix(db, updatedPhoneCursor, currentMillis);
         if (DEBUG) {
-          stopWatch.lap("Queried the smart dial table for contact names");
-        }
-
-        /** Inserts prefixes of names into the prefix table. */
-        insertNamePrefixes(db, nameCursor);
-        if (DEBUG) {
-          stopWatch.lap("Finished building the name prefix table");
+          stopWatch.lap("Finished building the smart dial table");
         }
       } finally {
-        nameCursor.close();
+        updatedPhoneCursor.close();
       }
+
+      /**
+       * Gets a list of distinct contacts which have been updated, and adds the name prefixes of
+       * these contacts to the prefix table.
+       */
+      final Cursor nameCursor =
+          db.rawQuery(
+              "SELECT DISTINCT "
+                  + SmartDialDbColumns.DISPLAY_NAME_PRIMARY
+                  + ", "
+                  + SmartDialDbColumns.CONTACT_ID
+                  + " FROM "
+                  + Tables.SMARTDIAL_TABLE
+                  + " WHERE "
+                  + SmartDialDbColumns.LAST_SMARTDIAL_UPDATE_TIME
+                  + " = "
+                  + Long.toString(currentMillis),
+              new String[] {});
+      if (nameCursor != null) {
+        try {
+          if (DEBUG) {
+            stopWatch.lap("Queried the smart dial table for contact names");
+          }
+
+          /** Inserts prefixes of names into the prefix table. */
+          insertNamePrefixes(db, nameCursor);
+          if (DEBUG) {
+            stopWatch.lap("Finished building the name prefix table");
+          }
+        } finally {
+          nameCursor.close();
+        }
+      }
+
+      /** Creates index on contact_id for fast JOIN operation. */
+      db.execSQL(
+          "CREATE INDEX IF NOT EXISTS smartdial_contact_id_index ON "
+              + Tables.SMARTDIAL_TABLE
+              + " ("
+              + SmartDialDbColumns.CONTACT_ID
+              + ");");
+      /** Creates index on last_smartdial_update_time for fast SELECT operation. */
+      db.execSQL(
+          "CREATE INDEX IF NOT EXISTS smartdial_last_update_index ON "
+              + Tables.SMARTDIAL_TABLE
+              + " ("
+              + SmartDialDbColumns.LAST_SMARTDIAL_UPDATE_TIME
+              + ");");
+      /** Creates index on sorting fields for fast sort operation. */
+      db.execSQL(
+          "CREATE INDEX IF NOT EXISTS smartdial_sort_index ON "
+              + Tables.SMARTDIAL_TABLE
+              + " ("
+              + SmartDialDbColumns.STARRED
+              + ", "
+              + SmartDialDbColumns.IS_SUPER_PRIMARY
+              + ", "
+              + SmartDialDbColumns.LAST_TIME_USED
+              + ", "
+              + SmartDialDbColumns.TIMES_USED
+              + ", "
+              + SmartDialDbColumns.IN_VISIBLE_GROUP
+              + ", "
+              + SmartDialDbColumns.DISPLAY_NAME_PRIMARY
+              + ", "
+              + SmartDialDbColumns.CONTACT_ID
+              + ", "
+              + SmartDialDbColumns.IS_PRIMARY
+              + ");");
+      /** Creates index on prefix for fast SELECT operation. */
+      db.execSQL(
+          "CREATE INDEX IF NOT EXISTS nameprefix_index ON "
+              + Tables.PREFIX_TABLE
+              + " ("
+              + PrefixColumns.PREFIX
+              + ");");
+      /** Creates index on contact_id for fast JOIN operation. */
+      db.execSQL(
+          "CREATE INDEX IF NOT EXISTS nameprefix_contact_id_index ON "
+              + Tables.PREFIX_TABLE
+              + " ("
+              + PrefixColumns.CONTACT_ID
+              + ");");
+
+      if (DEBUG) {
+        stopWatch.lap(TAG + "Finished recreating index");
+      }
+
+      /** Updates the database index statistics. */
+      db.execSQL("ANALYZE " + Tables.SMARTDIAL_TABLE);
+      db.execSQL("ANALYZE " + Tables.PREFIX_TABLE);
+      db.execSQL("ANALYZE smartdial_contact_id_index");
+      db.execSQL("ANALYZE smartdial_last_update_index");
+      db.execSQL("ANALYZE nameprefix_index");
+      db.execSQL("ANALYZE nameprefix_contact_id_index");
+      if (DEBUG) {
+        stopWatch.stopAndLog(TAG + "Finished updating index stats", 0);
+      }
+
+      mInUpdate.getAndSet(false);
+
+      final SharedPreferences.Editor editor = databaseLastUpdateSharedPref.edit();
+      editor.putLong(LAST_UPDATED_MILLIS, currentMillis);
+      editor.apply();
+
+      LogUtil.i("DialerDatabaseHelper.updateSmartDialDatabase", "broadcasting smart dial update");
+
+      // Notify content observers that smart dial database has been updated.
+      Intent intent = new Intent(ACTION_SMART_DIAL_UPDATED);
+      intent.setPackage(mContext.getPackageName());
+      mContext.sendBroadcast(intent);
     }
-
-    /** Creates index on contact_id for fast JOIN operation. */
-    db.execSQL(
-        "CREATE INDEX IF NOT EXISTS smartdial_contact_id_index ON "
-            + Tables.SMARTDIAL_TABLE
-            + " ("
-            + SmartDialDbColumns.CONTACT_ID
-            + ");");
-    /** Creates index on last_smartdial_update_time for fast SELECT operation. */
-    db.execSQL(
-        "CREATE INDEX IF NOT EXISTS smartdial_last_update_index ON "
-            + Tables.SMARTDIAL_TABLE
-            + " ("
-            + SmartDialDbColumns.LAST_SMARTDIAL_UPDATE_TIME
-            + ");");
-    /** Creates index on sorting fields for fast sort operation. */
-    db.execSQL(
-        "CREATE INDEX IF NOT EXISTS smartdial_sort_index ON "
-            + Tables.SMARTDIAL_TABLE
-            + " ("
-            + SmartDialDbColumns.STARRED
-            + ", "
-            + SmartDialDbColumns.IS_SUPER_PRIMARY
-            + ", "
-            + SmartDialDbColumns.LAST_TIME_USED
-            + ", "
-            + SmartDialDbColumns.TIMES_USED
-            + ", "
-            + SmartDialDbColumns.IN_VISIBLE_GROUP
-            + ", "
-            + SmartDialDbColumns.DISPLAY_NAME_PRIMARY
-            + ", "
-            + SmartDialDbColumns.CONTACT_ID
-            + ", "
-            + SmartDialDbColumns.IS_PRIMARY
-            + ");");
-    /** Creates index on prefix for fast SELECT operation. */
-    db.execSQL(
-        "CREATE INDEX IF NOT EXISTS nameprefix_index ON "
-            + Tables.PREFIX_TABLE
-            + " ("
-            + PrefixColumns.PREFIX
-            + ");");
-    /** Creates index on contact_id for fast JOIN operation. */
-    db.execSQL(
-        "CREATE INDEX IF NOT EXISTS nameprefix_contact_id_index ON "
-            + Tables.PREFIX_TABLE
-            + " ("
-            + PrefixColumns.CONTACT_ID
-            + ");");
-
-    if (DEBUG) {
-      stopWatch.lap(TAG + "Finished recreating index");
-    }
-
-    /** Updates the database index statistics. */
-    db.execSQL("ANALYZE " + Tables.SMARTDIAL_TABLE);
-    db.execSQL("ANALYZE " + Tables.PREFIX_TABLE);
-    db.execSQL("ANALYZE smartdial_contact_id_index");
-    db.execSQL("ANALYZE smartdial_last_update_index");
-    db.execSQL("ANALYZE nameprefix_index");
-    db.execSQL("ANALYZE nameprefix_contact_id_index");
-    if (DEBUG) {
-      stopWatch.stopAndLog(TAG + "Finished updating index stats", 0);
-    }
-
-    final SharedPreferences.Editor editor = databaseLastUpdateSharedPref.edit();
-    editor.putLong(LAST_UPDATED_MILLIS, currentMillis);
-    editor.apply();
-
-    LogUtil.i("DialerDatabaseHelper.updateSmartDialDatabase", "broadcasting smart dial update");
-
-    // Notify content observers that smart dial database has been updated.
-    Intent intent = new Intent(ACTION_SMART_DIAL_UPDATED);
-    intent.setPackage(mContext.getPackageName());
-    mContext.sendBroadcast(intent);
   }
 
   /**
@@ -809,9 +817,12 @@
    * @param query The prefix of a contact's dialpad index.
    * @return A list of top candidate contacts that will be suggested to user to match their input.
    */
-  @WorkerThread
-  public synchronized ArrayList<ContactNumber> getLooseMatches(
-      String query, SmartDialNameMatcher nameMatcher) {
+  public ArrayList<ContactNumber> getLooseMatches(String query, SmartDialNameMatcher nameMatcher) {
+    final boolean inUpdate = mInUpdate.get();
+    if (inUpdate) {
+      return new ArrayList<>();
+    }
+
     final SQLiteDatabase db = getReadableDatabase();
 
     /** Uses SQL query wildcard '%' to represent prefix matching. */
diff --git a/java/com/android/dialer/dialpadview/res/values/dimens.xml b/java/com/android/dialer/dialpadview/res/values/dimens.xml
index 7277364..210c816 100644
--- a/java/com/android/dialer/dialpadview/res/values/dimens.xml
+++ b/java/com/android/dialer/dialpadview/res/values/dimens.xml
@@ -16,7 +16,7 @@
 
 <resources>
   <!-- Text dimensions for dialpad keys -->
-  <dimen name="dialpad_key_numbers_default_size">36dp</dimen>
+  <dimen name="dialpad_key_numbers_default_size">36sp</dimen>
   <dimen name="dialpad_key_letters_size">12sp</dimen>
   <dimen name="dialpad_key_pound_size">23sp</dimen>
   <dimen name="dialpad_key_star_size">36sp</dimen>
diff --git a/java/com/android/dialer/interactions/PhoneNumberInteraction.java b/java/com/android/dialer/interactions/PhoneNumberInteraction.java
index ef468a9..52f9d20 100644
--- a/java/com/android/dialer/interactions/PhoneNumberInteraction.java
+++ b/java/com/android/dialer/interactions/PhoneNumberInteraction.java
@@ -54,14 +54,11 @@
 import com.android.contacts.common.Collapser.Collapsible;
 import com.android.contacts.common.MoreContactUtils;
 import com.android.contacts.common.util.ContactDisplayUtils;
-import com.android.dialer.callintent.CallInitiationType;
 import com.android.dialer.callintent.CallIntentBuilder;
 import com.android.dialer.callintent.CallIntentParser;
 import com.android.dialer.callintent.CallSpecificAppData;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.logging.InteractionEvent;
-import com.android.dialer.logging.Logger;
 import com.android.dialer.util.DialerUtils;
 import com.android.dialer.util.TransactionSafeActivity;
 import java.lang.annotation.Retention;
@@ -546,12 +543,6 @@
         final PhoneItem phoneItem = mPhoneList.get(which);
         final CheckBox checkBox = (CheckBox) alertDialog.findViewById(R.id.setPrimary);
         if (checkBox.isChecked()) {
-          if (mCallSpecificAppData.getCallInitiationType() == CallInitiationType.Type.SPEED_DIAL) {
-            Logger.get(getContext())
-                .logInteraction(
-                    InteractionEvent.Type.SPEED_DIAL_SET_DEFAULT_NUMBER_FOR_AMBIGUOUS_CONTACT);
-          }
-
           // Request to mark the data as primary in the background.
           final Intent serviceIntent =
               ContactUpdateService.createSetSuperPrimaryIntent(activity, phoneItem.id);
diff --git a/java/com/android/dialer/location/CountryDetector.java b/java/com/android/dialer/location/CountryDetector.java
index c4bed14..a90febf 100644
--- a/java/com/android/dialer/location/CountryDetector.java
+++ b/java/com/android/dialer/location/CountryDetector.java
@@ -33,8 +33,8 @@
 import android.text.TextUtils;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.concurrent.DialerExecutors;
 import com.android.dialer.common.concurrent.DialerExecutor.Worker;
-import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import com.android.dialer.util.PermissionsUtil;
 import java.util.List;
 import java.util.Locale;
@@ -216,9 +216,7 @@
 
   private static void processLocationUpdate(
       Context appContext, Geocoder geocoder, Location location) {
-    DialerExecutorComponent.get(appContext)
-        .dialerExecutorFactory()
-        .createNonUiTaskBuilder(new GeocodeCountryWorker(geocoder))
+    DialerExecutors.createNonUiTaskBuilder(new GeocodeCountryWorker(geocoder))
         .onSuccess(
             country -> {
               if (country == null) {
diff --git a/java/com/android/dialer/logging/LoggingBindings.java b/java/com/android/dialer/logging/LoggingBindings.java
index 4a98d9e..526cb20 100644
--- a/java/com/android/dialer/logging/LoggingBindings.java
+++ b/java/com/android/dialer/logging/LoggingBindings.java
@@ -14,8 +14,8 @@
 
 package com.android.dialer.logging;
 
+
 import android.app.Activity;
-import android.widget.QuickContactBadge;
 
 /** Allows the container application to gather analytics. */
 public interface LoggingBindings {
@@ -62,22 +62,6 @@
    */
   void logScreenView(com.android.dialer.logging.ScreenEvent.Type screenEvent, Activity activity);
 
-  /** Logs the composition of contact tiles in the speed dial tab. */
-  void logSpeedDialContactComposition(
-      int counter,
-      int starredContactsCount,
-      int pinnedContactsCount,
-      int multipleNumbersContactsCount,
-      int contactsWithPhotoCount,
-      int contactsWithNameCount,
-      int duoReachableContactCount);
-
   /** Logs a hit event to the analytics server. */
   void sendHitEventAnalytics(String category, String action, String label, long value);
-
-  /** Logs where a quick contact badge is clicked */
-  void logQuickContactOnTouch(
-      QuickContactBadge quickContact,
-      InteractionEvent.Type interactionEvent,
-      boolean shouldPerformClick);
 }
diff --git a/java/com/android/dialer/logging/LoggingBindingsStub.java b/java/com/android/dialer/logging/LoggingBindingsStub.java
index dd3b8ac..f7ca6ec 100644
--- a/java/com/android/dialer/logging/LoggingBindingsStub.java
+++ b/java/com/android/dialer/logging/LoggingBindingsStub.java
@@ -15,7 +15,6 @@
 package com.android.dialer.logging;
 
 import android.app.Activity;
-import android.widget.QuickContactBadge;
 
 /** Default implementation for logging bindings. */
 public class LoggingBindingsStub implements LoggingBindings {
@@ -37,21 +36,5 @@
   public void logScreenView(ScreenEvent.Type screenEvent, Activity activity) {}
 
   @Override
-  public void logSpeedDialContactComposition(
-      int counter,
-      int starredContactsCount,
-      int pinnedContactsCount,
-      int multipleNumbersContactsCount,
-      int contactsWithPhotoCount,
-      int contactsWithNameCount,
-      int duoReachableContactsCount) {}
-
-  @Override
   public void sendHitEventAnalytics(String category, String action, String label, long value) {}
-
-  @Override
-  public void logQuickContactOnTouch(
-      QuickContactBadge quickContact,
-      InteractionEvent.Type interactionEvent,
-      boolean shouldPerformClick) {}
 }
diff --git a/java/com/android/dialer/logging/contact_lookup_result.proto b/java/com/android/dialer/logging/contact_lookup_result.proto
index c9624af..835d7d7 100644
--- a/java/com/android/dialer/logging/contact_lookup_result.proto
+++ b/java/com/android/dialer/logging/contact_lookup_result.proto
@@ -5,7 +5,6 @@
 option java_multiple_files = true;
 option optimize_for = LITE_RUNTIME;
 
-
 message ContactLookupResult {
   // The different results of a contact lookup done using a phone number.
   enum Type {
diff --git a/java/com/android/dialer/logging/contact_source.proto b/java/com/android/dialer/logging/contact_source.proto
index ffd32de..470cf8b 100644
--- a/java/com/android/dialer/logging/contact_source.proto
+++ b/java/com/android/dialer/logging/contact_source.proto
@@ -5,7 +5,6 @@
 option java_multiple_files = true;
 option optimize_for = LITE_RUNTIME;
 
-
 message ContactSource {
   // Applies only to reports made from call history. If we have contact
   // information for the phone number, this field indicates its source.
diff --git a/java/com/android/dialer/logging/dialer_impression.proto b/java/com/android/dialer/logging/dialer_impression.proto
index 1d8c828..5416146 100644
--- a/java/com/android/dialer/logging/dialer_impression.proto
+++ b/java/com/android/dialer/logging/dialer_impression.proto
@@ -5,12 +5,11 @@
 option java_multiple_files = true;
 option optimize_for = LITE_RUNTIME;
 
-
 message DialerImpression {
   // Event enums to be used for Impression Logging in Dialer.
   // It's perfectly acceptable for this enum to be large
   // Values should be from 1000 to 100000.
-  // Next Tag:1196
+  // Next Tag:1191
   enum Type {
 
     UNKNOWN_AOSP_EVENT_TYPE = 1000;
@@ -387,21 +386,5 @@
     VVM_STATUS_CHECK_REACTIVATION = 1189;
 
     VVM_ARCHIVE_AUTO_DELETE_FAILED_DUE_TO_FAILED_QUOTA_CHECK = 1190;
-
-    // User pressed the speaker phone button on the return-to-call bubble
-    BUBBLE_TURN_ON_SPEAKERPHONE = 1191;
-    // User pressed the speaker phone button again on the return-to-call bubble
-    BUBBLE_TURN_ON_WIRED_OR_EARPIECE = 1192;
-    // User muted the call from the return-to-call bubble
-    BUBBLE_MUTE_CALL = 1193;
-    // User unmuted the call from the return-to-call bubble
-    BUBBLE_UNMUTE_CALL = 1194;
-    // User ended the call from the return-to-call bubble
-    BUBBLE_END_CALL = 1195;
-
-    LIGHTBRINGER_VIDEO_REQUESTED_FROM_SEARCH = 1196;
-    LIGHTBRINGER_VIDEO_REQUESTED_FROM_CALL_LOG = 1197;
-    IMS_VIDEO_REQUESTED_FROM_SEARCH = 1198;
-    IMS_VIDEO_REQUESTED_FROM_CALL_LOG = 1199;
   }
 }
diff --git a/java/com/android/dialer/logging/interaction_event.proto b/java/com/android/dialer/logging/interaction_event.proto
index 89cf46f..b9af1b7 100644
--- a/java/com/android/dialer/logging/interaction_event.proto
+++ b/java/com/android/dialer/logging/interaction_event.proto
@@ -5,9 +5,7 @@
 option java_multiple_files = true;
 option optimize_for = LITE_RUNTIME;
 
-
 message InteractionEvent {
-  // Next Tag: 38
   enum Type {
 
     UNKNOWN = 0;
@@ -43,23 +41,5 @@
 
     // The user unblocked a number then undid the unblock
     UNDO_UNBLOCK_NUMBER = 24;
-
-    // Actions in speed dial
-    SPEED_DIAL_PIN_CONTACT = 25;
-    SPEED_DIAL_REMOVE_CONTACT = 26;
-    SPEED_DIAL_OPEN_CONTACT_CARD = 27;
-    SPEED_DIAL_CLICK_CONTACT_WITH_AMBIGUOUS_NUMBER = 28;
-
-    SPEED_DIAL_SET_DEFAULT_NUMBER_FOR_AMBIGUOUS_CONTACT = 29;
-
-    // Open quick contact from where
-    OPEN_QUICK_CONTACT_FROM_CALL_LOG = 30;
-    OPEN_QUICK_CONTACT_FROM_CALL_DETAILS = 31;
-    OPEN_QUICK_CONTACT_FROM_ALL_CONTACTS_GENERAL = 32;
-    OPEN_QUICK_CONTACT_FROM_CONTACTS_FRAGMENT_BADGE = 33;
-    OPEN_QUICK_CONTACT_FROM_CONTACTS_FRAGMENT_ITEM = 34;
-    OPEN_QUICK_CONTACT_FROM_SEARCH = 35;
-    OPEN_QUICK_CONTACT_FROM_VOICEMAIL = 36;
-    OPEN_QUICK_CONTACT_FROM_CALL_HISTORY = 37;
   }
 }
diff --git a/java/com/android/dialer/logging/reporting_location.proto b/java/com/android/dialer/logging/reporting_location.proto
index d436564..7286948 100644
--- a/java/com/android/dialer/logging/reporting_location.proto
+++ b/java/com/android/dialer/logging/reporting_location.proto
@@ -5,7 +5,6 @@
 option java_multiple_files = true;
 option optimize_for = LITE_RUNTIME;
 
-
 message ReportingLocation {
   // Spam reporting location
   enum Type {
diff --git a/java/com/android/dialer/logging/screen_event.proto b/java/com/android/dialer/logging/screen_event.proto
index ca62477..2430bfd 100644
--- a/java/com/android/dialer/logging/screen_event.proto
+++ b/java/com/android/dialer/logging/screen_event.proto
@@ -5,7 +5,6 @@
 option java_multiple_files = true;
 option optimize_for = LITE_RUNTIME;
 
-
 message ScreenEvent {
   enum Type {
 
diff --git a/java/com/android/dialer/multimedia/MultimediaData.java b/java/com/android/dialer/multimedia/MultimediaData.java
index dee0cff..22bb764 100644
--- a/java/com/android/dialer/multimedia/MultimediaData.java
+++ b/java/com/android/dialer/multimedia/MultimediaData.java
@@ -20,7 +20,6 @@
 import android.net.Uri;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
-import android.text.TextUtils;
 import com.android.dialer.common.LogUtil;
 import com.google.auto.value.AutoValue;
 
@@ -64,11 +63,6 @@
   /** Returns {@code true} if this data is marked as important. */
   public abstract boolean isImportant();
 
-  /** Returns true if this has image, text or location data. */
-  public boolean hasData() {
-    return hasImageData() || !TextUtils.isEmpty(getText()) || getLocation() != null;
-  }
-
   /** Returns the string form of this MultimediaData with no PII. */
   @Override
   public String toString() {
diff --git a/java/com/android/dialer/oem/CequintCallerIdManager.java b/java/com/android/dialer/oem/CequintCallerIdManager.java
index 806d553..095ee4e 100644
--- a/java/com/android/dialer/oem/CequintCallerIdManager.java
+++ b/java/com/android/dialer/oem/CequintCallerIdManager.java
@@ -18,6 +18,7 @@
 import android.annotation.TargetApi;
 import android.content.Context;
 import android.content.pm.PackageManager;
+import android.database.ContentObserver;
 import android.database.Cursor;
 import android.net.Uri;
 import android.os.Build.VERSION_CODES;
@@ -30,6 +31,7 @@
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.ConfigProviderBindings;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.util.PermissionsUtil;
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
@@ -71,12 +73,17 @@
   private static final String IMAGE = "cid_pLogo";
   private static final String DISPLAY_NAME = "cid_pDisplayName";
 
+  // TODO: Revisit it and maybe remove it if it's not necessary.
+  private static final ConcurrentHashMap<String, CequintCallerIdContact> callLogCache =
+      new ConcurrentHashMap<>();
+  private static final ConcurrentHashMap<String, CequintCallerIdContact> incallIncomingCallCache =
+      new ConcurrentHashMap<>();
+  private static final ConcurrentHashMap<String, CequintCallerIdContact> incallOutgoingCallCache =
+      new ConcurrentHashMap<>();
+  private static boolean hasRegisteredContentObserver;
   private static boolean hasAlreadyCheckedCequintCallerIdPackage;
   private static boolean isCequintCallerIdEnabled;
 
-  // TODO: Revisit it and maybe remove it if it's not necessary.
-  private final ConcurrentHashMap<String, CequintCallerIdContact> callLogCache;
-
   /** Cequint caller id contact information. */
   public static class CequintCallerIdContact {
     public final String name;
@@ -110,35 +117,9 @@
     return isCequintCallerIdEnabled;
   }
 
-  public static CequintCallerIdManager createInstanceForCallLog() {
-    return new CequintCallerIdManager();
-  }
-
   @WorkerThread
   @Nullable
-  public static CequintCallerIdContact getCequintCallerIdContactForInCall(
-      Context context, String number, String cnapName, boolean isIncoming) {
-    Assert.isWorkerThread();
-    LogUtil.d(
-        "CequintCallerIdManager.getCequintCallerIdContactForInCall",
-        "number: %s, cnapName: %s, isIncoming: %b",
-        LogUtil.sanitizePhoneNumber(number),
-        LogUtil.sanitizePii(cnapName),
-        isIncoming);
-    int flag = 0;
-    if (isIncoming) {
-      flag |= CALLER_ID_LOOKUP_INCOMING_CALL;
-      flag |= CALLER_ID_LOOKUP_SYSTEM_PROVIDED_CID;
-    } else {
-      flag |= CALLER_ID_LOOKUP_USER_PROVIDED_CID;
-    }
-    String[] flags = {cnapName, String.valueOf(flag)};
-    return lookup(context, CONTENT_URI_FOR_INCALL, number, flags);
-  }
-
-  @WorkerThread
-  @Nullable
-  public CequintCallerIdContact getCequintCallerIdContact(Context context, String number) {
+  public static CequintCallerIdContact getCequintCallerIdContact(Context context, String number) {
     Assert.isWorkerThread();
     LogUtil.d(
         "CequintCallerIdManager.getCequintCallerIdContact",
@@ -161,6 +142,43 @@
 
   @WorkerThread
   @Nullable
+  public static CequintCallerIdContact getCequintCallerIdContactForInCall(
+      Context context, String number, String cnapName, boolean isIncoming) {
+    Assert.isWorkerThread();
+    LogUtil.d(
+        "CequintCallerIdManager.getCequintCallerIdContactForInCall",
+        "number: %s, cnapName: %s, isIncoming: %b",
+        LogUtil.sanitizePhoneNumber(number),
+        LogUtil.sanitizePii(cnapName),
+        isIncoming);
+    registerContentObserver(context);
+    if (isIncoming && incallIncomingCallCache.containsKey(number)) {
+      return incallIncomingCallCache.get(number);
+    } else if (!isIncoming && incallOutgoingCallCache.containsKey(number)) {
+      return incallOutgoingCallCache.get(number);
+    }
+    int flag = 0;
+    if (isIncoming) {
+      flag |= CALLER_ID_LOOKUP_INCOMING_CALL;
+      flag |= CALLER_ID_LOOKUP_SYSTEM_PROVIDED_CID;
+    } else {
+      flag |= CALLER_ID_LOOKUP_USER_PROVIDED_CID;
+    }
+    String[] flags = {cnapName, String.valueOf(flag)};
+    CequintCallerIdContact cequintCallerIdContact =
+        lookup(context, CONTENT_URI_FOR_INCALL, number, flags);
+    if (cequintCallerIdContact != null) {
+      if (isIncoming) {
+        incallIncomingCallCache.put(number, cequintCallerIdContact);
+      } else {
+        incallOutgoingCallCache.put(number, cequintCallerIdContact);
+      }
+    }
+    return cequintCallerIdContact;
+  }
+
+  @WorkerThread
+  @Nullable
   private static CequintCallerIdContact lookup(
       Context context, Uri uri, @NonNull String number, String[] flags) {
     Assert.isWorkerThread();
@@ -267,7 +285,33 @@
     return geoDescription;
   }
 
-  private CequintCallerIdManager() {
-    callLogCache = new ConcurrentHashMap<>();
+  private static synchronized void registerContentObserver(Context context) {
+    if (!PermissionsUtil.hasCequintPermissions(context)) {
+      LogUtil.i("CequintCallerIdManager.registerContentObserver", "no cequint permissions");
+      return;
+    }
+
+    if (hasRegisteredContentObserver) {
+      return;
+    }
+    ContentObserver contentObserver =
+        new ContentObserver(null) {
+          @Override
+          public void onChange(boolean selfChange) {
+            invalidateCache();
+          }
+        };
+
+    context
+        .getContentResolver()
+        .registerContentObserver(CONTENT_URI_FOR_INCALL, true, contentObserver);
+    hasRegisteredContentObserver = true;
   }
+
+  private static void invalidateCache() {
+    incallIncomingCallCache.clear();
+    incallOutgoingCallCache.clear();
+  }
+
+  private CequintCallerIdManager() {}
 }
diff --git a/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java b/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java
index 79abff0..9cf145b 100644
--- a/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java
+++ b/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java
@@ -67,7 +67,9 @@
   }
 
   private MotorolaHiddenMenuKeySequence(Context context) {
-    featureHiddenMenuEnabled = MotorolaUtils.isSupportingHiddenMenu(context);
+    featureHiddenMenuEnabled =
+        MotorolaUtils.isSpnMatched(context)
+            && context.getResources().getBoolean(R.bool.motorola_feature_hidden_menu);
     // In case we do have a SPN from resource we need to match from service; otherwise we are
     // free to go
     if (featureHiddenMenuEnabled) {
diff --git a/java/com/android/dialer/oem/MotorolaUtils.java b/java/com/android/dialer/oem/MotorolaUtils.java
index 2c91e60..db2b890 100644
--- a/java/com/android/dialer/oem/MotorolaUtils.java
+++ b/java/com/android/dialer/oem/MotorolaUtils.java
@@ -19,10 +19,7 @@
 import android.content.res.Resources;
 import android.telephony.TelephonyManager;
 import com.android.dialer.common.ConfigProviderBindings;
-import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.PackageUtils;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
 
 /** Util class for Motorola OEM devices. */
 public class MotorolaUtils {
@@ -42,8 +39,6 @@
   // This is used to check if a Motorola device supports WiFi call feature, by checking if a certain
   // package is enabled.
   private static final String WIFI_CALL_PACKAGE_NAME = "com.motorola.sprintwfc";
-  // Thi is used to check if a Motorola device supports hidden menu feature.
-  private static final String HIDDEN_MENU_FEATURE = "com.motorola.software.sprint.hidden_menu";
 
   // Feature flag indicates it's a HD call, currently this is only used by Motorola system build.
   // TODO(b/35359461): Use reference to android.provider.CallLog once it's in new SDK.
@@ -69,10 +64,6 @@
     }
   }
 
-  static boolean isSupportingHiddenMenu(Context context) {
-    return context.getPackageManager().hasSystemFeature(HIDDEN_MENU_FEATURE);
-  }
-
   public static boolean shouldBlinkHdIconWhenConnectingCall(Context context) {
     return ConfigProviderBindings.get(context)
             .getBoolean(CONFIG_HD_CODEC_BLINKING_ICON_WHEN_CONNECTING_CALL_ENABLED, true)
@@ -111,22 +102,6 @@
     return MotorolaHiddenMenuKeySequence.handleCharSequence(context, input);
   }
 
-  public static boolean isWifiCallingAvailable(Context context) {
-    if (!isSupportingSprintWifiCall(context)) {
-      return false;
-    }
-    TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class);
-    try {
-      Method method = TelephonyManager.class.getMethod("isWifiCallingAvailable");
-      boolean isWifiCallingAvailable = (boolean) method.invoke(telephonyManager);
-      LogUtil.d("MotorolaUtils.isWifiCallingAvailable", "%b", isWifiCallingAvailable);
-      return isWifiCallingAvailable;
-    } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
-      LogUtil.e("MotorolaUtils.isWifiCallingAvailable", "", e);
-    }
-    return false;
-  }
-
   private static boolean isSupportingSprintHdCodec(Context context) {
     return isSpnMatched(context)
         && context.getResources().getBoolean(R.bool.motorola_sprint_hd_codec)
diff --git a/java/com/android/dialer/oem/res/values-mcc310-mnc000/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc310-mnc000/motorola_config.xml
index ac33975..7f63bee 100644
--- a/java/com/android/dialer/oem/res/values-mcc310-mnc000/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values-mcc310-mnc000/motorola_config.xml
@@ -1,21 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
 <resources>
   <bool name="motorola_sprint_hd_codec">true</bool>
+  <bool name="motorola_feature_hidden_menu">true</bool>
   <string name="motorola_enabled_spn">Sprint</string>
 </resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml
index c5cb0d1..39b72cd 100644
--- a/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml
@@ -1,20 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
 <resources>
   <bool name="motorola_sprint_hd_codec">true</bool>
+  <bool name="motorola_feature_hidden_menu">true</bool>
 </resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml
index c5cb0d1..39b72cd 100644
--- a/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml
@@ -1,20 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
 <resources>
   <bool name="motorola_sprint_hd_codec">true</bool>
+  <bool name="motorola_feature_hidden_menu">true</bool>
 </resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml
index c5cb0d1..39b72cd 100644
--- a/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml
@@ -1,20 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
 <resources>
   <bool name="motorola_sprint_hd_codec">true</bool>
+  <bool name="motorola_feature_hidden_menu">true</bool>
 </resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml
index c5cb0d1..39b72cd 100644
--- a/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml
@@ -1,20 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
 <resources>
   <bool name="motorola_sprint_hd_codec">true</bool>
+  <bool name="motorola_feature_hidden_menu">true</bool>
 </resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml
index c5cb0d1..39b72cd 100644
--- a/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml
@@ -1,20 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
 <resources>
   <bool name="motorola_sprint_hd_codec">true</bool>
+  <bool name="motorola_feature_hidden_menu">true</bool>
 </resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/oem/res/values/motorola_config.xml b/java/com/android/dialer/oem/res/values/motorola_config.xml
index 46e7a16..f875d57 100644
--- a/java/com/android/dialer/oem/res/values/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values/motorola_config.xml
@@ -1,25 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
 <resources>
   <!-- Flag to control if HD codec is supported by Sprint. -->
   <bool name="motorola_sprint_hd_codec">false</bool>
 
   <!-- Hidden menu configuration for Motorola. -->
+  <!-- Flag to control if the Hidden Menu sequence will be supported by Sprint. -->
+  <bool name="motorola_feature_hidden_menu">false</bool>
+
   <!-- This defines the specific key seuquence that will be catched in the SpecialCharSequenceMgr
        such as, ##OMADM# -->
   <string-array name="motorola_hidden_menu_key_sequence">
diff --git a/java/com/android/dialer/phonenumbercache/ContactInfo.java b/java/com/android/dialer/phonenumbercache/ContactInfo.java
index aef7374..5546553 100644
--- a/java/com/android/dialer/phonenumbercache/ContactInfo.java
+++ b/java/com/android/dialer/phonenumbercache/ContactInfo.java
@@ -17,7 +17,7 @@
 package com.android.dialer.phonenumbercache;
 
 import android.net.Uri;
-import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
 import android.text.TextUtils;
 import com.android.contacts.common.ContactsUtils.UserType;
 import com.android.contacts.common.util.UriUtils;
@@ -59,7 +59,7 @@
   public boolean isBadData;
   public String objectId;
   public @UserType long userType;
-  public @NonNull ContactSource.Type sourceType = ContactSource.Type.UNKNOWN_SOURCE_TYPE;
+  public @Nullable ContactSource.Type sourceType = ContactSource.Type.UNKNOWN_SOURCE_TYPE;
   /**
    * True if local contact exists. This is only used for Cequint Caller ID so it won't overwrite
    * photo if local contact exists.
diff --git a/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java b/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
index c9e940e..bd4ba97 100644
--- a/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
+++ b/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
@@ -601,17 +601,13 @@
    * will be updated if available.
    */
   @WorkerThread
-  public void updateFromCequintCallerId(
-      @Nullable CequintCallerIdManager cequintCallerIdManager, ContactInfo info, String number) {
+  public void updateFromCequintCallerId(ContactInfo info, String number) {
     Assert.isWorkerThread();
     if (!CequintCallerIdManager.isCequintCallerIdEnabled(mContext)) {
       return;
     }
-    if (cequintCallerIdManager == null) {
-      return;
-    }
     CequintCallerIdContact cequintCallerIdContact =
-        cequintCallerIdManager.getCequintCallerIdContact(mContext, number);
+        CequintCallerIdManager.getCequintCallerIdContact(mContext, number);
     if (cequintCallerIdContact == null) {
       return;
     }
diff --git a/java/com/android/dialer/postcall/AndroidManifest.xml b/java/com/android/dialer/postcall/AndroidManifest.xml
index 22c77dd..79ca5d5 100644
--- a/java/com/android/dialer/postcall/AndroidManifest.xml
+++ b/java/com/android/dialer/postcall/AndroidManifest.xml
@@ -21,7 +21,7 @@
     <activity
       android:name="com.android.dialer.postcall.PostCallActivity"
       android:exported="false"
-      android:theme="@style/DialerThemeBase.NoActionBar"
+      android:theme="@style/Theme.AppCompat.NoActionBar"
       android:windowSoftInputMode="adjustResize"
       android:screenOrientation="portrait"/>
   </application>
diff --git a/java/com/android/dialer/postcall/PostCall.java b/java/com/android/dialer/postcall/PostCall.java
index 7eb83b1..586b473 100644
--- a/java/com/android/dialer/postcall/PostCall.java
+++ b/java/com/android/dialer/postcall/PostCall.java
@@ -26,6 +26,8 @@
 import android.telephony.TelephonyManager;
 import android.view.View;
 import android.view.View.OnClickListener;
+import com.android.dialer.buildtype.BuildType;
+import com.android.dialer.common.Assert;
 import com.android.dialer.common.ConfigProvider;
 import com.android.dialer.common.ConfigProviderBindings;
 import com.android.dialer.common.LogUtil;
@@ -201,7 +203,19 @@
   }
 
   private static boolean isEnabled(Context context) {
-    return ConfigProviderBindings.get(context).getBoolean("enable_post_call_prod", true);
+    @BuildType.Type int type = BuildType.get();
+    switch (type) {
+      case BuildType.BUGFOOD:
+      case BuildType.DOGFOOD:
+      case BuildType.FISHFOOD:
+      case BuildType.TEST:
+        return ConfigProviderBindings.get(context).getBoolean("enable_post_call", true);
+      case BuildType.RELEASE:
+        return ConfigProviderBindings.get(context).getBoolean("enable_post_call_prod", true);
+      default:
+        Assert.fail();
+        return false;
+    }
   }
 
   private static boolean isSimReady(Context context) {
diff --git a/java/com/android/dialer/protos/ProtoParsers.java b/java/com/android/dialer/protos/ProtoParsers.java
index 5a60799..b77c069 100644
--- a/java/com/android/dialer/protos/ProtoParsers.java
+++ b/java/com/android/dialer/protos/ProtoParsers.java
@@ -18,10 +18,13 @@
 
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
+import android.os.Parcel;
+import android.os.Parcelable;
 import com.android.dialer.common.Assert;
+import com.google.protobuf.CodedOutputStream;
 import com.google.protobuf.InvalidProtocolBufferException;
 import com.google.protobuf.MessageLite;
+import java.io.IOException;
 
 /** Useful methods for using Protocol Buffers with Android. */
 public final class ProtoParsers {
@@ -32,8 +35,11 @@
   @SuppressWarnings("unchecked") // We want to eventually optimize away parser classes, so cast
   public static <T extends MessageLite> T get(Bundle bundle, String key, T defaultInstance)
       throws InvalidProtocolBufferException {
-    byte[] bytes = bundle.getByteArray(key);
-    return (T) mergeFrom(bytes, defaultInstance.getDefaultInstanceForType());
+    // Class loaders are unique to each Class instance, so we need to specify how to decode
+    // the information again, even though we set the class loaders when serializing the data.
+    bundle.setClassLoader(ProtoParsers.class.getClassLoader());
+    InternalDontUse parcelable = bundle.getParcelable(key);
+    return (T) parcelable.getMessageUnsafe(defaultInstance.getDefaultInstanceForType());
   }
 
   /**
@@ -45,7 +51,7 @@
     try {
       return get(bundle, key, defaultInstance);
     } catch (InvalidProtocolBufferException e) {
-      throw Assert.createIllegalStateFailException(e.toString());
+      throw new RuntimeException(e);
     }
   }
 
@@ -62,28 +68,121 @@
    * Stores a proto in a Bundle, for later retrieval by {@link #get(Bundle, String, MessageLite)} or
    * {@link #getFromInstanceState(Bundle, String, MessageLite)}.
    */
-  public static void put(
-      @NonNull Bundle bundle, @NonNull String key, @NonNull MessageLite message) {
-    Assert.checkState(message != null);
-    bundle.putByteArray(key, message.toByteArray());
+  public static void put(Bundle bundle, String key, MessageLite message) {
+    bundle.putParcelable(key, new InternalDontUse<>(null, message));
   }
 
   /**
    * Stores a proto in an Intent, for later retrieval by {@link #get(Bundle, String, MessageLite)}.
    * Needs separate method because Intent has similar to but different API than Bundle.
    */
-  public static void put(@NonNull Intent intent, @NonNull String key, MessageLite message) {
-    Assert.checkState(message != null);
-    intent.putExtra(key, message.toByteArray());
+  public static void put(Intent intent, String key, MessageLite message) {
+    intent.putExtra(key, new InternalDontUse<>(null, message));
+  }
+
+  /** Returns a {@linkplain Parcelable} representation of this protobuf message. */
+  public static <T extends MessageLite> ParcelableProto<T> asParcelable(T message) {
+    return new InternalDontUse<>(null, message);
+  }
+
+  /**
+   * A protobuf message that can be stored in a {@link Parcel}.
+   *
+   * <p><b>Note:</b> This <code>Parcelable</code> can only be used in single app. Attempting to send
+   * it to another app through an <code>Intent</code> will result in an exception due to Proguard
+   * obfusation when the target application attempts to load the <code>ParcelableProto</code> class.
+   */
+  public interface ParcelableProto<T extends MessageLite> extends Parcelable {
+    /**
+     * @throws IllegalStateException if the parceled data does not correspond to the defaultInstance
+     *     type.
+     */
+    T getMessage(T defaultInstance);
+  }
+
+  /** Public because of Parcelable requirements. Do not use. */
+  public static final class InternalDontUse<T extends MessageLite> implements ParcelableProto<T> {
+    /* One of these two fields is always populated - since the bytes field never escapes this
+     * object, there is no risk of concurrent modification by multiple threads, and volatile
+     * is sufficient to be thread-safe. */
+    private volatile byte[] bytes;
+    private volatile T message;
+
+    /**
+     * Ideally, we would have type safety here. However, a static field {@link Creator} is required
+     * by {@link Parcelable}. Static fields are inherently not type safe, since only 1 exists per
+     * class (rather than 1 per type).
+     */
+    public static final Parcelable.Creator<InternalDontUse<?>> CREATOR =
+        new Creator<InternalDontUse<?>>() {
+          @Override
+          public InternalDontUse<?> createFromParcel(Parcel parcel) {
+            int serializedSize = parcel.readInt();
+            byte[] array = new byte[serializedSize];
+            parcel.readByteArray(array);
+            return new InternalDontUse<>(array, null);
+          }
+
+          @Override
+          public InternalDontUse<?>[] newArray(int i) {
+            return new InternalDontUse[i];
+          }
+        };
+
+    private InternalDontUse(byte[] bytes, T message) {
+      Assert.checkArgument(bytes != null || message != null, "Must have a message or bytes");
+      this.bytes = bytes;
+      this.message = message;
+    }
+
+    @Override
+    public int describeContents() {
+      return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel parcel, int i) {
+      if (bytes == null) {
+        final byte[] flatArray = new byte[message.getSerializedSize()];
+        try {
+          message.writeTo(CodedOutputStream.newInstance(flatArray));
+          bytes = flatArray;
+        } catch (IOException impossible) {
+          throw new AssertionError(impossible);
+        }
+      }
+      parcel.writeInt(bytes.length);
+      parcel.writeByteArray(bytes);
+    }
+
+    @Override
+    public T getMessage(T defaultInstance) {
+      try {
+        // The proto should never be invalid if it came from our application, so if it is, throw.
+        return getMessageUnsafe(defaultInstance);
+      } catch (InvalidProtocolBufferException e) {
+        throw new IllegalStateException(e);
+      }
+    }
+
+    @SuppressWarnings("unchecked") // We're being deserialized, so there's no real type safety
+    T getMessageUnsafe(T defaultInstance) throws InvalidProtocolBufferException {
+      // There's a risk that we'll double-parse the bytes, but that's OK, because it'll end up
+      // as the same immutable object anyway.
+      if (message == null) {
+        message = (T) defaultInstance.toBuilder().mergeFrom(bytes).build();
+      }
+      return message;
+    }
   }
 
   /** Parses a proto, throwing parser errors as runtime exceptions. */
   @SuppressWarnings("unchecked") // We want to eventually optimize away parser classes
-  private static <T extends MessageLite> T mergeFrom(byte[] bytes, T defaultInstance) {
+  public static <T extends MessageLite> T mergeFrom(byte[] bytes, T defaultInstance) {
     try {
       return (T) defaultInstance.toBuilder().mergeFrom(bytes).build();
     } catch (InvalidProtocolBufferException e) {
-      throw Assert.createIllegalStateFailException(e.toString());
+      throw new RuntimeException(e);
     }
   }
 }
diff --git a/java/com/android/dialer/searchfragment/AndroidManifest.xml b/java/com/android/dialer/searchfragment/AndroidManifest.xml
deleted file mode 100644
index 88ce67c..0000000
--- a/java/com/android/dialer/searchfragment/AndroidManifest.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<manifest  package="com.android.dialer.searchfragment"/>
\ No newline at end of file
diff --git a/java/com/android/dialer/searchfragment/NewSearchFragment.java b/java/com/android/dialer/searchfragment/NewSearchFragment.java
deleted file mode 100644
index e7283d0..0000000
--- a/java/com/android/dialer/searchfragment/NewSearchFragment.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialer.searchfragment;
-
-import android.app.Fragment;
-import android.app.LoaderManager.LoaderCallbacks;
-import android.content.Loader;
-import android.database.Cursor;
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-/** Fragment used for searching contacts. */
-public final class NewSearchFragment extends Fragment implements LoaderCallbacks<Cursor> {
-
-  private RecyclerView recyclerView;
-  private SearchAdapter adapter;
-  private String query;
-
-  @Nullable
-  @Override
-  public View onCreateView(
-      LayoutInflater inflater, @Nullable ViewGroup parent, @Nullable Bundle bundle) {
-    getLoaderManager().initLoader(0, null, this);
-    View view = inflater.inflate(R.layout.fragment_search, parent, false);
-    recyclerView = view.findViewById(R.id.recycler_view);
-    recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
-
-    getLoaderManager().initLoader(0, null, this);
-    return view;
-  }
-
-  @Override
-  public Loader<Cursor> onCreateLoader(int id, Bundle bundle) {
-    // TODO add more loaders
-    return new SearchContactsCursorLoader(getContext());
-  }
-
-  @Override
-  public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
-    if (adapter == null) {
-      adapter = new SearchAdapter(getContext());
-    }
-    if (loader instanceof SearchContactsCursorLoader) {
-      adapter.setContactsCursor(new SearchContactCursor(cursor, query));
-    }
-    recyclerView.setAdapter(adapter);
-  }
-
-  @Override
-  public void onLoaderReset(Loader<Cursor> loader) {
-    if (adapter != null) {
-      adapter.clear();
-      adapter = null;
-    }
-    recyclerView.setAdapter(null);
-  }
-
-  public void setQuery(String query) {
-    this.query = query;
-    if (adapter != null) {
-      adapter.setQuery(query);
-    }
-  }
-}
diff --git a/java/com/android/dialer/searchfragment/QueryUtil.java b/java/com/android/dialer/searchfragment/QueryUtil.java
deleted file mode 100644
index a3f44ab..0000000
--- a/java/com/android/dialer/searchfragment/QueryUtil.java
+++ /dev/null
@@ -1,269 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialer.searchfragment;
-
-import android.graphics.Typeface;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.telephony.PhoneNumberUtils;
-import android.text.SpannableString;
-import android.text.Spanned;
-import android.text.TextUtils;
-import android.text.style.StyleSpan;
-import java.util.regex.Pattern;
-
-/** Contains utility methods for comparing and filtering strings with search queries. */
-final class QueryUtil {
-
-  /** Matches strings with "-", "(", ")", 2-9 of at least length one. */
-  static final Pattern T9_PATTERN = Pattern.compile("[\\-()2-9]+");
-
-  /**
-   * Compares a name and query and returns a {@link CharSequence} with bolded characters.
-   *
-   * <p>Some example:
-   *
-   * <ul>
-   *   <li>"query" would bold "John [query] Smith"
-   *   <li>"222" would bold "[AAA] Mom"
-   *   <li>"222" would bold "[A]llen [A]lex [A]aron"
-   * </ul>
-   *
-   * @param query containing any characters
-   * @param name of a contact/string that query will compare to
-   * @return name with query bolded if query can be found in the name.
-   */
-  static CharSequence getNameWithQueryBolded(@Nullable String query, @NonNull String name) {
-    if (TextUtils.isEmpty(query)) {
-      return name;
-    }
-
-    int index = -1;
-    int numberOfBoldedCharacters = 0;
-
-    if (nameMatchesT9Query(query, name)) {
-      // Bold the characters that match the t9 query
-      index = indexOfQueryNonDigitsIgnored(query, getT9Representation(name));
-      if (index == -1) {
-        return getNameWithInitialsBolded(query, name);
-      }
-      numberOfBoldedCharacters = query.length();
-
-      for (int i = 0; i < query.length(); i++) {
-        char c = query.charAt(i);
-        if (!Character.isDigit(c)) {
-          numberOfBoldedCharacters--;
-        }
-      }
-
-      for (int i = 0; i < index + numberOfBoldedCharacters; i++) {
-        if (!Character.isLetterOrDigit(name.charAt(i))) {
-          if (i < index) {
-            index++;
-          } else {
-            numberOfBoldedCharacters++;
-          }
-        }
-      }
-    }
-
-    if (index == -1) {
-      // Bold the query as an exact match in the name
-      index = name.toLowerCase().indexOf(query);
-      numberOfBoldedCharacters = query.length();
-    }
-
-    return index == -1 ? name : getBoldedString(name, index, numberOfBoldedCharacters);
-  }
-
-  private static CharSequence getNameWithInitialsBolded(String query, String name) {
-    SpannableString boldedInitials = new SpannableString(name);
-    name = name.toLowerCase();
-    int initialsBolded = 0;
-    int nameIndex = -1;
-
-    while (++nameIndex < name.length() && initialsBolded < query.length()) {
-      if ((nameIndex == 0 || name.charAt(nameIndex - 1) == ' ')
-          && getDigit(name.charAt(nameIndex)) == query.charAt(initialsBolded)) {
-        boldedInitials.setSpan(
-            new StyleSpan(Typeface.BOLD),
-            nameIndex,
-            nameIndex + 1,
-            Spanned.SPAN_INCLUSIVE_INCLUSIVE);
-        initialsBolded++;
-      }
-    }
-    return boldedInitials;
-  }
-
-  /**
-   * Compares a number and a query and returns a {@link CharSequence} with bolded characters.
-   *
-   * <ul>
-   *   <li>"123" would bold "(650)34[1-23]24"
-   *   <li>"123" would bold "+1([123])111-2222
-   * </ul>
-   *
-   * @param query containing only numbers and phone number related characters "(", ")", "-", "+"
-   * @param number phone number of a contact that the query will compare to.
-   * @return number with query bolded if query can be found in the number.
-   */
-  static CharSequence getNumberWithQueryBolded(@Nullable String query, @NonNull String number) {
-    if (TextUtils.isEmpty(query) || !numberMatchesNumberQuery(query, number)) {
-      return number;
-    }
-
-    int index = indexOfQueryNonDigitsIgnored(query, number);
-    int boldedCharacters = query.length();
-
-    for (char c : query.toCharArray()) {
-      if (!Character.isDigit(c)) {
-        boldedCharacters--;
-      }
-    }
-
-    for (int i = 0; i < index + boldedCharacters; i++) {
-      if (!Character.isDigit(number.charAt(i))) {
-        if (i <= index) {
-          index++;
-        } else {
-          boldedCharacters++;
-        }
-      }
-    }
-    return getBoldedString(number, index, boldedCharacters);
-  }
-
-  private static SpannableString getBoldedString(String s, int index, int numBolded) {
-    SpannableString span = new SpannableString(s);
-    span.setSpan(
-        new StyleSpan(Typeface.BOLD), index, index + numBolded, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
-    return span;
-  }
-
-  /**
-   * @return true if the query is of T9 format and the name's T9 representation belongs to the
-   *     query; false otherwise.
-   */
-  static boolean nameMatchesT9Query(String query, String name) {
-    if (!T9_PATTERN.matcher(query).matches()) {
-      return false;
-    }
-
-    // Substring
-    if (indexOfQueryNonDigitsIgnored(query, getT9Representation(name)) != -1) {
-      return true;
-    }
-
-    // Check matches initials
-    // TODO investigate faster implementation
-    query = digitsOnly(query);
-    int queryIndex = 0;
-
-    String[] names = name.toLowerCase().split("\\s");
-    for (int i = 0; i < names.length && queryIndex < query.length(); i++) {
-      if (TextUtils.isEmpty(names[i])) {
-        continue;
-      }
-
-      if (getDigit(names[i].charAt(0)) == query.charAt(queryIndex)) {
-        queryIndex++;
-      }
-    }
-
-    return queryIndex == query.length();
-  }
-
-  /** @return true if the number belongs to the query. */
-  static boolean numberMatchesNumberQuery(String query, String number) {
-    return PhoneNumberUtils.isGlobalPhoneNumber(query)
-        && indexOfQueryNonDigitsIgnored(query, number) != -1;
-  }
-
-  /**
-   * Checks if query is contained in number while ignoring all characters in both that are not
-   * digits (i.e. {@link Character#isDigit(char)} returns false).
-   *
-   * @return index where query is found with all non-digits removed, -1 if it's not found.
-   */
-  private static int indexOfQueryNonDigitsIgnored(@NonNull String query, @NonNull String number) {
-    return digitsOnly(number).indexOf(digitsOnly(query));
-  }
-
-  // Returns string with letters replaced with their T9 representation.
-  private static String getT9Representation(String s) {
-    StringBuilder builder = new StringBuilder(s.length());
-    for (char c : s.toLowerCase().toCharArray()) {
-      builder.append(getDigit(c));
-    }
-    return builder.toString();
-  }
-
-  /** @return String s with only digits recognized by Character#isDigit() remaining */
-  static String digitsOnly(String s) {
-    StringBuilder sb = new StringBuilder();
-    for (int i = 0; i < s.length(); i++) {
-      char c = s.charAt(i);
-      if (Character.isDigit(c)) {
-        sb.append(c);
-      }
-    }
-    return sb.toString();
-  }
-
-  // Returns the T9 representation of a lower case character, otherwise returns the character.
-  private static char getDigit(char c) {
-    switch (c) {
-      case 'a':
-      case 'b':
-      case 'c':
-        return '2';
-      case 'd':
-      case 'e':
-      case 'f':
-        return '3';
-      case 'g':
-      case 'h':
-      case 'i':
-        return '4';
-      case 'j':
-      case 'k':
-      case 'l':
-        return '5';
-      case 'm':
-      case 'n':
-      case 'o':
-        return '6';
-      case 'p':
-      case 'q':
-      case 'r':
-      case 's':
-        return '7';
-      case 't':
-      case 'u':
-      case 'v':
-        return '8';
-      case 'w':
-      case 'x':
-      case 'y':
-      case 'z':
-        return '9';
-      default:
-        return c;
-    }
-  }
-}
diff --git a/java/com/android/dialer/searchfragment/README.md b/java/com/android/dialer/searchfragment/README.md
deleted file mode 100644
index b3b9135..0000000
--- a/java/com/android/dialer/searchfragment/README.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# Dialer Search Ui
-
-searchfragment/ contains all code relevant to loading, rendering and filtering
-search results in both dialpad search and regular search.
-
-## Loading
-
-### On Device Contacts
-
-On device contacts loading happens in SearchContactsCursorLoader. It is used in
-conjunction with NewSearchFragment and Loader Callbacks to return a cursor from
-cp2 containing all of the relevant info needed to rendering.
-
-### Business Search
-
-// TODO(calderwoodra)
-
-### Google Directory Search
-
-// TODO(calderwoodra)
-
-## Rendering
-
-NewSearchFragment, SearchAdapter, SearchContactViewHolder and
-SearchCursorManager are used to render contact information. The fragment's
-recyclerview, adapter and viewholder work as expected like a normal recyclerview
-paradigm.
-
-The are three things to note about rendering:
-
-*   There are three data sources rendered: On device contacts, business search
-    results and google directory results.
-*   SearchContactsCursorLoader returns its cursor from cp2 and we filter/wrap it
-    with SearchContactCursor to render useful results (see below).
-*   SearchCursorManager is used to coalesce all three data sources to help with
-    determining row count, row type and returning the correct data source for
-    each position.
-
-## Filtering
-
-On device contacts are filtered using SearchContactCursor. We wrap the cursor
-returned from SearchContactsCursorLoader in NewSearchFragment#onLoadFinished in
-order to abstract away the filtering logic from the recyclerview adapter and
-viewholders.
-
-SearchContactCursor applies filtering in SearchContactCursor#filter to remove
-duplicate phone numbers returned from cp2 and phone numbers that do not match
-the given search query.
-
-Filtering methods used are:
-
-*   T9/dialpad search methods
-    *   Initial match (957 matches [W]illiam [J]ohn [S]mith)
-    *   Number + name match (1800946 matches [1800-Win]-A-Prize)
-*   Numeric/dialpad search methods
-    *   Simple number match (510333 matches [510-333]-7596)
-    *   Country-code agnostic matching for E164 normalized numbers (9177 matches
-        +65[9177]6930)
-    *   Country-code agnostic matching (510333 matches 1-[510-333]-7596)
-    *   Area-code agnostic matching (333 matches 510-[333]-7596)
-*   Name/keyboard search methods:
-    *   Simple name match (564 matches [Joh]n)
diff --git a/java/com/android/dialer/searchfragment/SearchAdapter.java b/java/com/android/dialer/searchfragment/SearchAdapter.java
deleted file mode 100644
index 8f52415..0000000
--- a/java/com/android/dialer/searchfragment/SearchAdapter.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialer.searchfragment;
-
-import android.content.Context;
-import android.database.Cursor;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.RecyclerView.ViewHolder;
-import android.view.LayoutInflater;
-import android.view.ViewGroup;
-import com.android.dialer.common.Assert;
-import com.android.dialer.searchfragment.SearchCursorManager.RowType;
-
-/** RecyclerView adapter for {@link NewSearchFragment}. */
-class SearchAdapter extends RecyclerView.Adapter<ViewHolder> {
-
-  private final SearchCursorManager searchCursorManager;
-  private final Context context;
-
-  private String query;
-
-  SearchAdapter(Context context) {
-    searchCursorManager = new SearchCursorManager();
-    this.context = context;
-  }
-
-  // TODO: fill in the rest of the view holders.
-  @Override
-  public ViewHolder onCreateViewHolder(ViewGroup root, int position) {
-    @RowType int rowType = searchCursorManager.getRowType(position);
-    switch (rowType) {
-      case RowType.CONTACT_ROW:
-        return new SearchContactViewHolder(
-            LayoutInflater.from(context).inflate(R.layout.search_contact_row, root, false));
-      case RowType.DIRECTORY_HEADER:
-      case RowType.DIRECTORY_ROW:
-      case RowType.INVALID:
-      case RowType.NEARBY_PLACES_HEADER:
-      case RowType.NEARBY_PLACES_ROW:
-        return null;
-      default:
-        throw Assert.createIllegalStateFailException("Invalid RowType: " + rowType);
-    }
-  }
-
-  @Override
-  public void onBindViewHolder(ViewHolder holder, int position) {
-    Cursor cursor = searchCursorManager.getCursor(position);
-    ((SearchContactViewHolder) holder).bind(cursor, query);
-  }
-
-  void setContactsCursor(Cursor cursor) {
-    searchCursorManager.setContactsCursor(cursor);
-  }
-
-  void clear() {
-    searchCursorManager.clear();
-  }
-
-  @Override
-  public int getItemCount() {
-    return searchCursorManager.getCount();
-  }
-
-  public void setQuery(String query) {
-    this.query = query;
-    searchCursorManager.setQuery(query);
-    notifyDataSetChanged();
-  }
-}
diff --git a/java/com/android/dialer/searchfragment/SearchContactCursor.java b/java/com/android/dialer/searchfragment/SearchContactCursor.java
deleted file mode 100644
index 5006e1a..0000000
--- a/java/com/android/dialer/searchfragment/SearchContactCursor.java
+++ /dev/null
@@ -1,390 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialer.searchfragment;
-
-import android.content.ContentResolver;
-import android.database.CharArrayBuffer;
-import android.database.ContentObserver;
-import android.database.Cursor;
-import android.database.DataSetObserver;
-import android.net.Uri;
-import android.os.Bundle;
-import android.support.annotation.IntDef;
-import android.support.annotation.Nullable;
-import android.text.TextUtils;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Wrapper for a cursor returned by {@link SearchContactsCursorLoader}.
- *
- * <p>This cursor removes duplicate phone numbers associated with the same contact and can filter
- * contacts based on a query by calling {@link #filter(String)}.
- */
-final class SearchContactCursor implements Cursor {
-
-  private final Cursor cursor;
-  // List of cursor ids that are valid for displaying after filtering.
-  private final List<Integer> queryFilteredPositions = new ArrayList<>();
-
-  private int currentPosition = 0;
-
-  @Retention(RetentionPolicy.SOURCE)
-  @IntDef({
-    Qualification.NUMBERS_ARE_NOT_DUPLICATES,
-    Qualification.NEW_NUMBER_IS_MORE_QUALIFIED,
-    Qualification.CURRENT_MORE_QUALIFIED
-  })
-  private @interface Qualification {
-    /** Numbers are not duplicates (i.e. neither is more qualified than the other). */
-    int NUMBERS_ARE_NOT_DUPLICATES = 0;
-    /** Number are duplicates and new number is more qualified than the existing number. */
-    int NEW_NUMBER_IS_MORE_QUALIFIED = 1;
-    /** Numbers are duplicates but current/existing number is more qualified than new number. */
-    int CURRENT_MORE_QUALIFIED = 2;
-  }
-
-  /**
-   * @param cursor with projection {@link SearchContactsCursorLoader#PHONE_PROJECTION}.
-   * @param query to filter cursor results.
-   */
-  SearchContactCursor(Cursor cursor, @Nullable String query) {
-    // TODO investigate copying this into a MatrixCursor and holding in memory
-    this.cursor = cursor;
-    filter(query);
-  }
-
-  /**
-   * Filters out contacts that do not match the query.
-   *
-   * <p>The query can have at least 1 of 3 forms:
-   *
-   * <ul>
-   *   <li>A phone number
-   *   <li>A T9 representation of a name (matches {@link QueryUtil#T9_PATTERN}).
-   *   <li>A name
-   * </ul>
-   *
-   * <p>A contact is considered a match if:
-   *
-   * <ul>
-   *   <li>Its phone number contains the phone number query
-   *   <li>Its name represented in T9 contains the T9 query
-   *   <li>Its name contains the query
-   * </ul>
-   */
-  void filter(@Nullable String query) {
-    if (query == null) {
-      query = "";
-    }
-    queryFilteredPositions.clear();
-
-    // On some devices, contacts have multiple rows with identical phone numbers. These numbers are
-    // considered duplicates. Since the order might not be guaranteed, we compare all of the numbers
-    // and hold onto the most qualified one as the one we want to display to the user.
-    // See #getQualification for details on how qualification is determined.
-    int previousMostQualifiedPosition = 0;
-    String previousName = "";
-    String previousMostQualifiedNumber = "";
-
-    query = query.toLowerCase();
-    cursor.moveToPosition(-1);
-
-    while (cursor.moveToNext()) {
-      int position = cursor.getPosition();
-      String currentNumber = cursor.getString(SearchContactsCursorLoader.PHONE_NUMBER);
-      String currentName = cursor.getString(SearchContactsCursorLoader.PHONE_DISPLAY_NAME);
-
-      if (!previousName.equals(currentName)) {
-        previousName = currentName;
-        previousMostQualifiedNumber = currentNumber;
-        previousMostQualifiedPosition = position;
-      } else {
-        // Since the contact name is the same, check if this number is a duplicate
-        switch (getQualification(currentNumber, previousMostQualifiedNumber)) {
-          case Qualification.CURRENT_MORE_QUALIFIED:
-            // Number is a less qualified duplicate, ignore it.
-            continue;
-          case Qualification.NEW_NUMBER_IS_MORE_QUALIFIED:
-            // If number wasn't filtered out before, remove it and add it's more qualified version.
-            if (queryFilteredPositions.contains(previousMostQualifiedPosition)) {
-              queryFilteredPositions.remove(previousMostQualifiedPosition);
-              queryFilteredPositions.add(position);
-            }
-            previousMostQualifiedNumber = currentNumber;
-            previousMostQualifiedPosition = position;
-            continue;
-          case Qualification.NUMBERS_ARE_NOT_DUPLICATES:
-          default:
-            previousMostQualifiedNumber = currentNumber;
-            previousMostQualifiedPosition = position;
-        }
-      }
-
-      if (TextUtils.isEmpty(query)
-          || QueryUtil.nameMatchesT9Query(query, previousName)
-          || QueryUtil.numberMatchesNumberQuery(query, previousMostQualifiedNumber)
-          || previousName.contains(query)) {
-        queryFilteredPositions.add(previousMostQualifiedPosition);
-      }
-    }
-    currentPosition = 0;
-    cursor.moveToFirst();
-  }
-
-  /**
-   * @param number that may or may not be more qualified than the existing most qualified number
-   * @param mostQualifiedNumber currently most qualified number associated with same contact
-   * @return {@link Qualification} where the more qualified number is the number with the most
-   *     digits. If the digits are the same, the number with the most formatting is more qualified.
-   */
-  private @Qualification int getQualification(String number, String mostQualifiedNumber) {
-    // Ignore formatting
-    String numberDigits = QueryUtil.digitsOnly(number);
-    String qualifiedNumberDigits = QueryUtil.digitsOnly(mostQualifiedNumber);
-
-    // If the numbers are identical, return version with more formatting
-    if (qualifiedNumberDigits.equals(numberDigits)) {
-      if (mostQualifiedNumber.length() >= number.length()) {
-        return Qualification.CURRENT_MORE_QUALIFIED;
-      } else {
-        return Qualification.NEW_NUMBER_IS_MORE_QUALIFIED;
-      }
-    }
-
-    // If one number is a suffix of another, then return the longer one.
-    // If they are equal, then return the current most qualified number.
-    if (qualifiedNumberDigits.endsWith(numberDigits)) {
-      return Qualification.CURRENT_MORE_QUALIFIED;
-    }
-    if (numberDigits.endsWith(qualifiedNumberDigits)) {
-      return Qualification.NEW_NUMBER_IS_MORE_QUALIFIED;
-    }
-    return Qualification.NUMBERS_ARE_NOT_DUPLICATES;
-  }
-
-  @Override
-  public boolean moveToPosition(int position) {
-    currentPosition = position;
-    return currentPosition < getCount()
-        && cursor.moveToPosition(queryFilteredPositions.get(currentPosition));
-  }
-
-  @Override
-  public boolean move(int offset) {
-    currentPosition += offset;
-    return moveToPosition(currentPosition);
-  }
-
-  @Override
-  public int getCount() {
-    return queryFilteredPositions.size();
-  }
-
-  @Override
-  public boolean isFirst() {
-    return currentPosition == 0;
-  }
-
-  @Override
-  public boolean isLast() {
-    return currentPosition == getCount() - 1;
-  }
-
-  @Override
-  public int getPosition() {
-    return currentPosition;
-  }
-
-  @Override
-  public boolean moveToFirst() {
-    return moveToPosition(0);
-  }
-
-  @Override
-  public boolean moveToLast() {
-    return moveToPosition(getCount() - 1);
-  }
-
-  @Override
-  public boolean moveToNext() {
-    return moveToPosition(++currentPosition);
-  }
-
-  @Override
-  public boolean moveToPrevious() {
-    return moveToPosition(--currentPosition);
-  }
-
-  // Methods below simply call the corresponding method in cursor.
-  @Override
-  public boolean isBeforeFirst() {
-    return cursor.isBeforeFirst();
-  }
-
-  @Override
-  public boolean isAfterLast() {
-    return cursor.isAfterLast();
-  }
-
-  @Override
-  public int getColumnIndex(String columnName) {
-    return cursor.getColumnIndex(columnName);
-  }
-
-  @Override
-  public int getColumnIndexOrThrow(String columnName) {
-    return cursor.getColumnIndexOrThrow(columnName);
-  }
-
-  @Override
-  public String getColumnName(int columnIndex) {
-    return cursor.getColumnName(columnIndex);
-  }
-
-  @Override
-  public String[] getColumnNames() {
-    return cursor.getColumnNames();
-  }
-
-  @Override
-  public int getColumnCount() {
-    return cursor.getColumnCount();
-  }
-
-  @Override
-  public byte[] getBlob(int columnIndex) {
-    return cursor.getBlob(columnIndex);
-  }
-
-  @Override
-  public String getString(int columnIndex) {
-    return cursor.getString(columnIndex);
-  }
-
-  @Override
-  public void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer) {
-    cursor.copyStringToBuffer(columnIndex, buffer);
-  }
-
-  @Override
-  public short getShort(int columnIndex) {
-    return cursor.getShort(columnIndex);
-  }
-
-  @Override
-  public int getInt(int columnIndex) {
-    return cursor.getInt(columnIndex);
-  }
-
-  @Override
-  public long getLong(int columnIndex) {
-    return cursor.getLong(columnIndex);
-  }
-
-  @Override
-  public float getFloat(int columnIndex) {
-    return cursor.getFloat(columnIndex);
-  }
-
-  @Override
-  public double getDouble(int columnIndex) {
-    return cursor.getDouble(columnIndex);
-  }
-
-  @Override
-  public int getType(int columnIndex) {
-    return cursor.getType(columnIndex);
-  }
-
-  @Override
-  public boolean isNull(int columnIndex) {
-    return cursor.isNull(columnIndex);
-  }
-
-  @Override
-  public void deactivate() {
-    cursor.deactivate();
-  }
-
-  @Override
-  public boolean requery() {
-    return cursor.requery();
-  }
-
-  @Override
-  public void close() {
-    cursor.close();
-  }
-
-  @Override
-  public boolean isClosed() {
-    return cursor.isClosed();
-  }
-
-  @Override
-  public void registerContentObserver(ContentObserver observer) {
-    cursor.registerContentObserver(observer);
-  }
-
-  @Override
-  public void unregisterContentObserver(ContentObserver observer) {
-    cursor.unregisterContentObserver(observer);
-  }
-
-  @Override
-  public void registerDataSetObserver(DataSetObserver observer) {
-    cursor.registerDataSetObserver(observer);
-  }
-
-  @Override
-  public void unregisterDataSetObserver(DataSetObserver observer) {
-    cursor.unregisterDataSetObserver(observer);
-  }
-
-  @Override
-  public void setNotificationUri(ContentResolver cr, Uri uri) {
-    cursor.setNotificationUri(cr, uri);
-  }
-
-  @Override
-  public Uri getNotificationUri() {
-    return cursor.getNotificationUri();
-  }
-
-  @Override
-  public boolean getWantsAllOnMoveCalls() {
-    return cursor.getWantsAllOnMoveCalls();
-  }
-
-  @Override
-  public void setExtras(Bundle extras) {
-    cursor.setExtras(extras);
-  }
-
-  @Override
-  public Bundle getExtras() {
-    return cursor.getExtras();
-  }
-
-  @Override
-  public Bundle respond(Bundle extras) {
-    return cursor.respond(extras);
-  }
-}
diff --git a/java/com/android/dialer/searchfragment/SearchContactViewHolder.java b/java/com/android/dialer/searchfragment/SearchContactViewHolder.java
deleted file mode 100644
index 4ac6af3..0000000
--- a/java/com/android/dialer/searchfragment/SearchContactViewHolder.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialer.searchfragment;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.database.Cursor;
-import android.net.Uri;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.provider.ContactsContract.Contacts;
-import android.support.annotation.IntDef;
-import android.support.v7.widget.RecyclerView.ViewHolder;
-import android.text.TextUtils;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.ImageView;
-import android.widget.QuickContactBadge;
-import android.widget.TextView;
-import com.android.contacts.common.ContactPhotoManager;
-import com.android.contacts.common.lettertiles.LetterTileDrawable;
-import com.android.dialer.callintent.CallInitiationType.Type;
-import com.android.dialer.callintent.CallIntentBuilder;
-import com.android.dialer.common.Assert;
-import com.android.dialer.telecom.TelecomUtil;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/** ViewHolder for a contact row in {@link NewSearchFragment}. */
-final class SearchContactViewHolder extends ViewHolder implements OnClickListener {
-
-  /** IntDef for the different types of actions that can be shown. */
-  @Retention(RetentionPolicy.SOURCE)
-  @IntDef({
-    SearchContactViewHolder.CallToAction.NONE,
-    SearchContactViewHolder.CallToAction.VIDEO_CALL,
-    SearchContactViewHolder.CallToAction.SHARE_AND_CALL
-  })
-  @interface CallToAction {
-    int NONE = 0;
-    int VIDEO_CALL = 1;
-    int SHARE_AND_CALL = 2;
-  }
-
-  private final QuickContactBadge photo;
-  private final TextView nameOrNumberView;
-  private final TextView numberView;
-  private final ImageView callToActionView;
-  private final Context context;
-
-  private String number;
-  private @CallToAction int currentAction;
-
-  SearchContactViewHolder(View view) {
-    super(view);
-    view.setOnClickListener(this);
-    photo = view.findViewById(R.id.photo);
-    nameOrNumberView = view.findViewById(R.id.primary);
-    numberView = view.findViewById(R.id.secondary);
-    callToActionView = view.findViewById(R.id.call_to_action);
-    context = view.getContext();
-  }
-
-  /**
-   * Binds the ViewHolder with a cursor from {@link SearchContactsCursorLoader} with the data found
-   * at the cursors set position.
-   */
-  void bind(Cursor cursor, String query) {
-    number = cursor.getString(SearchContactsCursorLoader.PHONE_NUMBER);
-    String name = cursor.getString(SearchContactsCursorLoader.PHONE_DISPLAY_NAME);
-    String label = getLabel(context.getResources(), cursor);
-    String secondaryInfo =
-        TextUtils.isEmpty(label)
-            ? number
-            : context.getString(R.string.call_subject_type_and_number, label, number);
-
-    nameOrNumberView.setText(QueryUtil.getNameWithQueryBolded(query, name));
-    numberView.setText(QueryUtil.getNumberWithQueryBolded(query, secondaryInfo));
-    setCallToAction(cursor);
-
-    if (shouldShowPhoto(cursor, name)) {
-      nameOrNumberView.setVisibility(View.VISIBLE);
-      photo.setVisibility(View.VISIBLE);
-      photo.setContentDescription(context.getString(R.string.description_quick_contact_for, name));
-      String photoUri = cursor.getString(SearchContactsCursorLoader.PHONE_PHOTO_URI);
-      ContactPhotoManager.getInstance(context)
-          .loadDialerThumbnailOrPhoto(
-              photo,
-              getContactUri(cursor),
-              cursor.getLong(SearchContactsCursorLoader.PHONE_PHOTO_ID),
-              photoUri == null ? null : Uri.parse(photoUri),
-              name,
-              LetterTileDrawable.TYPE_DEFAULT);
-    } else {
-      nameOrNumberView.setVisibility(View.GONE);
-      photo.setVisibility(View.INVISIBLE);
-    }
-  }
-
-  private boolean shouldShowPhoto(Cursor cursor, String currentName) {
-    int currentPosition = cursor.getPosition();
-    if (currentPosition == 0) {
-      return true;
-    } else {
-      cursor.moveToPosition(currentPosition - 1);
-      String previousName = cursor.getString(SearchContactsCursorLoader.PHONE_DISPLAY_NAME);
-      cursor.moveToPosition(currentPosition);
-      return !currentName.equals(previousName);
-    }
-  }
-
-  private static Uri getContactUri(Cursor cursor) {
-    long contactId = cursor.getLong(SearchContactsCursorLoader.PHONE_ID);
-    String lookupKey = cursor.getString(SearchContactsCursorLoader.PHONE_LOOKUP_KEY);
-    return Contacts.getLookupUri(contactId, lookupKey);
-  }
-
-  // TODO: handle CNAP and cequint types.
-  // TODO: unify this into a utility method with CallLogAdapter#getNumberType
-  private static String getLabel(Resources resources, Cursor cursor) {
-    int numberType = cursor.getInt(SearchContactsCursorLoader.PHONE_TYPE);
-    String numberLabel = cursor.getString(SearchContactsCursorLoader.PHONE_LABEL);
-
-    // Returns empty label instead of "custom" if the custom label is empty.
-    if (numberType == Phone.TYPE_CUSTOM && TextUtils.isEmpty(numberLabel)) {
-      return "";
-    }
-    return (String) Phone.getTypeLabel(resources, numberType, numberLabel);
-  }
-
-  private void setCallToAction(Cursor cursor) {
-    currentAction = getCallToAction(cursor);
-    switch (currentAction) {
-      case CallToAction.NONE:
-        callToActionView.setVisibility(View.GONE);
-        callToActionView.setOnClickListener(null);
-        break;
-      case CallToAction.SHARE_AND_CALL:
-        callToActionView.setVisibility(View.VISIBLE);
-        callToActionView.setImageDrawable(context.getDrawable(R.drawable.ic_phone_attach));
-        callToActionView.setOnClickListener(this);
-        break;
-      case CallToAction.VIDEO_CALL:
-        callToActionView.setVisibility(View.VISIBLE);
-        callToActionView.setImageDrawable(
-            context.getDrawable(R.drawable.quantum_ic_videocam_white_24));
-        callToActionView.setOnClickListener(this);
-        break;
-      default:
-        throw Assert.createIllegalStateFailException(
-            "Invalid Call to action type: " + currentAction);
-    }
-  }
-
-  private static @CallToAction int getCallToAction(Cursor cursor) {
-    int carrierPresence = cursor.getInt(SearchContactsCursorLoader.PHONE_CARRIER_PRESENCE);
-    if ((carrierPresence & Phone.CARRIER_PRESENCE_VT_CAPABLE) == 1) {
-      return CallToAction.VIDEO_CALL;
-    }
-
-    // TODO: enriched calling
-    return CallToAction.NONE;
-  }
-
-  @Override
-  public void onClick(View view) {
-    if (view == callToActionView) {
-      switch (currentAction) {
-        case CallToAction.SHARE_AND_CALL:
-          callToActionView.setVisibility(View.VISIBLE);
-          callToActionView.setImageDrawable(context.getDrawable(R.drawable.ic_phone_attach));
-          // TODO: open call composer.
-          break;
-        case CallToAction.VIDEO_CALL:
-          callToActionView.setVisibility(View.VISIBLE);
-          callToActionView.setImageDrawable(
-              context.getDrawable(R.drawable.quantum_ic_videocam_white_24));
-          // TODO: place a video call
-          break;
-        case CallToAction.NONE:
-        default:
-          throw Assert.createIllegalStateFailException(
-              "Invalid Call to action type: " + currentAction);
-      }
-    } else {
-      // TODO: set the correct call initiation type.
-      TelecomUtil.placeCall(context, new CallIntentBuilder(number, Type.REGULAR_SEARCH).build());
-    }
-  }
-}
diff --git a/java/com/android/dialer/searchfragment/SearchContactsCursorLoader.java b/java/com/android/dialer/searchfragment/SearchContactsCursorLoader.java
deleted file mode 100644
index 309dfff..0000000
--- a/java/com/android/dialer/searchfragment/SearchContactsCursorLoader.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dialer.searchfragment;
-
-import android.content.Context;
-import android.content.CursorLoader;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
-
-/** Cursor Loader for {@link NewSearchFragment}. */
-final class SearchContactsCursorLoader extends CursorLoader {
-
-  public static final int PHONE_ID = 0;
-  public static final int PHONE_TYPE = 1;
-  public static final int PHONE_LABEL = 2;
-  public static final int PHONE_NUMBER = 3;
-  public static final int PHONE_DISPLAY_NAME = 4;
-  public static final int PHONE_PHOTO_ID = 5;
-  public static final int PHONE_PHOTO_URI = 6;
-  public static final int PHONE_LOOKUP_KEY = 7;
-  public static final int PHONE_CARRIER_PRESENCE = 8;
-
-  @SuppressWarnings("unused")
-  public static final int PHONE_SOFT_KEY = 9;
-
-  static final String[] PHONE_PROJECTION =
-      new String[] {
-        Phone._ID, // 0
-        Phone.TYPE, // 1
-        Phone.LABEL, // 2
-        Phone.NUMBER, // 3
-        Phone.DISPLAY_NAME_PRIMARY, // 4
-        Phone.PHOTO_ID, // 5
-        Phone.PHOTO_THUMBNAIL_URI, // 6
-        Phone.LOOKUP_KEY, // 7
-        Phone.CARRIER_PRESENCE, // 8
-        Phone.SORT_KEY_PRIMARY // 9
-      };
-
-  SearchContactsCursorLoader(Context context) {
-    super(
-        context, Phone.CONTENT_URI, PHONE_PROJECTION, null, null, Phone.SORT_KEY_PRIMARY + " ASC");
-  }
-}
diff --git a/java/com/android/dialer/searchfragment/SearchCursorManager.java b/java/com/android/dialer/searchfragment/SearchCursorManager.java
deleted file mode 100644
index 64c4fc1..0000000
--- a/java/com/android/dialer/searchfragment/SearchCursorManager.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialer.searchfragment;
-
-import android.database.Cursor;
-import android.support.annotation.IntDef;
-import com.android.dialer.common.Assert;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * Manages all of the cursors needed for {@link SearchAdapter}.
- *
- * <p>This class accepts three cursors:
- *
- * <ul>
- *   <li>A contacts cursor {@link #setContactsCursor(Cursor)}
- *   <li>A google search results cursor {@link #setNearbyPlacesCursor(Cursor)}
- *   <li>A work directory cursor {@link #setCorpDirectoryCursor(Cursor)}
- * </ul>
- *
- * <p>The key purpose of this class is to compose three aforementioned cursors together to function
- * as one cursor. The key methods needed to utilize this class as a cursor are:
- *
- * <ul>
- *   <li>{@link #getCursor(int)}
- *   <li>{@link #getCount()}
- *   <li>{@link #getRowType(int)}
- * </ul>
- */
-final class SearchCursorManager {
-
-  /** IntDef for the different types of rows that can be shown when searching. */
-  @Retention(RetentionPolicy.SOURCE)
-  @IntDef({
-    SearchCursorManager.RowType.INVALID,
-    SearchCursorManager.RowType.CONTACT_ROW,
-    SearchCursorManager.RowType.NEARBY_PLACES_HEADER,
-    SearchCursorManager.RowType.NEARBY_PLACES_ROW,
-    SearchCursorManager.RowType.DIRECTORY_HEADER,
-    SearchCursorManager.RowType.DIRECTORY_ROW
-  })
-  @interface RowType {
-    int INVALID = 0;
-    /** A row containing contact information for contacts stored locally on device. */
-    int CONTACT_ROW = 1;
-    /** Header to mark the end of contact rows and start of nearby places rows. */
-    int NEARBY_PLACES_HEADER = 2;
-    /** A row containing nearby places information/search results. */
-    int NEARBY_PLACES_ROW = 3;
-    /** Header to mark the end of the previous row set and start of directory rows. */
-    int DIRECTORY_HEADER = 4;
-    /** A row containing contact information for contacts stored externally in corp directories. */
-    int DIRECTORY_ROW = 5;
-  }
-
-  private Cursor contactsCursor = null;
-  private Cursor nearbyPlacesCursor = null;
-  private Cursor corpDirectoryCursor = null;
-
-  void setContactsCursor(Cursor cursor) {
-    if (cursor != null && cursor.getCount() > 0) {
-      contactsCursor = cursor;
-    } else {
-      contactsCursor = null;
-    }
-  }
-
-  void setNearbyPlacesCursor(Cursor cursor) {
-    if (cursor != null && cursor.getCount() > 0) {
-      nearbyPlacesCursor = cursor;
-    } else {
-      nearbyPlacesCursor = null;
-    }
-  }
-
-  void setCorpDirectoryCursor(Cursor cursor) {
-    if (cursor != null && cursor.getCount() > 0) {
-      corpDirectoryCursor = cursor;
-    } else {
-      corpDirectoryCursor = null;
-    }
-  }
-
-  void setQuery(String query) {
-    if (contactsCursor != null) {
-      ((SearchContactCursor) contactsCursor).filter(query);
-    }
-  }
-
-  /** @return the sum of counts of all cursors, including headers. */
-  int getCount() {
-    int count = 0;
-    if (contactsCursor != null) {
-      count += contactsCursor.getCount();
-    }
-
-    if (nearbyPlacesCursor != null) {
-      count++; // header
-      count += nearbyPlacesCursor.getCount();
-    }
-
-    if (corpDirectoryCursor != null) {
-      count++; // header
-      count += corpDirectoryCursor.getCount();
-    }
-
-    return count;
-  }
-
-  @RowType
-  int getRowType(int position) {
-    if (contactsCursor != null) {
-      position -= contactsCursor.getCount();
-
-      if (position < 0) {
-        return SearchCursorManager.RowType.CONTACT_ROW;
-      }
-    }
-
-    if (nearbyPlacesCursor != null) {
-      if (position == 0) {
-        return SearchCursorManager.RowType.NEARBY_PLACES_HEADER;
-      } else {
-        position--; // header
-      }
-
-      position -= nearbyPlacesCursor.getCount();
-
-      if (position < 0) {
-        return SearchCursorManager.RowType.NEARBY_PLACES_ROW;
-      }
-    }
-
-    if (corpDirectoryCursor != null) {
-      if (position == 0) {
-        return SearchCursorManager.RowType.DIRECTORY_HEADER;
-      } else {
-        position--; // header
-      }
-
-      position -= corpDirectoryCursor.getCount();
-
-      if (position < 0) {
-        return SearchCursorManager.RowType.DIRECTORY_ROW;
-      }
-    }
-
-    throw Assert.createIllegalStateFailException("No valid row type.");
-  }
-
-  /**
-   * Gets cursor corresponding to position in coelesced list of search cursors. Callers should
-   * ensure that {@link #getRowType(int)} doesn't correspond to header position, otherwise an
-   * exception will be thrown.
-   *
-   * @param position in coalecsed list of search cursors
-   * @return Cursor moved to position specific to passed in position.
-   */
-  Cursor getCursor(int position) {
-    if (contactsCursor != null) {
-      int count = contactsCursor.getCount();
-
-      if (position - count < 0) {
-        contactsCursor.moveToPosition(position);
-        return contactsCursor;
-      }
-      position -= count;
-    }
-
-    if (nearbyPlacesCursor != null) {
-      Assert.checkArgument(position != 0, "No valid cursor, position is nearby places header.");
-      position--; // header
-      int count = nearbyPlacesCursor.getCount();
-
-      if (position - count < 0) {
-        nearbyPlacesCursor.moveToPosition(position);
-        return nearbyPlacesCursor;
-      }
-      position -= count;
-    }
-
-    if (corpDirectoryCursor != null) {
-      Assert.checkArgument(position != 0, "No valid cursor, position is directory search header.");
-      position--; // header
-      int count = corpDirectoryCursor.getCount();
-
-      if (position - count < 0) {
-        corpDirectoryCursor.moveToPosition(position);
-        return corpDirectoryCursor;
-      }
-      position -= count;
-    }
-
-    throw Assert.createIllegalStateFailException("No valid cursor.");
-  }
-
-  /** removes all cursors. */
-  void clear() {
-    if (contactsCursor != null) {
-      contactsCursor.close();
-      contactsCursor = null;
-    }
-
-    if (nearbyPlacesCursor != null) {
-      nearbyPlacesCursor.close();
-      nearbyPlacesCursor = null;
-    }
-
-    if (corpDirectoryCursor != null) {
-      corpDirectoryCursor.close();
-      corpDirectoryCursor = null;
-    }
-  }
-}
diff --git a/java/com/android/dialer/searchfragment/res/layout/fragment_search.xml b/java/com/android/dialer/searchfragment/res/layout/fragment_search.xml
deleted file mode 100644
index 06f2348..0000000
--- a/java/com/android/dialer/searchfragment/res/layout/fragment_search.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<android.support.v7.widget.RecyclerView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/recycler_view"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"/>
diff --git a/java/com/android/dialer/searchfragment/res/layout/search_contact_row.xml b/java/com/android/dialer/searchfragment/res/layout/search_contact_row.xml
deleted file mode 100644
index efeca0e..0000000
--- a/java/com/android/dialer/searchfragment/res/layout/search_contact_row.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<RelativeLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="horizontal"
-    android:layout_width="match_parent"
-    android:layout_height="@dimen/search_row_height"
-    android:paddingStart="16dp"
-    android:paddingEnd="16dp"
-    android:background="?android:attr/selectableItemBackground">
-
-  <QuickContactBadge
-      android:id="@+id/photo"
-      android:layout_width="@dimen/search_row_height"
-      android:layout_height="@dimen/search_row_height"
-      android:padding="@dimen/search_photo_padding"
-      android:clickable="false"/>
-
-  <LinearLayout
-      android:orientation="vertical"
-      android:layout_width="wrap_content"
-      android:layout_height="wrap_content"
-      android:layout_toEndOf="@+id/photo"
-      android:layout_toStartOf="@+id/call_to_action"
-      android:layout_centerVertical="true">
-
-    <TextView
-        android:id="@+id/primary"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:paddingStart="@dimen/search_text_padding_start"
-        android:gravity="center_vertical|start"
-        android:textSize="@dimen/new_search_text_size"
-        android:textColor="@color/dialer_primary_text_color"
-        android:maxLines="1"
-        android:ellipsize="end"
-        android:fontFamily="sans-serif"/>
-
-    <TextView
-        android:id="@+id/secondary"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:paddingStart="@dimen/search_text_padding_start"
-        android:gravity="center_vertical|start"
-        android:textSize="@dimen/new_search_text_size"
-        android:textColor="@color/dialer_primary_text_color"
-        android:maxLines="1"
-        android:ellipsize="end"
-        android:fontFamily="sans-serif"/>
-  </LinearLayout>
-
-  <ImageView
-      android:id="@+id/call_to_action"
-      android:layout_width="@dimen/search_row_height"
-      android:layout_height="@dimen/search_row_height"
-      android:layout_alignParentEnd="true"
-      android:padding="@dimen/call_to_action_padding"
-      android:tint="@color/secondary_text_color"
-      android:visibility="gone"
-      android:scaleType="center"/>
-</RelativeLayout>
\ No newline at end of file
diff --git a/java/com/android/dialer/searchfragment/res/values/dimens.xml b/java/com/android/dialer/searchfragment/res/values/dimens.xml
deleted file mode 100644
index d5459dd..0000000
--- a/java/com/android/dialer/searchfragment/res/values/dimens.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <dimen name="search_row_height">56dp</dimen>
-  <dimen name="search_photo_padding">8dp</dimen>
-  <dimen name="call_to_action_padding">8dp</dimen>
-  <dimen name="search_text_padding_start">16dp</dimen>
-  <dimen name="new_search_text_size">16sp</dimen>
-</resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/shortcuts/AndroidManifest.xml b/java/com/android/dialer/shortcuts/AndroidManifest.xml
index 15f7794..7132051 100644
--- a/java/com/android/dialer/shortcuts/AndroidManifest.xml
+++ b/java/com/android/dialer/shortcuts/AndroidManifest.xml
@@ -20,7 +20,7 @@
     android:minSdkVersion="23"
     android:targetSdkVersion="26"/>
 
-  <application android:theme="@style/Theme.AppCompat">
+  <application>
 
     <service
       android:exported="false"
diff --git a/java/com/android/dialer/telecom/TelecomUtil.java b/java/com/android/dialer/telecom/TelecomUtil.java
index 82b4383..87ddda5 100644
--- a/java/com/android/dialer/telecom/TelecomUtil.java
+++ b/java/com/android/dialer/telecom/TelecomUtil.java
@@ -38,17 +38,12 @@
  * perform the required check and return the fallback default if the permission is missing,
  * otherwise return the value from TelecomManager.
  */
-public abstract class TelecomUtil {
+public class TelecomUtil {
 
   private static final String TAG = "TelecomUtil";
   private static boolean sWarningLogged = false;
-
-  private static TelecomUtilImpl instance = new TelecomUtilImpl();
-
-  @VisibleForTesting(otherwise = VisibleForTesting.NONE)
-  public static void setInstanceForTesting(TelecomUtilImpl instanceForTesting) {
-    instance = instanceForTesting;
-  }
+  private static Boolean isDefaultDialerForTesting;
+  private static Boolean hasPermissionForTesting;
 
   public static void showInCallScreen(Context context, boolean showDialpad) {
     if (hasReadPhoneStatePermission(context)) {
@@ -130,7 +125,10 @@
   }
 
   public static boolean isInCall(Context context) {
-    return instance.isInCall(context);
+    if (hasReadPhoneStatePermission(context)) {
+      return getTelecomManager(context).isInCall();
+    }
+    return false;
   }
 
   public static boolean isVoicemailNumber(
@@ -191,47 +189,43 @@
   }
 
   private static boolean hasPermission(Context context, String permission) {
-    return instance.hasPermission(context, permission);
+    if (hasPermissionForTesting != null) {
+      return hasPermissionForTesting;
+    }
+    return ContextCompat.checkSelfPermission(context, permission)
+        == PackageManager.PERMISSION_GRANTED;
+  }
+
+  public static boolean isDefaultDialer(Context context) {
+    if (isDefaultDialerForTesting != null) {
+      return isDefaultDialerForTesting;
+    }
+    final boolean result =
+        TextUtils.equals(
+            context.getPackageName(), getTelecomManager(context).getDefaultDialerPackage());
+    if (result) {
+      sWarningLogged = false;
+    } else {
+      if (!sWarningLogged) {
+        // Log only once to prevent spam.
+        LogUtil.w(TAG, "Dialer is not currently set to be default dialer");
+        sWarningLogged = true;
+      }
+    }
+    return result;
   }
 
   private static TelecomManager getTelecomManager(Context context) {
     return (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
   }
 
-  public static boolean isDefaultDialer(Context context) {
-    return instance.isDefaultDialer(context);
+  @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+  public static void setIsDefaultDialerForTesting(Boolean defaultDialer) {
+    isDefaultDialerForTesting = defaultDialer;
   }
 
-  /** Contains an implementation for {@link TelecomUtil} methods */
-  @VisibleForTesting()
-  public static class TelecomUtilImpl {
-
-    public boolean isInCall(Context context) {
-      if (hasReadPhoneStatePermission(context)) {
-        return getTelecomManager(context).isInCall();
-      }
-      return false;
-    }
-
-    public boolean hasPermission(Context context, String permission) {
-      return ContextCompat.checkSelfPermission(context, permission)
-          == PackageManager.PERMISSION_GRANTED;
-    }
-
-    public boolean isDefaultDialer(Context context) {
-      final boolean result =
-          TextUtils.equals(
-              context.getPackageName(), getTelecomManager(context).getDefaultDialerPackage());
-      if (result) {
-        sWarningLogged = false;
-      } else {
-        if (!sWarningLogged) {
-          // Log only once to prevent spam.
-          LogUtil.w(TAG, "Dialer is not currently set to be default dialer");
-          sWarningLogged = true;
-        }
-      }
-      return result;
-    }
+  @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+  public static void setHasPermissionForTesting(Boolean hasPermission) {
+    hasPermissionForTesting = hasPermission;
   }
 }
diff --git a/java/com/android/dialer/theme/res/values-af/strings.xml b/java/com/android/dialer/theme/res/values-af/strings.xml
index 17e6cea..f263a81 100644
--- a/java/com/android/dialer/theme/res/values-af/strings.xml
+++ b/java/com/android/dialer/theme/res/values-af/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefoonhokkie"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Foon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Kameratoestemming is geaktiveer"</string>
-    <string name="video_call" msgid="8914878391104612532">"Video-oproep"</string>
     <string name="call" msgid="3699617769606114168">"Bel"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-am/strings.xml b/java/com/android/dialer/theme/res/values-am/strings.xml
index 5b0b2fd..4f36244 100644
--- a/java/com/android/dialer/theme/res/values-am/strings.xml
+++ b/java/com/android/dialer/theme/res/values-am/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"የሕዝብ ስልክ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ስልክ"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"የካሜራ ፈቃድ ነቅቷል"</string>
-    <string name="video_call" msgid="8914878391104612532">"የቪዲዮ ጥሪ"</string>
     <string name="call" msgid="3699617769606114168">"ደውል"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ar/strings.xml b/java/com/android/dialer/theme/res/values-ar/strings.xml
index ea3468e..951bde2 100644
--- a/java/com/android/dialer/theme/res/values-ar/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ar/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"هاتف يعمل بالعملة"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"الهاتف"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"تم تمكين إذن الكاميرا"</string>
-    <string name="video_call" msgid="8914878391104612532">"مكالمة فيديو"</string>
     <string name="call" msgid="3699617769606114168">"اتصال"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-az/strings.xml b/java/com/android/dialer/theme/res/values-az/strings.xml
index 91ead1b..08eaf33 100644
--- a/java/com/android/dialer/theme/res/values-az/strings.xml
+++ b/java/com/android/dialer/theme/res/values-az/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Taksofon"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Kamera icazəsi aktiv edildi"</string>
-    <string name="video_call" msgid="8914878391104612532">"Video zəng"</string>
     <string name="call" msgid="3699617769606114168">"Zəng edin"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml
index a1e5965..01cdb47 100644
--- a/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefonska govornica"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Omogućena je dozvola za kameru"</string>
-    <string name="video_call" msgid="8914878391104612532">"Uputi video poziv"</string>
     <string name="call" msgid="3699617769606114168">"Pozovi"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-be/strings.xml b/java/com/android/dialer/theme/res/values-be/strings.xml
index 881aa7f..49be019 100644
--- a/java/com/android/dialer/theme/res/values-be/strings.xml
+++ b/java/com/android/dialer/theme/res/values-be/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Таксафон"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Тэлефон"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Уключаны дазвол на выкарыстанне камеры"</string>
-    <string name="video_call" msgid="8914878391104612532">"Відэавыклік"</string>
     <string name="call" msgid="3699617769606114168">"Выклікаць"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-bg/strings.xml b/java/com/android/dialer/theme/res/values-bg/strings.xml
index debc238..87af9f0 100644
--- a/java/com/android/dialer/theme/res/values-bg/strings.xml
+++ b/java/com/android/dialer/theme/res/values-bg/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Обществен телефон"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Активирано бе разрешението за камерата"</string>
-    <string name="video_call" msgid="8914878391104612532">"Видеообаждане"</string>
     <string name="call" msgid="3699617769606114168">"Обаждане"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-bn/strings.xml b/java/com/android/dialer/theme/res/values-bn/strings.xml
index 806ee8e..ab1c65b 100644
--- a/java/com/android/dialer/theme/res/values-bn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-bn/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"পে ফোন"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ফোন"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"ক্যামেরার অনুমতি সক্ষম করা হয়েছে"</string>
-    <string name="video_call" msgid="8914878391104612532">"ভিডিও কল"</string>
     <string name="call" msgid="3699617769606114168">"কল করুন"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-bs/strings.xml b/java/com/android/dialer/theme/res/values-bs/strings.xml
index bed71a2..01cdb47 100644
--- a/java/com/android/dialer/theme/res/values-bs/strings.xml
+++ b/java/com/android/dialer/theme/res/values-bs/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefonska govornica"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Dozvola za kameru je omogućena"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videopoziv"</string>
     <string name="call" msgid="3699617769606114168">"Pozovi"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ca/strings.xml b/java/com/android/dialer/theme/res/values-ca/strings.xml
index 5140ca5..1e21a1f 100644
--- a/java/com/android/dialer/theme/res/values-ca/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ca/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telèfon públic"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telèfon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"S\'ha activat el permís d\'accés a la càmera"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videotrucada"</string>
     <string name="call" msgid="3699617769606114168">"Truca"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-cs/strings.xml b/java/com/android/dialer/theme/res/values-cs/strings.xml
index a951fe7..ca7bad9 100644
--- a/java/com/android/dialer/theme/res/values-cs/strings.xml
+++ b/java/com/android/dialer/theme/res/values-cs/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefonní automat"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Byl povolen přístup k fotoaparátu"</string>
-    <string name="video_call" msgid="8914878391104612532">"Zahájit videohovor"</string>
     <string name="call" msgid="3699617769606114168">"Volat"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-da/strings.xml b/java/com/android/dialer/theme/res/values-da/strings.xml
index 54f1850..c606b28 100644
--- a/java/com/android/dialer/theme/res/values-da/strings.xml
+++ b/java/com/android/dialer/theme/res/values-da/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Mønttelefon"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Opkald"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Kameratilladelse er aktiveret"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videoopkald"</string>
     <string name="call" msgid="3699617769606114168">"Ring op"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-de/strings.xml b/java/com/android/dialer/theme/res/values-de/strings.xml
index 0c97581..d214287 100644
--- a/java/com/android/dialer/theme/res/values-de/strings.xml
+++ b/java/com/android/dialer/theme/res/values-de/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Münztelefon"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Berechtigung für Kamera aktiviert"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videoanruf"</string>
     <string name="call" msgid="3699617769606114168">"Anrufen"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-el/strings.xml b/java/com/android/dialer/theme/res/values-el/strings.xml
index 1c34a69..abe1d3f 100644
--- a/java/com/android/dialer/theme/res/values-el/strings.xml
+++ b/java/com/android/dialer/theme/res/values-el/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Τηλέφωνο με χρέωση"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Τηλέφωνο"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Το δικαίωμα χρήσης της κάμερας έχει ενεργοποιηθεί"</string>
-    <string name="video_call" msgid="8914878391104612532">"Βιντεοκλήση"</string>
     <string name="call" msgid="3699617769606114168">"Κλήση"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-en-rAU/strings.xml b/java/com/android/dialer/theme/res/values-en-rAU/strings.xml
index 136d7df..b086b4c 100644
--- a/java/com/android/dialer/theme/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/theme/res/values-en-rAU/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Payphone"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Phone"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Camera permission enabled"</string>
-    <string name="video_call" msgid="8914878391104612532">"Video call"</string>
     <string name="call" msgid="3699617769606114168">"Call"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-en-rGB/strings.xml b/java/com/android/dialer/theme/res/values-en-rGB/strings.xml
index 136d7df..b086b4c 100644
--- a/java/com/android/dialer/theme/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/theme/res/values-en-rGB/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Payphone"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Phone"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Camera permission enabled"</string>
-    <string name="video_call" msgid="8914878391104612532">"Video call"</string>
     <string name="call" msgid="3699617769606114168">"Call"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-en-rIN/strings.xml b/java/com/android/dialer/theme/res/values-en-rIN/strings.xml
index 136d7df..b086b4c 100644
--- a/java/com/android/dialer/theme/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/theme/res/values-en-rIN/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Payphone"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Phone"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Camera permission enabled"</string>
-    <string name="video_call" msgid="8914878391104612532">"Video call"</string>
     <string name="call" msgid="3699617769606114168">"Call"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-es-rUS/strings.xml b/java/com/android/dialer/theme/res/values-es-rUS/strings.xml
index 90837b7..aee2d0a 100644
--- a/java/com/android/dialer/theme/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/theme/res/values-es-rUS/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Teléfono público"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Teléfono"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Se activó el permiso de la cámara"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videollamada"</string>
     <string name="call" msgid="3699617769606114168">"Llamar"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-es/strings.xml b/java/com/android/dialer/theme/res/values-es/strings.xml
index c2d3ee3..343ac21 100644
--- a/java/com/android/dialer/theme/res/values-es/strings.xml
+++ b/java/com/android/dialer/theme/res/values-es/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Teléfono público"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Teléfono"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Se ha habilitado el acceso a la cámara"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videollamada"</string>
     <string name="call" msgid="3699617769606114168">"Llamar"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-et/strings.xml b/java/com/android/dialer/theme/res/values-et/strings.xml
index 269fa64..5b1e6c0 100644
--- a/java/com/android/dialer/theme/res/values-et/strings.xml
+++ b/java/com/android/dialer/theme/res/values-et/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefoniautomaat"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Kaameraluba on antud"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videokõne"</string>
     <string name="call" msgid="3699617769606114168">"Helista"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-eu/strings.xml b/java/com/android/dialer/theme/res/values-eu/strings.xml
index 14345f0..dbb4f70 100644
--- a/java/com/android/dialer/theme/res/values-eu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-eu/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefono publikoa"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefonoa"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Kamera atzitzeko baimena eman da"</string>
-    <string name="video_call" msgid="8914878391104612532">"Bideo-deia"</string>
     <string name="call" msgid="3699617769606114168">"Deitu"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-fa/strings.xml b/java/com/android/dialer/theme/res/values-fa/strings.xml
index f751f34..99bed5f 100644
--- a/java/com/android/dialer/theme/res/values-fa/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fa/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="ID">%d</xliff:g> <xliff:g id="UNKNOWN">%s</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"تلفن عمومی"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"تلفن"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"مجوز دوربین فعال شد"</string>
-    <string name="video_call" msgid="8914878391104612532">"تماس ویدیویی"</string>
     <string name="call" msgid="3699617769606114168">"تماس"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-fi/strings.xml b/java/com/android/dialer/theme/res/values-fi/strings.xml
index 0c09d7f..a180be5 100644
--- a/java/com/android/dialer/theme/res/values-fi/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fi/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Maksupuhelin"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Puhelin"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Kameran käyttöoikeus myönnettiin"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videopuhelu"</string>
     <string name="call" msgid="3699617769606114168">"Soita"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml b/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml
index 7d901ca..18a70bb 100644
--- a/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Cabine téléphonique"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Téléphone"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Autorisation d\'accès à l\'appareil photo activée"</string>
-    <string name="video_call" msgid="8914878391104612532">"Appel vidéo"</string>
     <string name="call" msgid="3699617769606114168">"Appeler"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-fr/strings.xml b/java/com/android/dialer/theme/res/values-fr/strings.xml
index 1c30ef1..18a70bb 100644
--- a/java/com/android/dialer/theme/res/values-fr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fr/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Cabine téléphonique"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Téléphone"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Autorisation d\'accès à l\'appareil photo accordée"</string>
-    <string name="video_call" msgid="8914878391104612532">"Appel vidéo"</string>
     <string name="call" msgid="3699617769606114168">"Appeler"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-gl/strings.xml b/java/com/android/dialer/theme/res/values-gl/strings.xml
index 083d395..fbbad6c 100644
--- a/java/com/android/dialer/theme/res/values-gl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-gl/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Teléfono público"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Teléfono"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Activouse o permiso de acceso á cámara"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videochamada"</string>
     <string name="call" msgid="3699617769606114168">"Chamar"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-gu/strings.xml b/java/com/android/dialer/theme/res/values-gu/strings.xml
index 4baba69..9b38dcd 100644
--- a/java/com/android/dialer/theme/res/values-gu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-gu/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"પેફોન"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ફોન"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"કૅમેરાની પરવાનગી સક્ષમ કરી"</string>
-    <string name="video_call" msgid="8914878391104612532">"વિડિઓ કૉલ"</string>
     <string name="call" msgid="3699617769606114168">"કૉલ કરો"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-hi/strings.xml b/java/com/android/dialer/theme/res/values-hi/strings.xml
index 758be5d..ee360b4 100644
--- a/java/com/android/dialer/theme/res/values-hi/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hi/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"पे-फ़ोन"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"फ़ोन"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"कैमरे की अनुमति सक्षम की गई"</string>
-    <string name="video_call" msgid="8914878391104612532">"वीडियो कॉल"</string>
     <string name="call" msgid="3699617769606114168">"कॉल करें"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-hr/strings.xml b/java/com/android/dialer/theme/res/values-hr/strings.xml
index 89a5aee..92e1956 100644
--- a/java/com/android/dialer/theme/res/values-hr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hr/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Javna telefonska govornica"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Omogućen je pristup kameri"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videopoziv"</string>
     <string name="call" msgid="3699617769606114168">"Pozovi"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-hu/strings.xml b/java/com/android/dialer/theme/res/values-hu/strings.xml
index 30051d4..dfcc876 100644
--- a/java/com/android/dialer/theme/res/values-hu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hu/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Nyilvános telefon"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Kameraengedély megadva"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videohívás"</string>
     <string name="call" msgid="3699617769606114168">"Hívás"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-hy/strings.xml b/java/com/android/dialer/theme/res/values-hy/strings.xml
index 6577dab..3b4e862 100644
--- a/java/com/android/dialer/theme/res/values-hy/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hy/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Բջջային տերմինալ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Հեռախոս"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Տեսախցիկից օգտվելու թույլտվությունը տրամադրված է"</string>
-    <string name="video_call" msgid="8914878391104612532">"Տեսազանգ"</string>
     <string name="call" msgid="3699617769606114168">"Զանգել"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-in/strings.xml b/java/com/android/dialer/theme/res/values-in/strings.xml
index d2d72b8..eda15a2 100644
--- a/java/com/android/dialer/theme/res/values-in/strings.xml
+++ b/java/com/android/dialer/theme/res/values-in/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telepon Umum"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telepon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Izin kamera diaktifkan"</string>
-    <string name="video_call" msgid="8914878391104612532">"Video call"</string>
     <string name="call" msgid="3699617769606114168">"Telepon"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-is/strings.xml b/java/com/android/dialer/theme/res/values-is/strings.xml
index ff3faf8..cda7fc8 100644
--- a/java/com/android/dialer/theme/res/values-is/strings.xml
+++ b/java/com/android/dialer/theme/res/values-is/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Símasjálfsali"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Sími"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Myndavélarheimild virk"</string>
-    <string name="video_call" msgid="8914878391104612532">"Hringja myndsímtal"</string>
     <string name="call" msgid="3699617769606114168">"Hringja"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-it/strings.xml b/java/com/android/dialer/theme/res/values-it/strings.xml
index 4b26288..fa2caa6 100644
--- a/java/com/android/dialer/theme/res/values-it/strings.xml
+++ b/java/com/android/dialer/theme/res/values-it/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Cabina telefonica"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefono"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Autorizzazioni della fotocamera attivate"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videochiamata"</string>
     <string name="call" msgid="3699617769606114168">"Chiama"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-iw/strings.xml b/java/com/android/dialer/theme/res/values-iw/strings.xml
index 09abf2e..18d87ea 100644
--- a/java/com/android/dialer/theme/res/values-iw/strings.xml
+++ b/java/com/android/dialer/theme/res/values-iw/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"טלפון ציבורי"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"טלפון"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"הרשאת הגישה למצלמה הופעלה"</string>
-    <string name="video_call" msgid="8914878391104612532">"שיחת וידאו"</string>
     <string name="call" msgid="3699617769606114168">"התקשר"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ja/strings.xml b/java/com/android/dialer/theme/res/values-ja/strings.xml
index 551d679..3921559 100644
--- a/java/com/android/dialer/theme/res/values-ja/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ja/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g>（<xliff:g id="ID">%d</xliff:g>）"</string>
     <string name="payphone" msgid="7106361320283710387">"公衆電話"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"電話"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"カメラへのアクセスを自動で許可しました"</string>
-    <string name="video_call" msgid="8914878391104612532">"ビデオハングアウト"</string>
     <string name="call" msgid="3699617769606114168">"発信"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ka/strings.xml b/java/com/android/dialer/theme/res/values-ka/strings.xml
index ab22595..18e7cb3 100644
--- a/java/com/android/dialer/theme/res/values-ka/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ka/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"გადახდის ტელეფონი"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ტელეფონი"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"კამერაზე წვდომის ნებართვა ჩართულია"</string>
-    <string name="video_call" msgid="8914878391104612532">"ვიდეოზარი"</string>
     <string name="call" msgid="3699617769606114168">"დარეკვა"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-kk/strings.xml b/java/com/android/dialer/theme/res/values-kk/strings.xml
index d3a1b7b..f9c62d3 100644
--- a/java/com/android/dialer/theme/res/values-kk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-kk/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Автомат-телефон"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Камера рұқсаты қосылды"</string>
-    <string name="video_call" msgid="8914878391104612532">"Бейне қоңырау"</string>
     <string name="call" msgid="3699617769606114168">"Қоңырау шалу"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-km/strings.xml b/java/com/android/dialer/theme/res/values-km/strings.xml
index 900f1d6..7e375cf 100644
--- a/java/com/android/dialer/theme/res/values-km/strings.xml
+++ b/java/com/android/dialer/theme/res/values-km/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"ទូរស័ព្ទសាធារណៈ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ទូរស័ព្ទ"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"បានបើក​ការអនុញ្ញាត​កាមេរ៉ា"</string>
-    <string name="video_call" msgid="8914878391104612532">"ការ​ហៅវីដេអូ"</string>
     <string name="call" msgid="3699617769606114168">"ហៅ​ទូរសព្ទ"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-kn/strings.xml b/java/com/android/dialer/theme/res/values-kn/strings.xml
index ab9f816..718fea0 100644
--- a/java/com/android/dialer/theme/res/values-kn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-kn/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"ಪೇಫೋನ್"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ಫೋನ್"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"ಕ್ಯಾಮರಾ ಅನುಮತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
-    <string name="video_call" msgid="8914878391104612532">"ವೀಡಿಯೊ ಕರೆ"</string>
     <string name="call" msgid="3699617769606114168">"ಕರೆಮಾಡಿ"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ko/strings.xml b/java/com/android/dialer/theme/res/values-ko/strings.xml
index b5ac556..29f608c 100644
--- a/java/com/android/dialer/theme/res/values-ko/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ko/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"공중전화"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"휴대전화"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"카메라 권한 사용 가능"</string>
-    <string name="video_call" msgid="8914878391104612532">"화상 통화"</string>
     <string name="call" msgid="3699617769606114168">"전화"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ky/strings.xml b/java/com/android/dialer/theme/res/values-ky/strings.xml
index 0a9bec2..905b8c5 100644
--- a/java/com/android/dialer/theme/res/values-ky/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ky/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Таксофон"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Камеранын уруксаты иштетилди"</string>
-    <string name="video_call" msgid="8914878391104612532">"Видео чалуу"</string>
     <string name="call" msgid="3699617769606114168">"Чалуу"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-lo/strings.xml b/java/com/android/dialer/theme/res/values-lo/strings.xml
index d33d43e..6826a75 100644
--- a/java/com/android/dialer/theme/res/values-lo/strings.xml
+++ b/java/com/android/dialer/theme/res/values-lo/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"ຕູ້​ໂທ​ລະ​ສັບ​ສາ​ທາ​ລະ​ນະ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ໂທລະສັບ"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"ເປີດໃຊ້ສິດອະນຸຍາດກ້ອງຖ່າຍຮູບແລ້ວ"</string>
-    <string name="video_call" msgid="8914878391104612532">"ໂທວິດີໂອ"</string>
     <string name="call" msgid="3699617769606114168">"ໂທ"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-lt/strings.xml b/java/com/android/dialer/theme/res/values-lt/strings.xml
index fdf31e2..43469a1 100644
--- a/java/com/android/dialer/theme/res/values-lt/strings.xml
+++ b/java/com/android/dialer/theme/res/values-lt/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="ID">%d</xliff:g> <xliff:g id="UNKNOWN">%s</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Taksofonas"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefonas"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Fotoaparato leidimas įgalintas"</string>
-    <string name="video_call" msgid="8914878391104612532">"Vaizdo skambutis"</string>
     <string name="call" msgid="3699617769606114168">"Skambinti"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-lv/strings.xml b/java/com/android/dialer/theme/res/values-lv/strings.xml
index 031c5bd..f9a6dec 100644
--- a/java/com/android/dialer/theme/res/values-lv/strings.xml
+++ b/java/com/android/dialer/theme/res/values-lv/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Maksas tālrunis"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Tālrunis"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Kameras atļauja iespējota"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videozvans"</string>
     <string name="call" msgid="3699617769606114168">"Zvanīt"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-mk/strings.xml b/java/com/android/dialer/theme/res/values-mk/strings.xml
index d89d12e..1328edb 100644
--- a/java/com/android/dialer/theme/res/values-mk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-mk/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Говорница"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Дозволата за камера е овозможена"</string>
-    <string name="video_call" msgid="8914878391104612532">"Воспоставете видеоповик"</string>
     <string name="call" msgid="3699617769606114168">"Повикајте"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ml/strings.xml b/java/com/android/dialer/theme/res/values-ml/strings.xml
index f02ceeb..03f9533 100644
--- a/java/com/android/dialer/theme/res/values-ml/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ml/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"പണം നൽകി ഉപയോഗിക്കുന്ന ഫോൺ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ഫോണ്‍"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"ക്യാമറ അനുമതി നൽകി"</string>
-    <string name="video_call" msgid="8914878391104612532">"വീഡിയോ കോള്‍"</string>
     <string name="call" msgid="3699617769606114168">"വിളിക്കുക"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-mn/strings.xml b/java/com/android/dialer/theme/res/values-mn/strings.xml
index 7a07e5d..c47f083 100644
--- a/java/com/android/dialer/theme/res/values-mn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-mn/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Payphone"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Утас"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Камерын зөвшөөрөл идэвхжсэн"</string>
-    <string name="video_call" msgid="8914878391104612532">"Видео дуудлага"</string>
     <string name="call" msgid="3699617769606114168">"Залгах"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-mr/strings.xml b/java/com/android/dialer/theme/res/values-mr/strings.xml
index eeb9afa..41a9c96 100644
--- a/java/com/android/dialer/theme/res/values-mr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-mr/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"सार्वजनिक फोन"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"फोन"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"कॅमेरा परवानगी सक्षम केली"</string>
-    <string name="video_call" msgid="8914878391104612532">"व्हिडिओ कॉल"</string>
     <string name="call" msgid="3699617769606114168">"कॉल करा"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ms/strings.xml b/java/com/android/dialer/theme/res/values-ms/strings.xml
index 2e424fd..b28fe26 100644
--- a/java/com/android/dialer/theme/res/values-ms/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ms/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefon Awam"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Kebenaran kamera didayakan"</string>
-    <string name="video_call" msgid="8914878391104612532">"Panggilan video"</string>
     <string name="call" msgid="3699617769606114168">"Panggil"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-my/strings.xml b/java/com/android/dialer/theme/res/values-my/strings.xml
index 97b871b..eb21b6e 100644
--- a/java/com/android/dialer/theme/res/values-my/strings.xml
+++ b/java/com/android/dialer/theme/res/values-my/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"ငွေပေးရသည့်ဖုန်း"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ဖုန်း"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"ကင်မရာအသုံးပြုခွင့် ဖွင့်ထားပါသည်"</string>
-    <string name="video_call" msgid="8914878391104612532">"ဗီဒီယိုခေါ်ဆိုမှု"</string>
     <string name="call" msgid="3699617769606114168">"ခေါ်ဆိုရန်"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-nb/strings.xml b/java/com/android/dialer/theme/res/values-nb/strings.xml
index 7587b7e..dcd9b17 100644
--- a/java/com/android/dialer/theme/res/values-nb/strings.xml
+++ b/java/com/android/dialer/theme/res/values-nb/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefonkiosk"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Kameratillatelsen er aktivert"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videosamtale"</string>
     <string name="call" msgid="3699617769606114168">"Ring"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ne/strings.xml b/java/com/android/dialer/theme/res/values-ne/strings.xml
index af1ad5e..383ac2c 100644
--- a/java/com/android/dialer/theme/res/values-ne/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ne/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"पेफोन"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"फोन"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"क्यामेरा सम्बन्धी अनुमतिहरूलाई सक्षम पारियो"</string>
-    <string name="video_call" msgid="8914878391104612532">"भिडियो कल"</string>
     <string name="call" msgid="3699617769606114168">"कल गर्नुहोस्"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-nl/strings.xml b/java/com/android/dialer/theme/res/values-nl/strings.xml
index ab51c97..9635708 100644
--- a/java/com/android/dialer/theme/res/values-nl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-nl/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefooncel"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefoon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Camerarechten ingeschakeld"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videogesprek"</string>
     <string name="call" msgid="3699617769606114168">"Bellen"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-no/strings.xml b/java/com/android/dialer/theme/res/values-no/strings.xml
index 7587b7e..dcd9b17 100644
--- a/java/com/android/dialer/theme/res/values-no/strings.xml
+++ b/java/com/android/dialer/theme/res/values-no/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefonkiosk"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Kameratillatelsen er aktivert"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videosamtale"</string>
     <string name="call" msgid="3699617769606114168">"Ring"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-pa/strings.xml b/java/com/android/dialer/theme/res/values-pa/strings.xml
index 8784bca..dc23b7a 100644
--- a/java/com/android/dialer/theme/res/values-pa/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pa/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"ਪੇਫੋਨ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ਫੋਨ"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"ਕੈਮਰਾ ਇਜਾਜ਼ਤ ਨੂੰ ਯੋਗ ਬਣਾਇਆ ਗਿਆ ਹੈ"</string>
-    <string name="video_call" msgid="8914878391104612532">"ਵੀਡੀਓ ਕਾਲ"</string>
     <string name="call" msgid="3699617769606114168">"ਕਾਲ ਕਰੋ"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-pl/strings.xml b/java/com/android/dialer/theme/res/values-pl/strings.xml
index 246261e..1ebaad2 100644
--- a/java/com/android/dialer/theme/res/values-pl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pl/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Automat telefoniczny"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Uprawnienia do korzystania z aparatu zostały włączone"</string>
-    <string name="video_call" msgid="8914878391104612532">"Rozmowa wideo"</string>
     <string name="call" msgid="3699617769606114168">"Zadzwoń"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml b/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml
index c1356d9..6caf87c 100644
--- a/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefone público"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefone"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Permissão de câmera ativada"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videochamada"</string>
     <string name="call" msgid="3699617769606114168">"Ligar"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml b/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml
index 2b46e44..ef7c7d6 100644
--- a/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefone público"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefone"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Autorização da câmara ativada"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videochamada"</string>
     <string name="call" msgid="3699617769606114168">"Telefonar"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-pt/strings.xml b/java/com/android/dialer/theme/res/values-pt/strings.xml
index c1356d9..6caf87c 100644
--- a/java/com/android/dialer/theme/res/values-pt/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pt/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefone público"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefone"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Permissão de câmera ativada"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videochamada"</string>
     <string name="call" msgid="3699617769606114168">"Ligar"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ro/strings.xml b/java/com/android/dialer/theme/res/values-ro/strings.xml
index 8978e92..4d0c09b 100644
--- a/java/com/android/dialer/theme/res/values-ro/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ro/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefon public"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Permisiunea pentru cameră a fost activată."</string>
-    <string name="video_call" msgid="8914878391104612532">"Apel video"</string>
     <string name="call" msgid="3699617769606114168">"Apelați"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ru/strings.xml b/java/com/android/dialer/theme/res/values-ru/strings.xml
index a155052..aeab136 100644
--- a/java/com/android/dialer/theme/res/values-ru/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ru/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Телефон-автомат"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Доступ к камере разрешен"</string>
-    <string name="video_call" msgid="8914878391104612532">"Видеовызов"</string>
     <string name="call" msgid="3699617769606114168">"Позвонить"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-si/strings.xml b/java/com/android/dialer/theme/res/values-si/strings.xml
index 424a112..ba3bb05 100644
--- a/java/com/android/dialer/theme/res/values-si/strings.xml
+++ b/java/com/android/dialer/theme/res/values-si/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"පේෆෝනය"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"දුරකථනය"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"කැමරා අවසර සබල කර ඇත"</string>
-    <string name="video_call" msgid="8914878391104612532">"වීඩියෝ ඇමතුම"</string>
     <string name="call" msgid="3699617769606114168">"ඇමතුම"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-sk/strings.xml b/java/com/android/dialer/theme/res/values-sk/strings.xml
index 411b85e..6863463 100644
--- a/java/com/android/dialer/theme/res/values-sk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sk/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefónny automat"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefón"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Povolenie pre fotoaparát je aktivované"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videohovor"</string>
     <string name="call" msgid="3699617769606114168">"Volať"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-sl/strings.xml b/java/com/android/dialer/theme/res/values-sl/strings.xml
index 85a3e2b..1b1776a 100644
--- a/java/com/android/dialer/theme/res/values-sl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sl/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefonska govorilnica"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Dovoljenje za dostop do fotoaparata je omogočeno"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videoklic"</string>
     <string name="call" msgid="3699617769606114168">"Pokliči"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-sq/strings.xml b/java/com/android/dialer/theme/res/values-sq/strings.xml
index 5cbd587..0d7084a 100644
--- a/java/com/android/dialer/theme/res/values-sq/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sq/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefon me pagesë"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefoni"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Leja e kamerës është aktivizuar"</string>
-    <string name="video_call" msgid="8914878391104612532">"Telefonatë me video"</string>
     <string name="call" msgid="3699617769606114168">"Telefono"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-sr/strings.xml b/java/com/android/dialer/theme/res/values-sr/strings.xml
index 310da73..a744e95 100644
--- a/java/com/android/dialer/theme/res/values-sr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sr/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Телефонска говорница"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Омогућена је дозвола за камеру"</string>
-    <string name="video_call" msgid="8914878391104612532">"Упути видео позив"</string>
     <string name="call" msgid="3699617769606114168">"Позови"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-sv/strings.xml b/java/com/android/dialer/theme/res/values-sv/strings.xml
index af8e5f7..f409807 100644
--- a/java/com/android/dialer/theme/res/values-sv/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sv/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefonautomat"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Kamerabehörighet har aktiverats"</string>
-    <string name="video_call" msgid="8914878391104612532">"Videosamtal"</string>
     <string name="call" msgid="3699617769606114168">"Ring"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-sw/strings.xml b/java/com/android/dialer/theme/res/values-sw/strings.xml
index 31615fe..a2f9888 100644
--- a/java/com/android/dialer/theme/res/values-sw/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sw/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Simu ya kulipia"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Simu"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Imewasha ruhusa ya kamera"</string>
-    <string name="video_call" msgid="8914878391104612532">"Simu ya video"</string>
     <string name="call" msgid="3699617769606114168">"Piga simu"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ta/strings.xml b/java/com/android/dialer/theme/res/values-ta/strings.xml
index ab15f0b..a4f55f5 100644
--- a/java/com/android/dialer/theme/res/values-ta/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ta/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"கட்டணத் தொலைபேசி"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"மொபைல்"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"கேமராவிற்கான அனுமதி இயக்கப்பட்டது"</string>
-    <string name="video_call" msgid="8914878391104612532">"வீடியோ அழைப்பு"</string>
     <string name="call" msgid="3699617769606114168">"அழை"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-te/strings.xml b/java/com/android/dialer/theme/res/values-te/strings.xml
index 4a6fca1..59f00ca 100644
--- a/java/com/android/dialer/theme/res/values-te/strings.xml
+++ b/java/com/android/dialer/theme/res/values-te/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"పే ఫోన్"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ఫోన్"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"కెమెరా అనుమతిని ప్రారంభించాము"</string>
-    <string name="video_call" msgid="8914878391104612532">"వీడియో కాల్"</string>
     <string name="call" msgid="3699617769606114168">"కాల్ చేయి"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-th/strings.xml b/java/com/android/dialer/theme/res/values-th/strings.xml
index 51db053..3870b4d 100644
--- a/java/com/android/dialer/theme/res/values-th/strings.xml
+++ b/java/com/android/dialer/theme/res/values-th/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"โทรศัพท์สาธารณะ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"โทรศัพท์"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"ให้สิทธิ์เข้าถึงกล้องถ่ายรูปแล้ว"</string>
-    <string name="video_call" msgid="8914878391104612532">"แฮงเอาท์วิดีโอ"</string>
     <string name="call" msgid="3699617769606114168">"โทร"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-tl/strings.xml b/java/com/android/dialer/theme/res/values-tl/strings.xml
index 97f69ec..8169278 100644
--- a/java/com/android/dialer/theme/res/values-tl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-tl/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Payphone"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telepono"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Na-enable ang pahintulot sa camera"</string>
-    <string name="video_call" msgid="8914878391104612532">"Mag-video call"</string>
     <string name="call" msgid="3699617769606114168">"Tawag"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-tr/strings.xml b/java/com/android/dialer/theme/res/values-tr/strings.xml
index b38f067..c11cd13 100644
--- a/java/com/android/dialer/theme/res/values-tr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-tr/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Ankesörlü telefon"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Kamera izni etkinleştirildi"</string>
-    <string name="video_call" msgid="8914878391104612532">"Görüntülü görüşme"</string>
     <string name="call" msgid="3699617769606114168">"Telefon et"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-uk/strings.xml b/java/com/android/dialer/theme/res/values-uk/strings.xml
index f070277..c87fe89 100644
--- a/java/com/android/dialer/theme/res/values-uk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-uk/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Таксофон"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Камері надано дозвіл"</string>
-    <string name="video_call" msgid="8914878391104612532">"Відеодзвінок"</string>
     <string name="call" msgid="3699617769606114168">"Виклик"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ur/strings.xml b/java/com/android/dialer/theme/res/values-ur/strings.xml
index e9a4b44..abc0d6d 100644
--- a/java/com/android/dialer/theme/res/values-ur/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ur/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"پے فون"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"فون"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"کیمرا کی اجازت فعال ہے"</string>
-    <string name="video_call" msgid="8914878391104612532">"ویڈیو کال"</string>
     <string name="call" msgid="3699617769606114168">"کال کریں"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-uz/strings.xml b/java/com/android/dialer/theme/res/values-uz/strings.xml
index 2bbaf20..2889f3f 100644
--- a/java/com/android/dialer/theme/res/values-uz/strings.xml
+++ b/java/com/android/dialer/theme/res/values-uz/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Taksofon"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Kameraga kirishga ruxsat berildi"</string>
-    <string name="video_call" msgid="8914878391104612532">"Video suhbat"</string>
     <string name="call" msgid="3699617769606114168">"Chaqirish"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-vi/strings.xml b/java/com/android/dialer/theme/res/values-vi/strings.xml
index fae3180..b014516 100644
--- a/java/com/android/dialer/theme/res/values-vi/strings.xml
+++ b/java/com/android/dialer/theme/res/values-vi/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Điện thoại công cộng"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Điện thoại"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Đã bật quyền sử dụng máy ảnh"</string>
-    <string name="video_call" msgid="8914878391104612532">"Gọi điện video"</string>
     <string name="call" msgid="3699617769606114168">"Gọi"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml b/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml
index 2e60962..baff752 100644
--- a/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"公用电话"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"电话"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"已启用相机使用权限"</string>
-    <string name="video_call" msgid="8914878391104612532">"视频通话"</string>
     <string name="call" msgid="3699617769606114168">"拨打电话"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml b/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml
index 7b08024..8b26663 100644
--- a/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"公共電話"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"電話"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"已啟用相機權限"</string>
-    <string name="video_call" msgid="8914878391104612532">"視像通話"</string>
     <string name="call" msgid="3699617769606114168">"通話"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml b/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml
index 57d7fe2..24a5c10 100644
--- a/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"公用電話"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"電話"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"已啟用相機權限"</string>
-    <string name="video_call" msgid="8914878391104612532">"視訊通話"</string>
     <string name="call" msgid="3699617769606114168">"撥號"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-zu/strings.xml b/java/com/android/dialer/theme/res/values-zu/strings.xml
index d0dd728..96cd798 100644
--- a/java/com/android/dialer/theme/res/values-zu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zu/strings.xml
@@ -21,7 +21,5 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Ucingo olufakwa imali"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Ifoni"</string>
-    <string name="camera_privacy_text" msgid="1318954032109938588">"Imvume yekhamera inikwe amandla"</string>
-    <string name="video_call" msgid="8914878391104612532">"Ikholi yevidiyo"</string>
     <string name="call" msgid="3699617769606114168">"Shaya"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values/strings.xml b/java/com/android/dialer/theme/res/values/strings.xml
index af61d35..a14693f 100644
--- a/java/com/android/dialer/theme/res/values/strings.xml
+++ b/java/com/android/dialer/theme/res/values/strings.xml
@@ -30,12 +30,6 @@
        used in the Launcher icon. -->
   <string name="launcherActivityLabel">Phone</string>
 
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically -->
-  <string name="camera_privacy_text">Camera permission enabled</string>
-
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <string name="video_call">Video call</string>
-
   <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
   <string name="call">Call</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values/themes.xml b/java/com/android/dialer/theme/res/values/themes.xml
index 1246826..0d0c45f 100644
--- a/java/com/android/dialer/theme/res/values/themes.xml
+++ b/java/com/android/dialer/theme/res/values/themes.xml
@@ -1,19 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
 <resources>
 
   <style name="DialerThemeBase" parent="@style/Theme.AppCompat.Light.DarkActionBar">
@@ -34,20 +19,6 @@
     <item name="actionBarSize">@dimen/action_bar_height</item>
   </style>
 
-  <!-- Should be kept in sync with the theme above (minus anything related to actionbars -->
-  <style name="DialerThemeBase.NoActionBar" parent="@style/Theme.AppCompat.Light.NoActionBar">
-    <item name="android:textColorPrimary">@color/dialer_primary_text_color</item>
-    <item name="android:textColorSecondary">@color/dialer_secondary_text_color</item>
-    <!-- This is used for title bar color in recents -->
-    <item name="android:colorPrimary">@color/titlebar_in_recents_background_color</item>
-    <item name="android:colorPrimaryDark">@color/dialer_theme_color_dark</item>
-    <item name="android:colorControlActivated">@color/dialer_theme_color</item>
-    <item name="android:colorButtonNormal">@color/dialer_theme_color</item>
-    <item name="android:colorAccent">@color/dialtacts_theme_color</item>
-    <item name="android:alertDialogTheme">@style/AlertDialogTheme</item>
-    <item name="android:textAppearanceButton">@style/DialerButtonTextStyle</item>
-  </style>
-
   <style name="Theme.AppCompat.Translucent" parent="Theme.AppCompat.NoActionBar">
     <item name="android:windowNoTitle">true</item>
     <item name="android:windowBackground">@android:color/transparent</item>
@@ -55,18 +26,4 @@
     <item name="android:windowIsTranslucent">true</item>
     <item name="android:windowAnimationStyle">@android:style/Animation</item>
   </style>
-
-  <style name="PrimaryText">
-    <item name="android:textColor">#DE000000</item>
-    <item name="android:textSize">16sp</item>
-    <item name="android:ellipsize">end</item>
-    <item name="android:maxLines">1</item>
-  </style>
-
-  <style name="SecondaryText">
-    <item name="android:textColor">#8A000000</item>
-    <item name="android:textSize">14sp</item>
-    <item name="android:ellipsize">end</item>
-    <item name="android:maxLines">1</item>
-  </style>
 </resources>
diff --git a/java/com/android/dialer/util/CallUtil.java b/java/com/android/dialer/util/CallUtil.java
index b6ab3b3..81a4bb2 100644
--- a/java/com/android/dialer/util/CallUtil.java
+++ b/java/com/android/dialer/util/CallUtil.java
@@ -21,7 +21,6 @@
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
-import com.android.dialer.common.LogUtil;
 import com.android.dialer.compat.CompatUtils;
 import com.android.dialer.phonenumberutil.PhoneNumberHelper;
 import java.util.List;
@@ -41,9 +40,6 @@
    */
   public static final int VIDEO_CALLING_PRESENCE = 2;
 
-  private static boolean hasInitializedIsVideoEnabledState;
-  private static boolean cachedIsVideoEnabledState;
-
   /** Return Uri with an appropriate scheme, accepting both SIP and usual phone call numbers. */
   public static Uri getCallUri(String number) {
     if (PhoneNumberHelper.isUriNumber(number)) {
@@ -106,23 +102,7 @@
    *     false} otherwise.
    */
   public static boolean isVideoEnabled(Context context) {
-    boolean isVideoEnabled = (getVideoCallingAvailability(context) & VIDEO_CALLING_ENABLED) != 0;
-
-    // Log everytime the video enabled state changes.
-    if (!hasInitializedIsVideoEnabledState) {
-      LogUtil.i("CallUtil.isVideoEnabled", "isVideoEnabled: " + isVideoEnabled);
-      hasInitializedIsVideoEnabledState = true;
-      cachedIsVideoEnabledState = isVideoEnabled;
-    } else if (cachedIsVideoEnabledState != isVideoEnabled) {
-      LogUtil.i(
-          "CallUtil.isVideoEnabled",
-          "isVideoEnabled changed from %b to %b",
-          cachedIsVideoEnabledState,
-          isVideoEnabled);
-      cachedIsVideoEnabledState = isVideoEnabled;
-    }
-
-    return true;
+    return (getVideoCallingAvailability(context) & VIDEO_CALLING_ENABLED) != 0;
   }
 
   /**
diff --git a/java/com/android/dialer/util/PermissionsUtil.java b/java/com/android/dialer/util/PermissionsUtil.java
index 72a59ea..466e862 100644
--- a/java/com/android/dialer/util/PermissionsUtil.java
+++ b/java/com/android/dialer/util/PermissionsUtil.java
@@ -72,15 +72,15 @@
     return hasPermission(context, permission.WRITE_VOICEMAIL);
   }
 
+  public static boolean hasAddVoicemailPermissions(Context context) {
+    return hasPermission(context, permission.ADD_VOICEMAIL);
+  }
+
   public static boolean hasPermission(Context context, String permission) {
     return ContextCompat.checkSelfPermission(context, permission)
         == PackageManager.PERMISSION_GRANTED;
   }
 
-  public static boolean hasAddVoicemailPermissions(Context context) {
-    return hasPermission(context, permission.ADD_VOICEMAIL);
-  }
-
   /**
    * Checks {@link android.content.SharedPreferences} if a permission has been requested before.
    *
diff --git a/java/com/android/dialer/widget/DialerToolbar.java b/java/com/android/dialer/widget/DialerToolbar.java
index fe0e861..9e10583 100644
--- a/java/com/android/dialer/widget/DialerToolbar.java
+++ b/java/com/android/dialer/widget/DialerToolbar.java
@@ -41,11 +41,6 @@
     setNavigationIcon(R.drawable.quantum_ic_close_white_24);
     setNavigationContentDescription(R.string.toolbar_close);
     setNavigationOnClickListener(v -> ((Activity) context).finish());
-    setPaddingRelative(
-        getPaddingStart(),
-        getPaddingTop(),
-        getResources().getDimensionPixelSize(R.dimen.toolbar_end_padding),
-        getPaddingBottom());
   }
 
   @Override
diff --git a/java/com/android/dialer/widget/MessageFragment.java b/java/com/android/dialer/widget/MessageFragment.java
index 615ad3b..b136f47 100644
--- a/java/com/android/dialer/widget/MessageFragment.java
+++ b/java/com/android/dialer/widget/MessageFragment.java
@@ -23,7 +23,6 @@
 import android.text.InputFilter;
 import android.text.TextUtils;
 import android.text.TextWatcher;
-import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View.OnClickListener;
@@ -32,13 +31,11 @@
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
-import android.widget.TextView.OnEditorActionListener;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.FragmentUtils;
 
 /** Fragment used to compose call with message fragment. */
-public class MessageFragment extends Fragment
-    implements OnClickListener, TextWatcher, OnEditorActionListener {
+public class MessageFragment extends Fragment implements OnClickListener, TextWatcher {
   private static final String CHAR_LIMIT_KEY = "char_limit";
   private static final String SHOW_SEND_ICON_KEY = "show_send_icon";
   private static final String MESSAGE_LIST_KEY = "message_list";
@@ -72,7 +69,7 @@
       LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
     View view = inflater.inflate(R.layout.fragment_message, container, false);
 
-    sendMessage = view.findViewById(R.id.send_message);
+    sendMessage = (ImageView) view.findViewById(R.id.send_message);
     sendMessageContainer = view.findViewById(R.id.count_and_send_container);
     if (getArguments().getBoolean(SHOW_SEND_ICON_KEY, false)) {
       sendMessage.setVisibility(View.VISIBLE);
@@ -80,19 +77,18 @@
       sendMessageContainer.setOnClickListener(this);
     }
 
-    customMessage = view.findViewById(R.id.custom_message);
+    customMessage = (EditText) view.findViewById(R.id.custom_message);
     customMessage.addTextChangedListener(this);
-    customMessage.setOnEditorActionListener(this);
     charLimit = getArguments().getInt(CHAR_LIMIT_KEY, NO_CHAR_LIMIT);
     if (charLimit != NO_CHAR_LIMIT) {
-      remainingChar = view.findViewById(R.id.remaining_characters);
+      remainingChar = (TextView) view.findViewById(R.id.remaining_characters);
       remainingChar.setVisibility(View.VISIBLE);
-      remainingChar = view.findViewById(R.id.remaining_characters);
-      remainingChar.setText(Integer.toString(charLimit));
+      remainingChar = (TextView) view.findViewById(R.id.remaining_characters);
+      remainingChar.setText("" + charLimit);
       customMessage.setFilters(new InputFilter[] {new InputFilter.LengthFilter(charLimit)});
     }
 
-    LinearLayout messageContainer = view.findViewById(R.id.message_container);
+    LinearLayout messageContainer = (LinearLayout) view.findViewById(R.id.message_container);
     for (String message : getArguments().getStringArray(MESSAGE_LIST_KEY)) {
       TextView textView = (TextView) inflater.inflate(R.layout.selectable_text_view, null);
       textView.setOnClickListener(this);
@@ -127,20 +123,11 @@
   @Override
   public void afterTextChanged(Editable s) {
     if (charLimit != NO_CHAR_LIMIT) {
-      remainingChar.setText(Integer.toString(charLimit - s.length()));
+      remainingChar.setText("" + (charLimit - s.length()));
     }
     getListener().onMessageFragmentAfterTextChange(s.toString());
   }
 
-  @Override
-  public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
-    if (getMessage() == null) {
-      return false;
-    }
-    getListener().onMessageFragmentSendMessage(getMessage());
-    return true;
-  }
-
   private Listener getListener() {
     return FragmentUtils.getParentUnsafe(this, Listener.class);
   }
diff --git a/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml b/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml
index 023b0ff..c4aac65 100644
--- a/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml
+++ b/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml
@@ -29,9 +29,7 @@
         android:gravity="top"
         android:textSize="@dimen/toolbar_title_text_size"
         android:textColor="@color/background_dialer_white"
-        android:fontFamily="sans-serif-medium"
-        android:maxLines="1"
-        android:ellipsize="end"/>
+        android:fontFamily="sans-serif-medium"/>
 
     <TextView
         android:id="@+id/subtitle"
@@ -39,8 +37,6 @@
         android:layout_height="wrap_content"
         android:textSize="@dimen/toolbar_subtitle_text_size"
         android:textColor="@color/background_dialer_white"
-        android:visibility="gone"
-        android:maxLines="1"
-        android:ellipsize="end"/>
+        android:visibility="gone"/>
   </LinearLayout>
 </merge>
\ No newline at end of file
diff --git a/java/com/android/dialer/widget/res/layout/fragment_message.xml b/java/com/android/dialer/widget/res/layout/fragment_message.xml
index 5b0bab5..e39e03a 100644
--- a/java/com/android/dialer/widget/res/layout/fragment_message.xml
+++ b/java/com/android/dialer/widget/res/layout/fragment_message.xml
@@ -48,9 +48,7 @@
       android:textColorHint="@color/dialer_edit_text_hint_color"
       android:background="@color/background_dialer_white"
       android:textCursorDrawable="@drawable/searchedittext_custom_cursor"
-      android:layout_toStartOf="@+id/count_and_send_container"
-      android:inputType="textShortMessage|textCapSentences"
-      android:imeOptions="actionSend"/>
+      android:layout_toStartOf="@+id/count_and_send_container"/>
 
     <LinearLayout
       android:id="@+id/count_and_send_container"
diff --git a/java/com/android/dialer/widget/res/values-af/strings.xml b/java/com/android/dialer/widget/res/values-af/strings.xml
index 122c843..7c5e83a 100644
--- a/java/com/android/dialer/widget/res/values-af/strings.xml
+++ b/java/com/android/dialer/widget/res/values-af/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Skryf \'n gepasmaakte boodskap"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Maak toe"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Jy het nog nie enige kontakte nie"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Voeg \'n kontak by"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Skakel aan"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Skakel die kontaktetoestemming aan om jou kontakte te sien."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Geen kontakte-program beskikbaar nie"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-am/strings.xml b/java/com/android/dialer/widget/res/values-am/strings.xml
index 8a5353e..f11b468 100644
--- a/java/com/android/dialer/widget/res/values-am/strings.xml
+++ b/java/com/android/dialer/widget/res/values-am/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"ብጁ መልዕክት ይጻፉ"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"ዝጋ"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"ገና ምንም እውቂያዎች የሉዎትም"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"እውቂያ ያክሉ"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"አብራ"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"የእርስዎን እውቂያዎች ለማየት፣ የእውቂያዎች ፍቃዱን ያብሩ።"</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"ምንም የእውቂያዎች መተግበሪያ አይገኝም"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ar/strings.xml b/java/com/android/dialer/widget/res/values-ar/strings.xml
index 7947903..cb2e733 100644
--- a/java/com/android/dialer/widget/res/values-ar/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ar/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"كتابة رسالة مخصصة"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"إغلاق"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"ليست لديك أية جهات اتصال حتى الآن"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"إضافة جهة اتصال"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"تشغيل"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"للاطلاع على جهات الاتصال، شغِّل إذن جهات الاتصال."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"لا يتوفر تطبيق لجهات الاتصال"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-az/strings.xml b/java/com/android/dialer/widget/res/values-az/strings.xml
index 7a1389a..3860a58 100644
--- a/java/com/android/dialer/widget/res/values-az/strings.xml
+++ b/java/com/android/dialer/widget/res/values-az/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Fərdi mesaj yazın"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Bağlayın"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Hələ heç bir kontakt yoxdur"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kontakt əlavə edin"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktiv edin"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Kontaktları görmək üçün Kontakt icazəsini aktiv edin."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Kontakt tətbiqi əlçatan deyil"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml
index 46b29d2..daefd90 100644
--- a/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Napišite prilagođenu poruku"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Zatvorite"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Još uvek nemate nijedan kontakt"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodaj kontakt"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Uključi"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Da biste videli kontakte, uključite dozvolu za Kontakte."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Nema dostupne aplikacije za kontakte"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-be/strings.xml b/java/com/android/dialer/widget/res/values-be/strings.xml
index 38c8a80..8786132 100644
--- a/java/com/android/dialer/widget/res/values-be/strings.xml
+++ b/java/com/android/dialer/widget/res/values-be/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Напісаць карыстальніцкае паведамленне"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Закрыць"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"У вас пакуль няма ніякіх кантактаў"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Дадаць кантакт"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Уключыць"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Каб бачыць свае кантакты, уключыце дазвол для Кантактаў."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Праграмы для аперацый з кантактамі няма"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-bg/strings.xml b/java/com/android/dialer/widget/res/values-bg/strings.xml
index 00ce564..35e980c 100644
--- a/java/com/android/dialer/widget/res/values-bg/strings.xml
+++ b/java/com/android/dialer/widget/res/values-bg/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Напишете свое съобщение"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Затваряне"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Още нямате контакти"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Добавяне на контакт"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Включване"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"За да видите контактите си, включете разрешението за Контакти."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Няма налично приложение за контакти"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-bn/strings.xml b/java/com/android/dialer/widget/res/values-bn/strings.xml
index 96b75db..9e17071 100644
--- a/java/com/android/dialer/widget/res/values-bn/strings.xml
+++ b/java/com/android/dialer/widget/res/values-bn/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"একটি কাস্টম বার্তা লিখুন"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"বন্ধ করুন"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"আপনার এখনও পর্যন্ত কোনো পরিচিতি নেই"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"একটি পরিচিতি যোগ করুন"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"চালু করুন"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"আপনার পরিচিতিগুলি দেখতে, পরিচিতিগুলির অনুমতি চালু করুন।"</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"কোনো পরিচিতি অ্যাপ্লিকেশান উপলব্ধ নয়"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-bs/strings.xml b/java/com/android/dialer/widget/res/values-bs/strings.xml
index df24ee1..0bc1a9c 100644
--- a/java/com/android/dialer/widget/res/values-bs/strings.xml
+++ b/java/com/android/dialer/widget/res/values-bs/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Napišite prilagođenu poruku"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Zatvori"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Još nemate nijedan kontakt"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodajte kontakt"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Uključi"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Da vidite kontakte, uključite dozvolu za Kontakte."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Nije dostupna nijedna aplikacija za kontakte"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ca/strings.xml b/java/com/android/dialer/widget/res/values-ca/strings.xml
index f7bbaa7..8639300 100644
--- a/java/com/android/dialer/widget/res/values-ca/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ca/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Escriu un miss. personalitzat"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Tanca"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Encara no tens cap contacte"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Afegeix un contacte"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Activa"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Activa el permís Contactes per veure els teus contactes."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"No hi ha cap contacte disponible"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-cs/strings.xml b/java/com/android/dialer/widget/res/values-cs/strings.xml
index 19e5d17..829aab8 100644
--- a/java/com/android/dialer/widget/res/values-cs/strings.xml
+++ b/java/com/android/dialer/widget/res/values-cs/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Napište vlastní zprávu"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Zavřít"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Zatím nemáte žádné kontakty"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Přidat kontakt"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Povolit"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Pokud chcete zobrazit kontakty, povolte aplikaci přístup ke Kontaktům."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Není k dispozici žádná aplikace pro práci s kontakty"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-da/strings.xml b/java/com/android/dialer/widget/res/values-da/strings.xml
index 67fb244..9381f36 100644
--- a/java/com/android/dialer/widget/res/values-da/strings.xml
+++ b/java/com/android/dialer/widget/res/values-da/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Skriv en tilpasset besked"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Luk"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Du har endnu ikke nogen kontaktpersoner"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Tilføj en kontaktperson"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Slå til"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Slå tilladelsen Kontaktpersoner til for at se dine kontaktpersoner."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Der er ingen tilgængelig app til kontaktpersoner"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-de/strings.xml b/java/com/android/dialer/widget/res/values-de/strings.xml
index 14146d6..949fe9e 100644
--- a/java/com/android/dialer/widget/res/values-de/strings.xml
+++ b/java/com/android/dialer/widget/res/values-de/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Eigene Nachricht schreiben"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Schließen"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Du hast noch keine Kontakte"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kontakt hinzufügen"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktivieren"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Aktiviere die Berechtigung \"Kontakte\", um deine Kontakte abzurufen."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Keine Kontakte-App verfügbar"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-el/strings.xml b/java/com/android/dialer/widget/res/values-el/strings.xml
index 0db6b26..21e049b 100644
--- a/java/com/android/dialer/widget/res/values-el/strings.xml
+++ b/java/com/android/dialer/widget/res/values-el/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Γράψτε ένα προσαρμ. μήνυμα"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Κλείσιμο"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Δεν έχετε επαφές ακόμη"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Προσθήκη επαφής"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Ενεργοποίηση"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Για να δείτε τις επαφές σας, ενεργοποιήστε την άδεια πρόσβασης στις Επαφές."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Δεν υπάρχει διαθέσιμη εφαρμογή επαφών"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-en-rAU/strings.xml b/java/com/android/dialer/widget/res/values-en-rAU/strings.xml
index a87cd28..7f22b46 100644
--- a/java/com/android/dialer/widget/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/widget/res/values-en-rAU/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Write a custom message"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Close"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"You don\'t have any contacts yet"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Add a contact"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Turn on"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"To see your contacts, turn on the Contacts permission."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"No contacts app available"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-en-rGB/strings.xml b/java/com/android/dialer/widget/res/values-en-rGB/strings.xml
index a87cd28..7f22b46 100644
--- a/java/com/android/dialer/widget/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/widget/res/values-en-rGB/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Write a custom message"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Close"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"You don\'t have any contacts yet"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Add a contact"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Turn on"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"To see your contacts, turn on the Contacts permission."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"No contacts app available"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-en-rIN/strings.xml b/java/com/android/dialer/widget/res/values-en-rIN/strings.xml
index a87cd28..7f22b46 100644
--- a/java/com/android/dialer/widget/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/widget/res/values-en-rIN/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Write a custom message"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Close"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"You don\'t have any contacts yet"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Add a contact"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Turn on"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"To see your contacts, turn on the Contacts permission."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"No contacts app available"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-es-rUS/strings.xml b/java/com/android/dialer/widget/res/values-es-rUS/strings.xml
index 5ecc22b..c7fbdaa 100644
--- a/java/com/android/dialer/widget/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/widget/res/values-es-rUS/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Escribe tu propio mensaje"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Cerrar"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Aún no tienes contactos"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Agregar un contacto"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Activar"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver los contactos, activa el permiso Contactos."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"No hay ninguna app de contactos disponible"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-es/strings.xml b/java/com/android/dialer/widget/res/values-es/strings.xml
index e561d06..507e8af 100644
--- a/java/com/android/dialer/widget/res/values-es/strings.xml
+++ b/java/com/android/dialer/widget/res/values-es/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Mensaje personalizado"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Cerrar"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Aún no tienes contactos"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Añadir un contacto"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Activar"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver tus contactos, activa el permiso de Contactos."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"No hay aplicaciones de contactos disponibles"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-et/strings.xml b/java/com/android/dialer/widget/res/values-et/strings.xml
index 054b422..71dab42 100644
--- a/java/com/android/dialer/widget/res/values-et/strings.xml
+++ b/java/com/android/dialer/widget/res/values-et/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Kirjutage kohandatud sõnum"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Sule"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Teil pole veel kontakte"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kontakti lisamine"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Lülita sisse"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Kontaktide vaatamiseks lülitage sisse kontaktide luba."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Kontaktide rakendus pole saadaval"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-eu/strings.xml b/java/com/android/dialer/widget/res/values-eu/strings.xml
index 7d19192..b8e4085 100644
--- a/java/com/android/dialer/widget/res/values-eu/strings.xml
+++ b/java/com/android/dialer/widget/res/values-eu/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Idatzi mezu bat"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Itxi"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Oraindik ez duzu kontakturik"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Gehitu kontaktu bat"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktibatu"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Kontaktuak ikusteko, aktibatu Kontaktuak atzitzeko baimena."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Ez dago kontaktu-aplikaziorik erabilgarri"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-fa/strings.xml b/java/com/android/dialer/widget/res/values-fa/strings.xml
index 5ed2313..0c3b1d4 100644
--- a/java/com/android/dialer/widget/res/values-fa/strings.xml
+++ b/java/com/android/dialer/widget/res/values-fa/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"پیام سفارشی بنویسید"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"بستن"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"هنوز هیچ مخاطبی ندارید"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"افزودن مخاطب"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"فعال‌سازی"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"برای دیدن مخاطبینتان، مجوز «مخاطبین» را روشن کنید."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"هیچ برنامه مخاطبی در دسترس نیست"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-fi/strings.xml b/java/com/android/dialer/widget/res/values-fi/strings.xml
index 1a15307..e0e971c 100644
--- a/java/com/android/dialer/widget/res/values-fi/strings.xml
+++ b/java/com/android/dialer/widget/res/values-fi/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Kirjoita oma viesti"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Sulje"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Sinulla ei ole vielä yhteystietoja."</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Lisää yhteystieto."</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Ota käyttöön"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Jos haluat katsella yhteystietojasi, ota Yhteystiedot-käyttöoikeus käyttöön."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Yhteystietosovellusta ei ole käytettävissä."</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml b/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml
index 62e1f37..9776385 100644
--- a/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Rédiger message personnalisé"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Fermer"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Vous n\'avez pas encore de contacts"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Ajouter un contact"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Activer"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Pour consulter vos contacts, activez l\'autorisation Contacts."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Aucune application Contacts n\'est disponible"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-fr/strings.xml b/java/com/android/dialer/widget/res/values-fr/strings.xml
index 85a32b8..fececd8 100644
--- a/java/com/android/dialer/widget/res/values-fr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-fr/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Écrire mon propre message"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Fermer"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Vous n\'avez pas encore de contacts."</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Ajouter un contact"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Activer"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Pour consulter vos contacts, activez l\'autorisation Contacts."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Aucune application de gestion des contacts n\'est disponible"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-gl/strings.xml b/java/com/android/dialer/widget/res/values-gl/strings.xml
index 8a9089f..6a75681 100644
--- a/java/com/android/dialer/widget/res/values-gl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-gl/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Escribe unha mensaxe personalizada"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Pechar"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Aínda non tes ningún contacto"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Engadir un contacto"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Activar"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver os teus contactos, activa o permiso de Contactos."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Non hai ningunha aplicación de contactos dispoñible"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-gu/strings.xml b/java/com/android/dialer/widget/res/values-gu/strings.xml
index 794245d..c2f8cf0 100644
--- a/java/com/android/dialer/widget/res/values-gu/strings.xml
+++ b/java/com/android/dialer/widget/res/values-gu/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"એક કસ્ટમ સંદેશ લખો"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"બંધ કરો"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"તમે હજી સુધી કોઇપણ સંપર્કો ધરાવતાં નથી"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"સંપર્ક ઉમેરો"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"ચાલુ કરો"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"તમારા સંપર્કો જોવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"કોઈ સંપર્કો ઍપ્લિકેશન ઉપલબ્ધ નથી"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-hi/strings.xml b/java/com/android/dialer/widget/res/values-hi/strings.xml
index 5cdb8bb..63c94e7 100644
--- a/java/com/android/dialer/widget/res/values-hi/strings.xml
+++ b/java/com/android/dialer/widget/res/values-hi/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"कोई कस्टम संदेश लिखें"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"बंद करें"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"आपके पास अभी कोई भी संपर्क नहीं है"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"कोई संपर्क जोड़ें"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"चालू करें"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"अपने संपर्क देखने के लिए, संपर्क अनुमति चालू करें."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"कोई भी संपर्क ऐप उपलब्‍ध नहीं है"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-hr/strings.xml b/java/com/android/dialer/widget/res/values-hr/strings.xml
index 9ded4d4..28a58d4 100644
--- a/java/com/android/dialer/widget/res/values-hr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-hr/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Napišite prilagođenu poruku"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Zatvaranje"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Još nemate nijedan kontakt"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodavanje kontakta"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Uključi"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Da biste vidjeli svoje kontakte, uključite dopuštenje za kontakte."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Nije dostupna nijedna aplikacija za kontakte"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-hu/strings.xml b/java/com/android/dialer/widget/res/values-hu/strings.xml
index 92ae71d..dcd2b36 100644
--- a/java/com/android/dialer/widget/res/values-hu/strings.xml
+++ b/java/com/android/dialer/widget/res/values-hu/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Egyéni üzenet írása"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Bezárás"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Még nem rendelkezik egyetlen névjeggyel sem"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Névjegy hozzáadása"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Bekapcsolás"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"A névjegyek megtekintéséhez kapcsolja be a Névjegyek engedélyt."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Nincs elérhető névjegykezelő alkalmazás"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-hy/strings.xml b/java/com/android/dialer/widget/res/values-hy/strings.xml
index ffa7132..7b78bb2 100644
--- a/java/com/android/dialer/widget/res/values-hy/strings.xml
+++ b/java/com/android/dialer/widget/res/values-hy/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Գրել տեքստն ինքնուրույն"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Փակել"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Դեռ կոնտակտներ չունեք"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Ավելացնել կոնտակտ"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Միացնել"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Ձեր կոնտակտները տեսնելու համար միացրեք Կոնտակտների թույլտվությունը:"</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Կոնտակտների հավելված չկա"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-in/strings.xml b/java/com/android/dialer/widget/res/values-in/strings.xml
index 69849ae..b4b6550 100644
--- a/java/com/android/dialer/widget/res/values-in/strings.xml
+++ b/java/com/android/dialer/widget/res/values-in/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Tulis pesan khusus"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Tutup"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Anda belum memiliki kontak"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Tambahkan kontak"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktifkan"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Untuk melihat kontak, aktifkan izin Kontak."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Aplikasi kontak tidak tersedia"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-is/strings.xml b/java/com/android/dialer/widget/res/values-is/strings.xml
index 98a1729..fd84419 100644
--- a/java/com/android/dialer/widget/res/values-is/strings.xml
+++ b/java/com/android/dialer/widget/res/values-is/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Skrifa sérsniðin skilaboð"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Loka"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Þú ert ekki með neina tengiliði enn sem komið er"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Bæta tengilið við"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Kveikja"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Kveiktu á tengiliðaheimildinni til að sjá tengiliðina þína."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Ekkert tengiliðaforrit í boði"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-it/strings.xml b/java/com/android/dialer/widget/res/values-it/strings.xml
index 1a6e6c1..0af3fd2 100644
--- a/java/com/android/dialer/widget/res/values-it/strings.xml
+++ b/java/com/android/dialer/widget/res/values-it/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Scrivi un messaggio personalizzato"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Chiudi"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Nessun contatto disponibile"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Aggiungi un contatto"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Attiva"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Per accedere ai tuoi contatti, attiva l\'autorizzazione Contatti."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Nessuna app di contatti disponibile"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-iw/strings.xml b/java/com/android/dialer/widget/res/values-iw/strings.xml
index f2a732a..a485888 100644
--- a/java/com/android/dialer/widget/res/values-iw/strings.xml
+++ b/java/com/android/dialer/widget/res/values-iw/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"כתוב הודעה מותאמת אישית"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"סגירה"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"עדיין אין לך אנשי קשר"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"הוספה של איש קשר"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"הפעלה"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"עליך להפעיל את ההרשאה \'אנשי קשר\' כדי להציג את אנשי הקשר שלך."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"אין אף אפליקציה לניהול אנשי קשר"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ja/strings.xml b/java/com/android/dialer/widget/res/values-ja/strings.xml
index 7994c62..9fd65a8 100644
--- a/java/com/android/dialer/widget/res/values-ja/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ja/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"カスタム メッセージを入力"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"閉じる"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"連絡先はまだありません"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"連絡先を追加"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"ON にする"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"連絡先を表示するには、連絡先へのアクセスを許可する設定を ON にしてください。"</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"利用できる連絡先アプリがありません"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ka/strings.xml b/java/com/android/dialer/widget/res/values-ka/strings.xml
index 865a66b..6dde044 100644
--- a/java/com/android/dialer/widget/res/values-ka/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ka/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"დაწერეთ მორგებ. შეტყობინება"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"დახურვა"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"კონტაქტები ჯერ არ გაქვთ"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"კონტაქტის დამატება"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"ჩართვა"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"კონტაქტების სანახავად ჩართეთ კონტაქტების ნებართვა."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"კონტაქტების აპი მიუწვდომელია"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-kk/strings.xml b/java/com/android/dialer/widget/res/values-kk/strings.xml
index 08856aa..334d915 100644
--- a/java/com/android/dialer/widget/res/values-kk/strings.xml
+++ b/java/com/android/dialer/widget/res/values-kk/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Арнаулы хабар жазу"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Жабу"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Әлі ешқандай контактілер жоқ"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Контакт қосу"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Қосу"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Контактілерді көру үшін \"Контактілер\" рұқсатын қосыңыз."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Контактілер қолданбасы қолжетімді емес"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-km/strings.xml b/java/com/android/dialer/widget/res/values-km/strings.xml
index c092332..d0f5633 100644
--- a/java/com/android/dialer/widget/res/values-km/strings.xml
+++ b/java/com/android/dialer/widget/res/values-km/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"សរសេរ​សារ​ផ្ទាល់ខ្លួន"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"បិទ"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"អ្នកមិនទាន់មានទំនាក់ទំនងនៅឡើយទេ"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"បញ្ចូល​ទំនាក់ទំនង"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"បើក"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"ដើម្បីមើលទំនាក់ទំនងរបស់អ្នក សូមបើកការ​អនុញ្ញាតកម្មវិធីទំនាក់ទំនង។"</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"មិនមានកម្មវិធីទំនាក់ទំនងទេ"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-kn/strings.xml b/java/com/android/dialer/widget/res/values-kn/strings.xml
index a502d08..3535bfc 100644
--- a/java/com/android/dialer/widget/res/values-kn/strings.xml
+++ b/java/com/android/dialer/widget/res/values-kn/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"ಕಸ್ಟಮ್ ಸಂದೇಶವನ್ನು ಬರೆಯಿರಿ"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"ಮುಚ್ಚಿ"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"ನಿಮ್ಮ ಬಳಿ ಇನ್ನೂ ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ಸಂಪರ್ಕ ಸೇರಿಸಿ"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"ಆನ್ ಮಾಡಿ"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ವೀಕ್ಷಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"ಯಾವುದೇ ಸಂಪರ್ಕಗಳ ಅಪ್ಲಿಕೇಶನ್‌ ಲಭ್ಯವಿಲ್ಲ"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ko/strings.xml b/java/com/android/dialer/widget/res/values-ko/strings.xml
index 045dc54..8c00cea 100644
--- a/java/com/android/dialer/widget/res/values-ko/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ko/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"맞춤 메시지를 작성하세요."</string>
     <string name="toolbar_close" msgid="1081308076149879833">"닫기"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"아직 연락처가 없습니다."</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"연락처 추가"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"사용"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"연락처를 보려면 연락처에 액세스할 권한을 부여하세요."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"사용할 수 있는 연락처 앱이 없습니다."</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ky/strings.xml b/java/com/android/dialer/widget/res/values-ky/strings.xml
index 7ef10e7..46ea851 100644
--- a/java/com/android/dialer/widget/res/values-ky/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ky/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Башка билдирүүнү жазыңыз"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Жабуу"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Азырынча эч байланышыңыз жок"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Байланыш кошуу"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Күйгүзүү"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Байланыштарыңызды көрүү үчүн, \"Байланыштар\" уруксатын күйгүзүңүз."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Жеткиликтүү байланыштар колдонмосу жок"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-lo/strings.xml b/java/com/android/dialer/widget/res/values-lo/strings.xml
index dc7ba44..0db64a7 100644
--- a/java/com/android/dialer/widget/res/values-lo/strings.xml
+++ b/java/com/android/dialer/widget/res/values-lo/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"ຂຽນຂໍ້ຄວາມດ້ວຍຕົນເອງ"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"ປິດ"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"ທ່ານຍັງບໍ່ມີລາຍຊື່ຜູ້ຕິດຕໍ່ເທື່ອ"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ເພີ່ມລາຍຊື່"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"ເປີດໃຊ້"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"ເພື່ອເບິ່ງລາຍຊື່ຜູ້ຕິດຕໍ່ຂອງທ່ານ, ໃຫ້ເປີດການອະນຸຍາດລາຍຊື່ຜູ້ຕິດຕໍ່ກ່ອນ"</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"ບໍ່ມີແອັບລາຍຊື່ຜູ້ຕິດຕໍ່ທີ່ສາມາດໃຊ້ໄດ້"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-lt/strings.xml b/java/com/android/dialer/widget/res/values-lt/strings.xml
index be12520..a10b91e 100644
--- a/java/com/android/dialer/widget/res/values-lt/strings.xml
+++ b/java/com/android/dialer/widget/res/values-lt/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Parašykite tinkintą praneš."</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Uždaryti"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Dar neturite jokių kontaktų"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Pridėkite kontaktą"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Įjungti"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Jei norite peržiūrėti kontaktus, įjunkite Kontaktų leidimą."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Nepasiekiama jokia kontaktų programa"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-lv/strings.xml b/java/com/android/dialer/widget/res/values-lv/strings.xml
index acefbae..8ff0793 100644
--- a/java/com/android/dialer/widget/res/values-lv/strings.xml
+++ b/java/com/android/dialer/widget/res/values-lv/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Rakstīt pielāgotu ziņojumu"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Aizvērt"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Jums vēl nav nevienas kontaktpersonas."</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Pievienot kontaktpersonu"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Ieslēgt"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Lai skatītu savas kontaktpersonas, ieslēdziet atļauju Kontaktpersonas."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Nav pieejama neviena kontaktpersonu lietotne."</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-mk/strings.xml b/java/com/android/dialer/widget/res/values-mk/strings.xml
index 20b18e8..aa9be30 100644
--- a/java/com/android/dialer/widget/res/values-mk/strings.xml
+++ b/java/com/android/dialer/widget/res/values-mk/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Напиши приспособена порака"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Затвори"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Сè уште немате контакти"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Додајте контакт"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Вклучи"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"За да ги видите контактите, вклучете ја дозволата за контакти."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Нема достапна апликација за контакти"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ml/strings.xml b/java/com/android/dialer/widget/res/values-ml/strings.xml
index a97a7d8..b52ee40 100644
--- a/java/com/android/dialer/widget/res/values-ml/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ml/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"ഒരു ഇ‌ഷ്‌ടാനുസൃത സന്ദേശം രചിക്കൂ"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"അടയ്‌ക്കുക"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"നിങ്ങൾക്ക് ഇതുവരെയും കോൺടാക്റ്റുകൾ ഒന്നുമില്ല."</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ഒരു കോണ്‍ടാക്റ്റ് ചേര്‍ക്കുക"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"ഓൺ ചെയ്യുക"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ കാണുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"കോൺടാക്റ്റ് അപ്ലിക്കേഷനൊന്നും ലഭ്യമല്ല"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-mn/strings.xml b/java/com/android/dialer/widget/res/values-mn/strings.xml
index bbcfc7c..6bdad89 100644
--- a/java/com/android/dialer/widget/res/values-mn/strings.xml
+++ b/java/com/android/dialer/widget/res/values-mn/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Тусгай зурвас бичих"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Хаах"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Танд одоогоор харилцагч байхгүй байна"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Харилцагч нэмэх"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Асаах"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Харилцагчдаа харахын тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Ямар ч харилцагчдын апликейшн байхгүй байна"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-mr/strings.xml b/java/com/android/dialer/widget/res/values-mr/strings.xml
index 38d913a..5661fa8 100644
--- a/java/com/android/dialer/widget/res/values-mr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-mr/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"एक सानुकूल संदेश लिहा"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"बंद करा"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"आपल्‍याकडे अद्याप कोणतेही संपर्क नाहीत"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"एक संपर्क जोडा"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"चालू करा"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"आपले संपर्क पाहण्‍यासाठी, संपर्क परवानगी चालू करा."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"कोणताही संपर्क अॅप उपलब्ध नाही"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ms/strings.xml b/java/com/android/dialer/widget/res/values-ms/strings.xml
index bc67c67..8889ccc 100644
--- a/java/com/android/dialer/widget/res/values-ms/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ms/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Tulis mesej tersuai"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Tutup"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Anda belum mempunyai sebarang kenalan"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Tambahkan kenalan"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Hidupkan"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Untuk melihat kenalan anda, hidupkan kebenaran Kenalan."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Tiada apl kenalan yang tersedia"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-my/strings.xml b/java/com/android/dialer/widget/res/values-my/strings.xml
index c8e783b..9a69f29 100644
--- a/java/com/android/dialer/widget/res/values-my/strings.xml
+++ b/java/com/android/dialer/widget/res/values-my/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"စိတ်ကြိုက် မက်ဆေ့ဂျ်တစ်ခု ရေးပါ"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"ပိတ်ရန်"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"သင့်တွင် မည်သည့်အဆက်အသွယ်မျှ မရှိသေးပါ"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"အဆက်အသွယ်တစ်ယောက် ထည့်မည်"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"ဖွင့်ရန်"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"အဆက်အသွယ်များကိုကြည့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။"</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"အဆက်အသွယ်များ app မရှိပါ"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-nb/strings.xml b/java/com/android/dialer/widget/res/values-nb/strings.xml
index 822f07e..100156b 100644
--- a/java/com/android/dialer/widget/res/values-nb/strings.xml
+++ b/java/com/android/dialer/widget/res/values-nb/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Skriv egendefinert melding"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Lukk"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Du har ingen kontakter ennå"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Legg til en kontakt"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Slå på"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"For å se kontaktene dine må du slå på Kontakter-tillatelsen."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Ingen kontaktapper er tilgjengelige"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ne/strings.xml b/java/com/android/dialer/widget/res/values-ne/strings.xml
index ebb31d5..abb8bb0 100644
--- a/java/com/android/dialer/widget/res/values-ne/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ne/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"आफू अनुकूल सन्देश लेख्‍ने"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"बन्द गर्नुहोस्"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"अहिलेसम्म तपाईंसँग कुनै सम्पर्कहरू छैनन्"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"कुनै सम्पर्क थप्नुहोस्"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"सक्रिय गर्नुहोस्"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"आफ्ना सम्पर्कहरू हेर्न सम्पर्क सम्बन्धी अनुमतिलाई सक्रिय गर्नुहोस्।"</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"सम्पर्क सम्बन्धी कुनै अनुप्रयोग उपलब्ध छैन"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-nl/strings.xml b/java/com/android/dialer/widget/res/values-nl/strings.xml
index cbc286b..5560288 100644
--- a/java/com/android/dialer/widget/res/values-nl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-nl/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Schrijf zelf een bericht"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Sluiten"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Je hebt nog geen contacten"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Een contact toevoegen"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Inschakelen"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Als je je contacten wilt bekijken, schakel je de machtiging voor Contacten in."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Geen app voor contacten beschikbaar"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-no/strings.xml b/java/com/android/dialer/widget/res/values-no/strings.xml
index 822f07e..100156b 100644
--- a/java/com/android/dialer/widget/res/values-no/strings.xml
+++ b/java/com/android/dialer/widget/res/values-no/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Skriv egendefinert melding"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Lukk"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Du har ingen kontakter ennå"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Legg til en kontakt"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Slå på"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"For å se kontaktene dine må du slå på Kontakter-tillatelsen."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Ingen kontaktapper er tilgjengelige"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-pa/strings.xml b/java/com/android/dialer/widget/res/values-pa/strings.xml
index 06f191e..4c69c2c 100644
--- a/java/com/android/dialer/widget/res/values-pa/strings.xml
+++ b/java/com/android/dialer/widget/res/values-pa/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ ਸੰਦੇਸ਼ ਲਿਖੋ"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"ਬੰਦ ਕਰੋ"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"ਤੁਹਾਡੇ ਕੋਲ ਹਾਲੇ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ ਹਨ"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ਕੋਈ ਸੰਪਰਕ ਸ਼ਾਮਲ ਕਰੋ"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"ਚਾਲੂ ਕਰੋ"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਨੂੰ ਵੇਖਣ ਲਈ, ਸੰਪਰਕ ਇਜਾਜ਼ਤ ਚਾਲੂ ਕਰੋ।"</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"ਕੋਈ ਸੰਪਰਕ ਐਪ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-pl/strings.xml b/java/com/android/dialer/widget/res/values-pl/strings.xml
index 5d62a07..cec7a40 100644
--- a/java/com/android/dialer/widget/res/values-pl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-pl/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Wpisz wiadomość"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Zamknij"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Nie masz jeszcze żadnych kontaktów"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodaj kontakt"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Włącz"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Aby zobaczyć swoje kontakty, włącz uprawnienia Kontakty."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Nie jest dostępna żadna aplikacja do obsługi kontaktów"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml b/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml
index 0afc0f1..b15bfac 100644
--- a/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Escreva sua mensagem"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Fechar"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Você ainda não tem contatos"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Adicionar um contato"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Ativar"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver seus contatos, ative a permissão para o app Contatos."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Nenhum app de contatos disponível"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml b/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml
index 35f71a3..ece2ef2 100644
--- a/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Escreva uma mensagem"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Fechar"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Ainda não tem nenhum contacto"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Adicionar um contacto"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Ativar"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver os seus contactos, ative a autorização Contactos."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Não existe nenhuma aplicação de contactos disponível"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-pt/strings.xml b/java/com/android/dialer/widget/res/values-pt/strings.xml
index 0afc0f1..b15bfac 100644
--- a/java/com/android/dialer/widget/res/values-pt/strings.xml
+++ b/java/com/android/dialer/widget/res/values-pt/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Escreva sua mensagem"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Fechar"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Você ainda não tem contatos"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Adicionar um contato"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Ativar"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver seus contatos, ative a permissão para o app Contatos."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Nenhum app de contatos disponível"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ro/strings.xml b/java/com/android/dialer/widget/res/values-ro/strings.xml
index 6c51d23..753b920 100644
--- a/java/com/android/dialer/widget/res/values-ro/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ro/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Scrieți mesaj personalizat"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Închideți"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Nu aveți încă persoane de contact."</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Adăugați o persoană de contact"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Activați"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Pentru a vedea persoanele de contact, activați permisiunea pentru Agendă."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Nu este disponibilă nicio aplicație pentru agendă"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ru/strings.xml b/java/com/android/dialer/widget/res/values-ru/strings.xml
index c36874d..bdebd3c 100644
--- a/java/com/android/dialer/widget/res/values-ru/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ru/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Добавьте свой текст"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Закрыть"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Контактов нет"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Добавить контакт"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Предоставить разрешение"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Чтобы открыть список контактов, предоставьте приложению разрешение \"Контакты\"."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Нет приложения для работы с контактами"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-si/strings.xml b/java/com/android/dialer/widget/res/values-si/strings.xml
index 10eb7b5..4988259 100644
--- a/java/com/android/dialer/widget/res/values-si/strings.xml
+++ b/java/com/android/dialer/widget/res/values-si/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"අභිරුචි පණිවිඩයක් ලියන්න"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"වසන්න"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"ඔබට තවම කිසිදු සම්බන්ධතාවක් නැත"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"සම්බන්ධතාවක් එක් කරන්න"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"ක්‍රියාත්මක කරන්න"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"ඔබේ සම්බන්ධතා බැලීමට, සම්බන්ධතා අවසරය ක්‍රියාත්මක කරන්න."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"සබඳතා යෙදුම ලබා ගැනීමට නොහැකිය"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-sk/strings.xml b/java/com/android/dialer/widget/res/values-sk/strings.xml
index 56f7ceb..5dc1bd5 100644
--- a/java/com/android/dialer/widget/res/values-sk/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sk/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Napíšte vlastnú správu"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Zavrieť"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Zatiaľ nemáte žiadne kontakty"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Pridať kontakt"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Zapnúť"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Ak si chcete zobraziť kontakty, zapnite povolenie Kontakty."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Nie je k dispozícii žiadna aplikácia na prácu s kontaktmi"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-sl/strings.xml b/java/com/android/dialer/widget/res/values-sl/strings.xml
index 52f0293..0ba965b 100644
--- a/java/com/android/dialer/widget/res/values-sl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sl/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Napišite sporočilo po meri"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Zapri"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Nimate še nobenega stika"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodaj stik"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Vklopi"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Če si želite ogledati stike, vklopite dovoljenje za stike."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Na voljo ni nobene aplikacije za stike"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-sq/strings.xml b/java/com/android/dialer/widget/res/values-sq/strings.xml
index c7943df..7f5e0f2 100644
--- a/java/com/android/dialer/widget/res/values-sq/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sq/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Shkruaj mesazh të person."</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Mbyll"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Nuk ke ende kontakte"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Shto një kontakt"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktivizo"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Për të parë kontaktet, aktivizo lejen e Kontakteve."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Nuk ka asnjë aplikacion për kontaktet"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-sr/strings.xml b/java/com/android/dialer/widget/res/values-sr/strings.xml
index 00b9b4f..446c273 100644
--- a/java/com/android/dialer/widget/res/values-sr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sr/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Напишите прилагођену поруку"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Затворите"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Још увек немате ниједан контакт"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Додај контакт"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Укључи"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Да бисте видели контакте, укључите дозволу за Контакте."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Нема доступне апликације за контакте"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-sv/strings.xml b/java/com/android/dialer/widget/res/values-sv/strings.xml
index 3593970..7d2f44c 100644
--- a/java/com/android/dialer/widget/res/values-sv/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sv/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Skriv anpassat meddelande"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Stäng"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Du har inga kontakter ännu"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Lägg till en kontakt"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktivera"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Du måste aktivera behörigheten Kontakter för att visa kontakterna."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Det finns inga appar för kontakter"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-sw/strings.xml b/java/com/android/dialer/widget/res/values-sw/strings.xml
index b089210..d2c2a97 100644
--- a/java/com/android/dialer/widget/res/values-sw/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sw/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Andika ujumbe maalum"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Funga"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Bado huna anwani zozote"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Ongeza anwani"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Washa"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Ili uone anwani zako, washa ruhusa ya Anwani."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Hakuna programu ya anwani iliyopatikana"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ta/strings.xml b/java/com/android/dialer/widget/res/values-ta/strings.xml
index 83ca080..4061c16 100644
--- a/java/com/android/dialer/widget/res/values-ta/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ta/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"தனிப்பயன் செய்தியை எழுதவும்"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"மூடு"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"இதுவரை தொடர்புகள் எதுவுமில்லை"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"தொடர்பைச் சேர்"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"இயக்கு"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"தொடர்புகளைப் பார்க்க, தொடர்புகள் அனுமதியை இயக்கவும்."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"தொடர்புகள் பயன்பாடு எதுவுமில்லை"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-te/strings.xml b/java/com/android/dialer/widget/res/values-te/strings.xml
index 418cc3d..c2474b7 100644
--- a/java/com/android/dialer/widget/res/values-te/strings.xml
+++ b/java/com/android/dialer/widget/res/values-te/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"అనుకూల సందేశాన్ని వ్రాయండి"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"మూసివేయి"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"మీకు ఇప్పటికీ పరిచయాలేవీ లేవు"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"పరిచయాన్ని జోడించండి"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"ఆన్ చేయి"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"మీ పరిచయాలను చూడటానికి, పరిచయాల అనుమతిని ఆన్ చేయండి."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"పరిచయాల అనువర్తనం ఏదీ అందుబాటులో లేదు"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-th/strings.xml b/java/com/android/dialer/widget/res/values-th/strings.xml
index c556d1c..d450b4b 100644
--- a/java/com/android/dialer/widget/res/values-th/strings.xml
+++ b/java/com/android/dialer/widget/res/values-th/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"เขียนข้อความที่กำหนดเอง"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"ปิด"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"คุณยังไม่มีรายชื่อติดต่อ"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"เพิ่มรายชื่อติดต่อ"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"เปิด"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"หากต้องการดูรายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"ไม่มีแอปรายชื่อติดต่อที่พร้อมใช้งาน"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-tl/strings.xml b/java/com/android/dialer/widget/res/values-tl/strings.xml
index be02d19..ee7c52f 100644
--- a/java/com/android/dialer/widget/res/values-tl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-tl/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Sumulat ng custom na mensahe"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Isara"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Wala ka pang sinumang contact"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Magdagdag ng contact"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"I-on"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Upang makita ang iyong mga contact, i-on ang pahintulot ng Mga Contact."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Walang available na app ng mga contact"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-tr/strings.xml b/java/com/android/dialer/widget/res/values-tr/strings.xml
index 90d5db6..64e2ea5 100644
--- a/java/com/android/dialer/widget/res/values-tr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-tr/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Özel bir mesaj yazın"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Kapat"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Henüz hiç kişiniz yok"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kişi ekleyin"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Etkinleştir"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Kişilerinizi görmek için Kişiler iznini etkinleştirin."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Kullanılabilir kişi uygulaması yok"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-uk/strings.xml b/java/com/android/dialer/widget/res/values-uk/strings.xml
index cf5a7d1..f8d9bb8 100644
--- a/java/com/android/dialer/widget/res/values-uk/strings.xml
+++ b/java/com/android/dialer/widget/res/values-uk/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Ваше власне повідомлення"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Закрити"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Ще немає контактів"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Додати контакт"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Увімкнути"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Щоб переглянути контакти, увімкніть дозвіл \"Контакти\"."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Немає додатка з контактами"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ur/strings.xml b/java/com/android/dialer/widget/res/values-ur/strings.xml
index e5199af..6edeb5c 100644
--- a/java/com/android/dialer/widget/res/values-ur/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ur/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"ایک حسب ضرورت پیغام لکھیں"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"بند کریں"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"آپ کے پاس ابھی تک کوئی رابطے نہیں ہیں"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ایک رابطہ شامل کریں"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"آن کریں"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"اپنے رابطے دیکھنے کیلئے رابطوں کی اجازت آن کریں۔"</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"رابطوں کی کوئی ایپ دستیاب نہیں ہے"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-uz/strings.xml b/java/com/android/dialer/widget/res/values-uz/strings.xml
index eb0e0ad..434464a 100644
--- a/java/com/android/dialer/widget/res/values-uz/strings.xml
+++ b/java/com/android/dialer/widget/res/values-uz/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Boshqa xabar yozing"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Yopish"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Kontaktlar yo‘q"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kontakt qo‘shish"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Ruxsat berish"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Kontaktlar ro‘yxatini ko‘rish uchun ilovaga Kontaktlarga kirishga ruxsat bering."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Kontaktlarni ochadigan ilova yo‘q"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-vi/strings.xml b/java/com/android/dialer/widget/res/values-vi/strings.xml
index 62e94b8..1a30f7c 100644
--- a/java/com/android/dialer/widget/res/values-vi/strings.xml
+++ b/java/com/android/dialer/widget/res/values-vi/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Viết tin nhắn tùy chỉnh"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Đóng"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Bạn chưa có bất kỳ liên hệ nào"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Thêm liên hệ"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Bật"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Để xem danh bạ của bạn, bật quyền đối với Danh bạ."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Không có ứng dụng danh bạ"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml b/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml
index 063301a..7999723 100644
--- a/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"自行撰写信息"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"关闭"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"您还没有任何联系人"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"添加联系人"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"开启"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"要查看您的联系人，请开启“通讯录”权限。"</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"没有可用的通讯录应用"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml b/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml
index e2e69b7..b0bfcc8 100644
--- a/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"撰寫自訂訊息"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"關閉"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"您尚無任何聯絡人"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"新增聯絡人"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"開放"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"如要查看聯絡人，請開放「通訊錄」權限。"</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"沒有可用的聯絡人應用程式"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml b/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml
index 85768af..b0bfcc8 100644
--- a/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"撰寫自訂訊息"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"關閉"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"你還沒有任何聯絡人"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"新增聯絡人"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"開啟"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"如要查看你的聯絡人，請開啟「聯絡人」存取權限。"</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"沒有可用的聯絡人應用程式"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-zu/strings.xml b/java/com/android/dialer/widget/res/values-zu/strings.xml
index a3ba84a..074aa58 100644
--- a/java/com/android/dialer/widget/res/values-zu/strings.xml
+++ b/java/com/android/dialer/widget/res/values-zu/strings.xml
@@ -3,9 +3,4 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Bhala umlayezo wangokwezifiso"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Vala"</string>
-    <string name="all_contacts_empty" msgid="4260556610403994011">"Awunabo oxhumana nabo okwamanje"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Engeza oxhumana naye"</string>
-    <string name="permission_single_turn_on" msgid="1306416016676232584">"Vula"</string>
-    <string name="permission_no_contacts" msgid="2388204904477299207">"Ukuze ubone oxhumana nabo, vula imvume yoxhumana nabo."</string>
-    <string name="add_contact_not_available" msgid="3083256438899321502">"Alukho uhlelo lokusebenza loxhumana nabo olutholakalayo"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values/colors.xml b/java/com/android/dialer/widget/res/values/colors.xml
deleted file mode 100644
index c974609..0000000
--- a/java/com/android/dialer/widget/res/values/colors.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-  <color name="empty_list_text_color">#b2b2b2</color>
-</resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/widget/res/values/dimens.xml b/java/com/android/dialer/widget/res/values/dimens.xml
index 537ad7b..20393a8 100644
--- a/java/com/android/dialer/widget/res/values/dimens.xml
+++ b/java/com/android/dialer/widget/res/values/dimens.xml
@@ -26,9 +26,4 @@
   <dimen name="toolbar_title_small_text_size">14sp</dimen>
   <dimen name="toolbar_subtitle_text_size">12sp</dimen>
   <dimen name="toolbar_elevation">4dp</dimen>
-  <dimen name="toolbar_end_padding">4dp</dimen>
-
-  <!-- Empty List -->
-  <dimen name="empty_list_message_top_padding">20dp</dimen>
-  <dimen name="empty_list_message_text_size">16sp</dimen>
 </resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/widget/res/values/strings.xml b/java/com/android/dialer/widget/res/values/strings.xml
index d6ea2e7..a5829bb 100644
--- a/java/com/android/dialer/widget/res/values/strings.xml
+++ b/java/com/android/dialer/widget/res/values/strings.xml
@@ -5,19 +5,4 @@
 
   <!-- Accessibility string for close/navigation icon in DialerToolbar -->
   <string name="toolbar_close">Close</string>
-
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <string name="all_contacts_empty">You don\'t have any contacts yet</string>
-
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <string name="all_contacts_empty_add_contact_action">Add a contact</string>
-
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <string name="permission_single_turn_on">Turn on</string>
-
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <string name="permission_no_contacts">To see your contacts, turn on the Contacts permission.</string>
-
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-  <string name="add_contact_not_available">No contacts app available</string>
 </resources>
\ No newline at end of file
diff --git a/java/com/android/dialershared/bubble/AndroidManifest.xml b/java/com/android/dialershared/bubble/AndroidManifest.xml
deleted file mode 100644
index 1a94aaf..0000000
--- a/java/com/android/dialershared/bubble/AndroidManifest.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.dialershared.bubble">
-
-  <uses-sdk android:minSdkVersion="21"/>
-  <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
-</manifest>
diff --git a/java/com/android/dialershared/bubble/Bubble.java b/java/com/android/dialershared/bubble/Bubble.java
deleted file mode 100644
index 3eb88aa..0000000
--- a/java/com/android/dialershared/bubble/Bubble.java
+++ /dev/null
@@ -1,667 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialershared.bubble;
-
-import android.animation.Animator;
-import android.animation.AnimatorSet;
-import android.animation.ObjectAnimator;
-import android.animation.PropertyValuesHolder;
-import android.annotation.SuppressLint;
-import android.app.PendingIntent.CanceledException;
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.ColorStateList;
-import android.graphics.PixelFormat;
-import android.graphics.drawable.RippleDrawable;
-import android.net.Uri;
-import android.os.Handler;
-import android.provider.Settings;
-import android.support.annotation.ColorInt;
-import android.support.annotation.IntDef;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.annotation.VisibleForTesting;
-import android.support.v4.graphics.ColorUtils;
-import android.support.v4.os.BuildCompat;
-import android.support.v4.view.animation.FastOutLinearInInterpolator;
-import android.support.v4.view.animation.LinearOutSlowInInterpolator;
-import android.transition.TransitionManager;
-import android.transition.TransitionValues;
-import android.view.ContextThemeWrapper;
-import android.view.Gravity;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.ViewPropertyAnimator;
-import android.view.ViewTreeObserver.OnPreDrawListener;
-import android.view.WindowManager;
-import android.view.WindowManager.LayoutParams;
-import android.view.animation.AnticipateInterpolator;
-import android.view.animation.OvershootInterpolator;
-import android.widget.FrameLayout;
-import android.widget.ImageView;
-import android.widget.TextView;
-import android.widget.ViewAnimator;
-import com.android.dialershared.bubble.BubbleInfo.Action;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.util.List;
-
-/**
- * Creates and manages a bubble window from information in a {@link BubbleInfo}. Before creating, be
- * sure to check whether bubbles may be shown using {@link #canShowBubbles(Context)} and request
- * permission if necessary ({@link #getRequestPermissionIntent(Context)} is provided for
- * convenience)
- */
-public class Bubble {
-
-  // How long text should show after showText(CharSequence) is called
-  private static final int SHOW_TEXT_DURATION_MILLIS = 3000;
-  // How long the new window should show before destroying the old one during resize operations.
-  // This ensures the new window has had time to draw first.
-  private static final int WINDOW_REDRAW_DELAY_MILLIS = 50;
-
-  private static Boolean canShowBubblesForTesting = null;
-
-  private final Context context;
-  private final WindowManager windowManager;
-
-  private LayoutParams windowParams;
-
-  // Initialized in factory method
-  @SuppressWarnings("NullableProblems")
-  @NonNull
-  private BubbleInfo currentInfo;
-
-  private boolean isShowing;
-  private boolean expanded;
-  private boolean textShowing;
-  private boolean hideAfterText;
-
-  private final Handler handler = new Handler();
-
-  private ViewHolder viewHolder;
-
-  @Retention(RetentionPolicy.SOURCE)
-  @IntDef({CollapseEnd.NOTHING, CollapseEnd.HIDE})
-  private @interface CollapseEnd {
-    int NOTHING = 0;
-    int HIDE = 1;
-  }
-
-  /**
-   * Determines whether bubbles can be shown based on permissions obtained. This should be checked
-   * before attempting to create a Bubble.
-   *
-   * @return true iff bubbles are able to be shown.
-   * @see Settings#canDrawOverlays(Context)
-   */
-  public static boolean canShowBubbles(@NonNull Context context) {
-    return canShowBubblesForTesting != null
-        ? canShowBubblesForTesting
-        : Settings.canDrawOverlays(context);
-  }
-
-  @VisibleForTesting(otherwise = VisibleForTesting.NONE)
-  public static void setCanShowBubblesForTesting(boolean canShowBubbles) {
-    canShowBubblesForTesting = canShowBubbles;
-  }
-
-  /** Returns an Intent to request permission to show overlays */
-  @NonNull
-  public static Intent getRequestPermissionIntent(@NonNull Context context) {
-    return new Intent(
-        Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
-        new Uri.Builder().scheme("package").fragment(context.getPackageName()).build());
-  }
-
-  /** Creates instances of Bubble. The default implementation just calls the constructor. */
-  @VisibleForTesting
-  public interface BubbleFactory {
-    Bubble createBubble(@NonNull Context context);
-  }
-
-  private static BubbleFactory bubbleFactory = Bubble::new;
-
-  public static Bubble createBubble(@NonNull Context context, @NonNull BubbleInfo info) {
-    Bubble bubble = bubbleFactory.createBubble(context);
-    bubble.setBubbleInfo(info);
-    return bubble;
-  }
-
-  @VisibleForTesting
-  public static void setBubbleFactory(@NonNull BubbleFactory bubbleFactory) {
-    Bubble.bubbleFactory = bubbleFactory;
-  }
-
-  @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
-  Bubble(@NonNull Context context) {
-    context = new ContextThemeWrapper(context, R.style.Theme_AppCompat);
-    this.context = context;
-    windowManager = context.getSystemService(WindowManager.class);
-
-    viewHolder = new ViewHolder(context);
-  }
-
-  /**
-   * Make the bubble visible. Will show a short entrance animation as it enters. If the bubble is
-   * already showing this method does nothing.
-   */
-  public void show() {
-    if (isShowing) {
-      return;
-    }
-
-    hideAfterText = false;
-
-    if (windowParams == null) {
-      // Apps targeting O+ must use TYPE_APPLICATION_OVERLAY, which is not available prior to O.
-      @SuppressWarnings("deprecation")
-      @SuppressLint("InlinedApi")
-      int type =
-          BuildCompat.isAtLeastO()
-              ? LayoutParams.TYPE_APPLICATION_OVERLAY
-              : LayoutParams.TYPE_PHONE;
-
-      windowParams =
-          new LayoutParams(
-              type,
-              LayoutParams.FLAG_NOT_TOUCH_MODAL
-                  | LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
-                  | LayoutParams.FLAG_NOT_FOCUSABLE,
-              PixelFormat.TRANSLUCENT);
-      windowParams.gravity = Gravity.TOP | Gravity.LEFT;
-      windowParams.x =
-          context.getResources().getDimensionPixelOffset(R.dimen.bubble_initial_offset_x);
-      windowParams.y =
-          context.getResources().getDimensionPixelOffset(R.dimen.bubble_initial_offset_y);
-      windowParams.height = LayoutParams.WRAP_CONTENT;
-      windowParams.width = LayoutParams.WRAP_CONTENT;
-    }
-
-    windowManager.addView(viewHolder.getRoot(), windowParams);
-    ObjectAnimator showAnimator =
-        ObjectAnimator.ofPropertyValuesHolder(
-            viewHolder.getPrimaryButton(),
-            PropertyValuesHolder.ofFloat(View.SCALE_X, 0, 1),
-            PropertyValuesHolder.ofFloat(View.SCALE_Y, 0, 1));
-    showAnimator.setInterpolator(new OvershootInterpolator());
-    showAnimator.start();
-    isShowing = true;
-  }
-
-  /**
-   * Hide the button if visible. Will run a short exit animation before hiding. If the bubble is
-   * currently showing text, will hide after the text is done displaying. If the bubble is not
-   * visible this method does nothing.
-   */
-  public void hide() {
-    if (!isShowing) {
-      return;
-    }
-
-    if (textShowing) {
-      hideAfterText = true;
-      return;
-    }
-
-    if (expanded) {
-      startCollapse(CollapseEnd.HIDE);
-      return;
-    }
-
-    viewHolder
-        .getPrimaryButton()
-        .animate()
-        .setInterpolator(new AnticipateInterpolator())
-        .scaleX(0)
-        .scaleY(0)
-        .withEndAction(
-            () -> {
-              windowManager.removeView(viewHolder.getRoot());
-              isShowing = false;
-            })
-        .start();
-  }
-
-  /** Returns whether the bubble is currently visible */
-  public boolean isShowing() {
-    return isShowing;
-  }
-
-  /**
-   * Set the info for this Bubble to display
-   *
-   * @param bubbleInfo the BubbleInfo to display in this Bubble.
-   */
-  public void setBubbleInfo(@NonNull BubbleInfo bubbleInfo) {
-    currentInfo = bubbleInfo;
-    update();
-  }
-
-  /**
-   * Update the state and behavior of actions.
-   *
-   * @param actions the new state of the bubble's actions
-   */
-  public void updateActions(@NonNull List<Action> actions) {
-    currentInfo = BubbleInfo.from(currentInfo).setActions(actions).build();
-    updateButtonStates();
-  }
-
-  /** Returns the currently displayed BubbleInfo */
-  public BubbleInfo getBubbleInfo() {
-    return currentInfo;
-  }
-
-  /**
-   * Display text in the main bubble. The bubble's drawer is not expandable while text is showing,
-   * and the drawer will be closed if already open.
-   *
-   * @param text the text to display to the user
-   */
-  public void showText(@NonNull CharSequence text) {
-    textShowing = true;
-    if (expanded) {
-      startCollapse(CollapseEnd.NOTHING);
-      doShowText(text);
-    } else {
-      // Need to transition from old bounds to new bounds manually
-      ChangeOnScreenBounds transition = new ChangeOnScreenBounds();
-      // Prepare and capture start values
-      TransitionValues startValues = new TransitionValues();
-      startValues.view = viewHolder.getPrimaryButton();
-      transition.addTarget(startValues.view);
-      transition.captureStartValues(startValues);
-
-      doResize(
-          () -> {
-            doShowText(text);
-            // Hide the text so we can animate it in
-            viewHolder.getPrimaryText().setAlpha(0);
-
-            ViewAnimator primaryButton = viewHolder.getPrimaryButton();
-            // Cancel the automatic transition scheduled in doShowText
-            TransitionManager.endTransitions((ViewGroup) primaryButton.getParent());
-            primaryButton
-                .getViewTreeObserver()
-                .addOnPreDrawListener(
-                    new OnPreDrawListener() {
-                      @Override
-                      public boolean onPreDraw() {
-                        primaryButton.getViewTreeObserver().removeOnPreDrawListener(this);
-
-                        // Prepare and capture end values
-                        TransitionValues endValues = new TransitionValues();
-                        endValues.view = primaryButton;
-                        transition.addTarget(endValues.view);
-                        transition.captureEndValues(endValues);
-
-                        // animate the primary button bounds change
-                        Animator bounds =
-                            transition.createAnimator(primaryButton, startValues, endValues);
-
-                        // Animate the text in
-                        Animator alpha =
-                            ObjectAnimator.ofFloat(viewHolder.getPrimaryText(), View.ALPHA, 1f);
-
-                        AnimatorSet set = new AnimatorSet();
-                        set.play(bounds).before(alpha);
-                        set.start();
-                        return false;
-                      }
-                    });
-          });
-    }
-    handler.removeCallbacks(null);
-    handler.postDelayed(
-        () -> {
-          textShowing = false;
-          if (hideAfterText) {
-            hide();
-          } else {
-            doResize(
-                () -> viewHolder.getPrimaryButton().setDisplayedChild(ViewHolder.CHILD_INDEX_ICON));
-          }
-        },
-        SHOW_TEXT_DURATION_MILLIS);
-  }
-
-  void onMoveStart() {
-    startCollapse(CollapseEnd.NOTHING);
-    viewHolder
-        .getPrimaryButton()
-        .animate()
-        .translationZ(
-            context.getResources().getDimensionPixelOffset(R.dimen.bubble_move_elevation_change));
-  }
-
-  void onMoveFinish() {
-    viewHolder.getPrimaryButton().animate().translationZ(0);
-  }
-
-  void primaryButtonClick() {
-    if (expanded || textShowing || currentInfo.getActions().isEmpty()) {
-      try {
-        currentInfo.getPrimaryAction().send();
-      } catch (CanceledException e) {
-        throw new RuntimeException(e);
-      }
-      return;
-    }
-
-    boolean onRight = (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT;
-    doResize(
-        () -> {
-          onLeftRightSwitch(onRight);
-          viewHolder.getExpandedView().setVisibility(View.VISIBLE);
-        });
-    View expandedView = viewHolder.getExpandedView();
-    expandedView
-        .getViewTreeObserver()
-        .addOnPreDrawListener(
-            new OnPreDrawListener() {
-              @Override
-              public boolean onPreDraw() {
-                expandedView.getViewTreeObserver().removeOnPreDrawListener(this);
-                expandedView.setTranslationX(
-                    onRight ? expandedView.getWidth() : -expandedView.getWidth());
-                expandedView
-                    .animate()
-                    .setInterpolator(new LinearOutSlowInInterpolator())
-                    .translationX(0);
-                return false;
-              }
-            });
-    setFocused(true);
-    expanded = true;
-  }
-
-  void onLeftRightSwitch(boolean onRight) {
-    viewHolder
-        .getRoot()
-        .setLayoutDirection(onRight ? View.LAYOUT_DIRECTION_RTL : View.LAYOUT_DIRECTION_LTR);
-    View primaryContainer = viewHolder.getRoot().findViewById(R.id.bubble_primary_container);
-    ViewGroup.LayoutParams layoutParams = primaryContainer.getLayoutParams();
-    ((FrameLayout.LayoutParams) layoutParams).gravity = onRight ? Gravity.RIGHT : Gravity.LEFT;
-    primaryContainer.setLayoutParams(layoutParams);
-
-    viewHolder
-        .getExpandedView()
-        .setBackgroundResource(
-            onRight
-                ? R.drawable.bubble_background_pill_rtl
-                : R.drawable.bubble_background_pill_ltr);
-  }
-
-  LayoutParams getWindowParams() {
-    return windowParams;
-  }
-
-  View getRootView() {
-    return viewHolder.getRoot();
-  }
-
-  private void update() {
-    RippleDrawable backgroundRipple =
-        (RippleDrawable)
-            context.getResources().getDrawable(R.drawable.bubble_ripple_circle, context.getTheme());
-    int primaryTint =
-        ColorUtils.compositeColors(
-            context.getColor(R.color.bubble_primary_background_darken),
-            currentInfo.getPrimaryColor());
-    backgroundRipple.getDrawable(0).setTint(primaryTint);
-    viewHolder.getPrimaryButton().setBackground(backgroundRipple);
-
-    setBackgroundDrawable(viewHolder.getFirstButton(), primaryTint);
-    setBackgroundDrawable(viewHolder.getSecondButton(), primaryTint);
-    setBackgroundDrawable(viewHolder.getThirdButton(), primaryTint);
-
-    int numButtons = currentInfo.getActions().size();
-    viewHolder.getThirdButton().setVisibility(numButtons < 3 ? View.GONE : View.VISIBLE);
-    viewHolder.getSecondButton().setVisibility(numButtons < 2 ? View.GONE : View.VISIBLE);
-
-    viewHolder.getPrimaryIcon().setImageIcon(currentInfo.getPrimaryIcon());
-
-    viewHolder
-        .getExpandedView()
-        .setBackgroundTintList(ColorStateList.valueOf(currentInfo.getPrimaryColor()));
-
-    updateButtonStates();
-  }
-
-  private void setBackgroundDrawable(CheckableImageButton view, @ColorInt int color) {
-    RippleDrawable itemRipple =
-        (RippleDrawable)
-            context
-                .getResources()
-                .getDrawable(R.drawable.bubble_ripple_checkable_circle, context.getTheme());
-    itemRipple.getDrawable(0).setTint(color);
-    view.setBackground(itemRipple);
-  }
-
-  private void updateButtonStates() {
-    int numButtons = currentInfo.getActions().size();
-
-    if (numButtons >= 1) {
-      configureButton(currentInfo.getActions().get(0), viewHolder.getFirstButton());
-      if (numButtons >= 2) {
-        configureButton(currentInfo.getActions().get(1), viewHolder.getSecondButton());
-        if (numButtons >= 3) {
-          configureButton(currentInfo.getActions().get(2), viewHolder.getThirdButton());
-        }
-      }
-    }
-  }
-
-  private void doShowText(@NonNull CharSequence text) {
-    TransitionManager.beginDelayedTransition((ViewGroup) viewHolder.getPrimaryButton().getParent());
-    viewHolder.getPrimaryText().setText(text);
-    viewHolder.getPrimaryButton().setDisplayedChild(ViewHolder.CHILD_INDEX_TEXT);
-  }
-
-  private void configureButton(Action action, CheckableImageButton button) {
-    action
-        .getIcon()
-        .loadDrawableAsync(
-            context,
-            d -> {
-              button.setImageIcon(action.getIcon());
-              button.setContentDescription(action.getName());
-              button.setChecked(action.isChecked());
-              button.setEnabled(action.isEnabled());
-            },
-            handler);
-    button.setOnClickListener(v -> doAction(action));
-  }
-
-  private void doAction(Action action) {
-    try {
-      action.getAction().send();
-    } catch (CanceledException e) {
-      throw new RuntimeException(e);
-    }
-  }
-
-  private void doResize(@Nullable Runnable operation) {
-    // If we're resizing on the right side of the screen, there is an implicit move operation
-    // necessary. The WindowManager does not sync the move and resize operations, so serious jank
-    // would occur. To fix this, instead of resizing the window, we create a new one and destroy
-    // the old one. There is a short delay before destroying the old view to ensure the new one has
-    // had time to draw.
-    boolean onRight = (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT;
-    ViewHolder oldViewHolder = viewHolder;
-    if (onRight) {
-      viewHolder = new ViewHolder(oldViewHolder.getRoot().getContext());
-      update();
-      viewHolder
-          .getPrimaryButton()
-          .setDisplayedChild(oldViewHolder.getPrimaryButton().getDisplayedChild());
-      viewHolder.getPrimaryText().setText(oldViewHolder.getPrimaryText().getText());
-    }
-
-    if (operation != null) {
-      operation.run();
-    }
-
-    if (onRight) {
-      swapViewHolders(oldViewHolder);
-    }
-  }
-
-  private void swapViewHolders(ViewHolder oldViewHolder) {
-    ViewGroup root = viewHolder.getRoot();
-    windowManager.addView(root, windowParams);
-    root.getViewTreeObserver()
-        .addOnPreDrawListener(
-            new OnPreDrawListener() {
-              @Override
-              public boolean onPreDraw() {
-                root.getViewTreeObserver().removeOnPreDrawListener(this);
-                // Wait a bit before removing the old view; make sure the new one has drawn over it.
-                handler.postDelayed(
-                    () -> windowManager.removeView(oldViewHolder.getRoot()),
-                    WINDOW_REDRAW_DELAY_MILLIS);
-                return true;
-              }
-            });
-  }
-
-  private ViewPropertyAnimator startCollapse(@CollapseEnd int collapseEndAction) {
-    setFocused(false);
-    boolean onRight = (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT;
-    View expandedView = viewHolder.getExpandedView();
-    return expandedView
-        .animate()
-        .translationX(onRight ? expandedView.getWidth() : -expandedView.getWidth())
-        .setInterpolator(new FastOutLinearInInterpolator())
-        .withEndAction(
-            () -> {
-              expanded = false;
-              if (collapseEndAction == CollapseEnd.HIDE) {
-                hide();
-              } else if (!textShowing) {
-                // Don't swap the window while the user is moving it, even if we're on the right.
-                // The movement will help hide the jank of the resize.
-                boolean swapWindow = onRight && !viewHolder.isMoving();
-                if (swapWindow) {
-                  // We don't actually need to set the drawer to GONE since in the new window it
-                  // will already be GONE. Just do the resize operation.
-                  doResize(null);
-                } else {
-                  expandedView.setVisibility(View.GONE);
-                }
-              }
-            });
-  }
-
-  private void setFocused(boolean focused) {
-    if (focused) {
-      windowParams.flags &= ~LayoutParams.FLAG_NOT_FOCUSABLE;
-    } else {
-      windowParams.flags |= LayoutParams.FLAG_NOT_FOCUSABLE;
-    }
-    windowManager.updateViewLayout(getRootView(), windowParams);
-  }
-
-  private class ViewHolder {
-
-    public static final int CHILD_INDEX_ICON = 0;
-    public static final int CHILD_INDEX_TEXT = 1;
-
-    private final MoveHandler moveHandler;
-    private final WindowRoot root;
-    private final ViewAnimator primaryButton;
-    private final ImageView primaryIcon;
-    private final TextView primaryText;
-
-    private final CheckableImageButton firstButton;
-    private final CheckableImageButton secondButton;
-    private final CheckableImageButton thirdButton;
-    private final View expandedView;
-
-    public ViewHolder(Context context) {
-      // Window root is not in the layout file so that the inflater has a view to inflate into
-      this.root = new WindowRoot(context);
-      LayoutInflater inflater = LayoutInflater.from(root.getContext());
-      View contentView = inflater.inflate(R.layout.bubble_base, root, true);
-      expandedView = contentView.findViewById(R.id.bubble_expanded_layout);
-      primaryButton = contentView.findViewById(R.id.bubble_button_primary);
-      primaryIcon = contentView.findViewById(R.id.bubble_icon_primary);
-      primaryText = contentView.findViewById(R.id.bubble_text);
-
-      firstButton = contentView.findViewById(R.id.bubble_icon_first);
-      secondButton = contentView.findViewById(R.id.bubble_icon_second);
-      thirdButton = contentView.findViewById(R.id.bubble_icon_third);
-
-      root.setOnBackPressedListener(
-          () -> {
-            if (isShowing && expanded) {
-              startCollapse(CollapseEnd.NOTHING);
-              return true;
-            }
-            return false;
-          });
-      root.setOnTouchListener(
-          (v, event) -> {
-            if (expanded && event.getActionMasked() == MotionEvent.ACTION_OUTSIDE) {
-              startCollapse(CollapseEnd.NOTHING);
-              return true;
-            }
-            return false;
-          });
-      moveHandler = new MoveHandler(primaryButton, Bubble.this);
-    }
-
-    public ViewGroup getRoot() {
-      return root;
-    }
-
-    public ViewAnimator getPrimaryButton() {
-      return primaryButton;
-    }
-
-    public ImageView getPrimaryIcon() {
-      return primaryIcon;
-    }
-
-    public TextView getPrimaryText() {
-      return primaryText;
-    }
-
-    public CheckableImageButton getFirstButton() {
-      return firstButton;
-    }
-
-    public CheckableImageButton getSecondButton() {
-      return secondButton;
-    }
-
-    public CheckableImageButton getThirdButton() {
-      return thirdButton;
-    }
-
-    public View getExpandedView() {
-      return expandedView;
-    }
-
-    public boolean isMoving() {
-      return moveHandler.isMoving();
-    }
-  }
-}
diff --git a/java/com/android/dialershared/bubble/BubbleInfo.java b/java/com/android/dialershared/bubble/BubbleInfo.java
deleted file mode 100644
index 52417ae..0000000
--- a/java/com/android/dialershared/bubble/BubbleInfo.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialershared.bubble;
-
-import android.app.PendingIntent;
-import android.graphics.drawable.Icon;
-import android.support.annotation.ColorInt;
-import android.support.annotation.NonNull;
-import com.google.auto.value.AutoValue;
-import java.util.Collections;
-import java.util.List;
-
-/** Info for displaying a {@link Bubble} */
-@AutoValue
-public abstract class BubbleInfo {
-  @ColorInt
-  public abstract int getPrimaryColor();
-
-  @NonNull
-  public abstract Icon getPrimaryIcon();
-
-  @NonNull
-  public abstract PendingIntent getPrimaryAction();
-
-  @NonNull
-  public abstract List<Action> getActions();
-
-  public static Builder builder() {
-    return new AutoValue_BubbleInfo.Builder().setActions(Collections.emptyList());
-  }
-
-  public static Builder from(@NonNull BubbleInfo bubbleInfo) {
-    return builder()
-        .setPrimaryAction(bubbleInfo.getPrimaryAction())
-        .setPrimaryColor(bubbleInfo.getPrimaryColor())
-        .setPrimaryIcon(bubbleInfo.getPrimaryIcon())
-        .setActions(bubbleInfo.getActions());
-  }
-
-  /** Builder for {@link BubbleInfo} */
-  @AutoValue.Builder
-  public abstract static class Builder {
-
-    public abstract Builder setPrimaryColor(@ColorInt int primaryColor);
-
-    public abstract Builder setPrimaryIcon(@NonNull Icon primaryIcon);
-
-    public abstract Builder setPrimaryAction(@NonNull PendingIntent primaryAction);
-
-    public abstract Builder setActions(List<Action> actions);
-
-    public abstract BubbleInfo build();
-  }
-
-  /** Represents actions to be shown in the bubble when expanded */
-  @AutoValue
-  public abstract static class Action {
-
-    @NonNull
-    public abstract Icon getIcon();
-
-    @NonNull
-    public abstract CharSequence getName();
-
-    @NonNull
-    public abstract PendingIntent getAction();
-
-    public abstract boolean isEnabled();
-
-    public abstract boolean isChecked();
-
-    public static Builder builder() {
-      return new AutoValue_BubbleInfo_Action.Builder().setEnabled(true).setChecked(false);
-    }
-
-    public static Builder from(@NonNull Action action) {
-      return builder()
-          .setAction(action.getAction())
-          .setChecked(action.isChecked())
-          .setEnabled(action.isEnabled())
-          .setName(action.getName())
-          .setIcon(action.getIcon());
-    }
-
-    /** Builder for {@link Action} */
-    @AutoValue.Builder
-    public abstract static class Builder {
-
-      public abstract Builder setIcon(@NonNull Icon icon);
-
-      public abstract Builder setName(@NonNull CharSequence name);
-
-      public abstract Builder setAction(@NonNull PendingIntent action);
-
-      public abstract Builder setEnabled(boolean enabled);
-
-      public abstract Builder setChecked(boolean checked);
-
-      public abstract Action build();
-    }
-  }
-}
diff --git a/java/com/android/dialershared/bubble/ChangeOnScreenBounds.java b/java/com/android/dialershared/bubble/ChangeOnScreenBounds.java
deleted file mode 100644
index 4da6a35..0000000
--- a/java/com/android/dialershared/bubble/ChangeOnScreenBounds.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialershared.bubble;
-
-import android.animation.Animator;
-import android.animation.AnimatorSet;
-import android.animation.ObjectAnimator;
-import android.graphics.Path;
-import android.graphics.PointF;
-import android.graphics.Rect;
-import android.transition.Transition;
-import android.transition.TransitionValues;
-import android.util.Property;
-import android.view.View;
-import android.view.ViewGroup;
-
-/** Similar to {@link android.transition.ChangeBounds ChangeBounds} but works across windows */
-public class ChangeOnScreenBounds extends Transition {
-
-  private static final String PROPNAME_BOUNDS = "bubble:changeScreenBounds:bounds";
-  private static final String PROPNAME_SCREEN_X = "bubble:changeScreenBounds:screenX";
-  private static final String PROPNAME_SCREEN_Y = "bubble:changeScreenBounds:screenY";
-
-  private static final Property<ViewBounds, PointF> TOP_LEFT_PROPERTY =
-      new Property<ViewBounds, PointF>(PointF.class, "topLeft") {
-        @Override
-        public void set(ViewBounds viewBounds, PointF topLeft) {
-          viewBounds.setTopLeft(topLeft);
-        }
-
-        @Override
-        public PointF get(ViewBounds viewBounds) {
-          return null;
-        }
-      };
-
-  private static final Property<ViewBounds, PointF> BOTTOM_RIGHT_PROPERTY =
-      new Property<ViewBounds, PointF>(PointF.class, "bottomRight") {
-        @Override
-        public void set(ViewBounds viewBounds, PointF bottomRight) {
-          viewBounds.setBottomRight(bottomRight);
-        }
-
-        @Override
-        public PointF get(ViewBounds viewBounds) {
-          return null;
-        }
-      };
-  private final int[] tempLocation = new int[2];
-
-  @Override
-  public void captureStartValues(TransitionValues transitionValues) {
-    captureValues(transitionValues);
-  }
-
-  @Override
-  public void captureEndValues(TransitionValues transitionValues) {
-    captureValues(transitionValues);
-  }
-
-  private void captureValues(TransitionValues values) {
-    View view = values.view;
-
-    if (view.isLaidOut() || view.getWidth() != 0 || view.getHeight() != 0) {
-      values.values.put(
-          PROPNAME_BOUNDS,
-          new Rect(view.getLeft(), view.getTop(), view.getRight(), view.getBottom()));
-      values.view.getLocationOnScreen(tempLocation);
-      values.values.put(PROPNAME_SCREEN_X, tempLocation[0]);
-      values.values.put(PROPNAME_SCREEN_Y, tempLocation[1]);
-    }
-  }
-
-  @Override
-  public Animator createAnimator(
-      ViewGroup sceneRoot, TransitionValues startValues, TransitionValues endValues) {
-    Rect startBounds = (Rect) startValues.values.get(PROPNAME_BOUNDS);
-
-    // Offset the startBounds by the difference in screen position
-    int startScreenX = (Integer) startValues.values.get(PROPNAME_SCREEN_X);
-    int startScreenY = (Integer) startValues.values.get(PROPNAME_SCREEN_Y);
-    int endScreenX = (Integer) endValues.values.get(PROPNAME_SCREEN_X);
-    int endScreenY = (Integer) endValues.values.get(PROPNAME_SCREEN_Y);
-    startBounds.offset(startScreenX - endScreenX, startScreenY - endScreenY);
-
-    Rect endBounds = (Rect) endValues.values.get(PROPNAME_BOUNDS);
-    final int startLeft = startBounds.left;
-    final int endLeft = endBounds.left;
-    final int startTop = startBounds.top;
-    final int endTop = endBounds.top;
-    final int startRight = startBounds.right;
-    final int endRight = endBounds.right;
-    final int startBottom = startBounds.bottom;
-    final int endBottom = endBounds.bottom;
-    ViewBounds viewBounds = new ViewBounds(endValues.view);
-    viewBounds.setTopLeft(new PointF(startLeft, startTop));
-    viewBounds.setBottomRight(new PointF(startRight, startBottom));
-
-    // Animate the top left and bottom right corners along a path
-    Path topLeftPath = getPathMotion().getPath(startLeft, startTop, endLeft, endTop);
-    ObjectAnimator topLeftAnimator =
-        ObjectAnimator.ofObject(viewBounds, TOP_LEFT_PROPERTY, null, topLeftPath);
-
-    Path bottomRightPath = getPathMotion().getPath(startRight, startBottom, endRight, endBottom);
-    ObjectAnimator bottomRightAnimator =
-        ObjectAnimator.ofObject(viewBounds, BOTTOM_RIGHT_PROPERTY, null, bottomRightPath);
-    AnimatorSet set = new AnimatorSet();
-    set.playTogether(topLeftAnimator, bottomRightAnimator);
-    return set;
-  }
-
-  private static class ViewBounds {
-    private int left;
-    private int top;
-    private int right;
-    private int bottom;
-    private final View view;
-    private int topLeftCalls;
-    private int bottomRightCalls;
-
-    public ViewBounds(View view) {
-      this.view = view;
-    }
-
-    public void setTopLeft(PointF topLeft) {
-      left = Math.round(topLeft.x);
-      top = Math.round(topLeft.y);
-      topLeftCalls++;
-      if (topLeftCalls == bottomRightCalls) {
-        updateLeftTopRightBottom();
-      }
-    }
-
-    public void setBottomRight(PointF bottomRight) {
-      right = Math.round(bottomRight.x);
-      bottom = Math.round(bottomRight.y);
-      bottomRightCalls++;
-      if (topLeftCalls == bottomRightCalls) {
-        updateLeftTopRightBottom();
-      }
-    }
-
-    private void updateLeftTopRightBottom() {
-      view.setLeft(left);
-      view.setTop(top);
-      view.setRight(right);
-      view.setBottom(bottom);
-      topLeftCalls = 0;
-      bottomRightCalls = 0;
-    }
-  }
-}
diff --git a/java/com/android/dialershared/bubble/CheckableImageButton.java b/java/com/android/dialershared/bubble/CheckableImageButton.java
deleted file mode 100644
index 7a5a432..0000000
--- a/java/com/android/dialershared/bubble/CheckableImageButton.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialershared.bubble;
-
-import android.content.Context;
-import android.support.v4.view.AccessibilityDelegateCompat;
-import android.support.v4.view.ViewCompat;
-import android.support.v4.view.accessibility.AccessibilityEventCompat;
-import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
-import android.support.v7.widget.AppCompatImageButton;
-import android.util.AttributeSet;
-import android.view.View;
-import android.view.accessibility.AccessibilityEvent;
-import android.widget.Checkable;
-
-/**
- * An {@link android.widget.ImageButton ImageButton} that implements {@link Checkable} and
- * propagates the checkable state
- */
-public class CheckableImageButton extends AppCompatImageButton implements Checkable {
-
-  // Copied without modification from AppCompat library
-
-  private static final int[] DRAWABLE_STATE_CHECKED = new int[] {android.R.attr.state_checked};
-
-  private boolean mChecked;
-
-  public CheckableImageButton(Context context) {
-    this(context, null);
-  }
-
-  public CheckableImageButton(Context context, AttributeSet attrs) {
-    this(context, attrs, android.R.attr.imageButtonStyle);
-  }
-
-  public CheckableImageButton(Context context, AttributeSet attrs, int defStyleAttr) {
-    super(context, attrs, defStyleAttr);
-
-    ViewCompat.setAccessibilityDelegate(
-        this,
-        new AccessibilityDelegateCompat() {
-          @Override
-          public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) {
-            super.onInitializeAccessibilityEvent(host, event);
-            event.setChecked(isChecked());
-          }
-
-          @Override
-          public void onInitializeAccessibilityNodeInfo(
-              View host, AccessibilityNodeInfoCompat info) {
-            super.onInitializeAccessibilityNodeInfo(host, info);
-            info.setCheckable(true);
-            info.setChecked(isChecked());
-          }
-        });
-  }
-
-  @Override
-  public void setChecked(boolean checked) {
-    if (mChecked != checked) {
-      mChecked = checked;
-      refreshDrawableState();
-      sendAccessibilityEvent(AccessibilityEventCompat.TYPE_WINDOW_CONTENT_CHANGED);
-    }
-  }
-
-  @Override
-  public boolean isChecked() {
-    return mChecked;
-  }
-
-  @Override
-  public void toggle() {
-    setChecked(!mChecked);
-  }
-
-  @Override
-  public int[] onCreateDrawableState(int extraSpace) {
-    if (mChecked) {
-      return mergeDrawableStates(
-          super.onCreateDrawableState(extraSpace + DRAWABLE_STATE_CHECKED.length),
-          DRAWABLE_STATE_CHECKED);
-    } else {
-      return super.onCreateDrawableState(extraSpace);
-    }
-  }
-}
diff --git a/java/com/android/dialershared/bubble/MoveHandler.java b/java/com/android/dialershared/bubble/MoveHandler.java
deleted file mode 100644
index 8a21cd7..0000000
--- a/java/com/android/dialershared/bubble/MoveHandler.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialershared.bubble;
-
-import android.content.Context;
-import android.graphics.Point;
-import android.support.animation.FloatPropertyCompat;
-import android.support.animation.SpringAnimation;
-import android.support.animation.SpringForce;
-import android.support.annotation.NonNull;
-import android.support.v4.math.MathUtils;
-import android.view.Gravity;
-import android.view.MotionEvent;
-import android.view.VelocityTracker;
-import android.view.View;
-import android.view.View.OnTouchListener;
-import android.view.ViewConfiguration;
-import android.view.WindowManager;
-import android.view.WindowManager.LayoutParams;
-import android.widget.Scroller;
-
-/** Handles touches and manages moving the bubble in response */
-class MoveHandler implements OnTouchListener {
-
-  // Amount the ViewConfiguration's minFlingVelocity will be scaled by for our own minVelocity
-  private static final int MIN_FLING_VELOCITY_FACTOR = 8;
-  // The friction multiplier to control how slippery the bubble is when flung
-  private static final float SCROLL_FRICTION_MULTIPLIER = 8f;
-
-  private final Context context;
-  private final WindowManager windowManager;
-  private final Bubble bubble;
-  private final int minX;
-  private final int minY;
-  private final int maxX;
-  private final int maxY;
-  private final int bubbleSize;
-  private final int shadowPaddingSize;
-  private final float touchSlopSquared;
-
-  private boolean isMoving;
-  private float firstX;
-  private float firstY;
-
-  private SpringAnimation moveXAnimation;
-  private SpringAnimation moveYAnimation;
-  private VelocityTracker velocityTracker;
-  private Scroller scroller;
-
-  // Handles the left/right gravity conversion and centering
-  private final FloatPropertyCompat<WindowManager.LayoutParams> xProperty =
-      new FloatPropertyCompat<LayoutParams>("xProperty") {
-        @Override
-        public float getValue(LayoutParams windowParams) {
-          int realX = windowParams.x;
-          realX = realX + bubbleSize / 2;
-          realX = realX + shadowPaddingSize;
-          if (relativeToRight(windowParams)) {
-            int displayWidth = context.getResources().getDisplayMetrics().widthPixels;
-            realX = displayWidth - realX;
-          }
-          return MathUtils.clamp(realX, minX, maxX);
-        }
-
-        @Override
-        public void setValue(LayoutParams windowParams, float value) {
-          int displayWidth = context.getResources().getDisplayMetrics().widthPixels;
-          boolean onRight = value > displayWidth / 2;
-          int centeringOffset = bubbleSize / 2 + shadowPaddingSize;
-          windowParams.x =
-              (int) (onRight ? (displayWidth - value - centeringOffset) : value - centeringOffset);
-          windowParams.gravity = Gravity.TOP | (onRight ? Gravity.RIGHT : Gravity.LEFT);
-          if (bubble.isShowing()) {
-            windowManager.updateViewLayout(bubble.getRootView(), windowParams);
-          }
-        }
-      };
-
-  private final FloatPropertyCompat<WindowManager.LayoutParams> yProperty =
-      new FloatPropertyCompat<LayoutParams>("yProperty") {
-        @Override
-        public float getValue(LayoutParams object) {
-          return MathUtils.clamp(object.y + bubbleSize + shadowPaddingSize, minY, maxY);
-        }
-
-        @Override
-        public void setValue(LayoutParams object, float value) {
-          object.y = (int) value - bubbleSize - shadowPaddingSize;
-          if (bubble.isShowing()) {
-            windowManager.updateViewLayout(bubble.getRootView(), object);
-          }
-        }
-      };
-
-  public MoveHandler(@NonNull View targetView, @NonNull Bubble bubble) {
-    this.bubble = bubble;
-    context = targetView.getContext();
-    windowManager = context.getSystemService(WindowManager.class);
-
-    bubbleSize = context.getResources().getDimensionPixelSize(R.dimen.bubble_size);
-    shadowPaddingSize =
-        context.getResources().getDimensionPixelOffset(R.dimen.bubble_shadow_padding_size);
-    minX =
-        context.getResources().getDimensionPixelOffset(R.dimen.bubble_safe_margin_x)
-            + bubbleSize / 2;
-    minY =
-        context.getResources().getDimensionPixelOffset(R.dimen.bubble_safe_margin_y)
-            + bubbleSize / 2;
-    maxX = context.getResources().getDisplayMetrics().widthPixels - minX;
-    maxY = context.getResources().getDisplayMetrics().heightPixels - minY;
-
-    // Squared because it will be compared against the square of the touch delta. This is more
-    // efficient than needing to take a square root.
-    touchSlopSquared = (float) Math.pow(ViewConfiguration.get(context).getScaledTouchSlop(), 2);
-
-    targetView.setOnTouchListener(this);
-  }
-
-  public boolean isMoving() {
-    return isMoving;
-  }
-
-  @Override
-  public boolean onTouch(View v, MotionEvent event) {
-    float eventX = event.getRawX();
-    float eventY = event.getRawY();
-    switch (event.getActionMasked()) {
-      case MotionEvent.ACTION_DOWN:
-        firstX = eventX;
-        firstY = eventY;
-        velocityTracker = VelocityTracker.obtain();
-        break;
-      case MotionEvent.ACTION_MOVE:
-        if (isMoving || hasExceededTouchSlop(event)) {
-          if (!isMoving) {
-            isMoving = true;
-            bubble.onMoveStart();
-          }
-
-          if (moveXAnimation == null) {
-            moveXAnimation = new SpringAnimation(bubble.getWindowParams(), xProperty);
-            moveXAnimation.setSpring(new SpringForce());
-            moveXAnimation.getSpring().setDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY);
-          }
-          if (moveYAnimation == null) {
-            moveYAnimation = new SpringAnimation(bubble.getWindowParams(), yProperty);
-            moveYAnimation.setSpring(new SpringForce());
-            moveYAnimation.getSpring().setDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY);
-          }
-
-          moveXAnimation.animateToFinalPosition(MathUtils.clamp(eventX, minX, maxX));
-          moveYAnimation.animateToFinalPosition(MathUtils.clamp(eventY, minY, maxY));
-        }
-
-        velocityTracker.addMovement(event);
-        break;
-      case MotionEvent.ACTION_UP:
-        if (isMoving) {
-          ViewConfiguration viewConfiguration = ViewConfiguration.get(context);
-          velocityTracker.computeCurrentVelocity(
-              1000, viewConfiguration.getScaledMaximumFlingVelocity());
-          float xVelocity = velocityTracker.getXVelocity();
-          float yVelocity = velocityTracker.getYVelocity();
-          boolean isFling = isFling(xVelocity, yVelocity);
-
-          if (isFling) {
-            Point target =
-                findTarget(
-                    xVelocity,
-                    yVelocity,
-                    (int) xProperty.getValue(bubble.getWindowParams()),
-                    (int) yProperty.getValue(bubble.getWindowParams()));
-
-            moveXAnimation.animateToFinalPosition(target.x);
-            moveYAnimation.animateToFinalPosition(target.y);
-          } else {
-            snapX();
-          }
-
-          bubble.onMoveFinish();
-        } else {
-          v.performClick();
-          bubble.primaryButtonClick();
-        }
-        isMoving = false;
-        break;
-    }
-    return true;
-  }
-
-  private Point findTarget(float xVelocity, float yVelocity, int startX, int startY) {
-    if (scroller == null) {
-      scroller = new Scroller(context);
-      scroller.setFriction(ViewConfiguration.getScrollFriction() * SCROLL_FRICTION_MULTIPLIER);
-    }
-
-    // Find where a fling would end vertically
-    scroller.fling(startX, startY, (int) xVelocity, (int) yVelocity, minX, maxX, minY, maxY);
-    int targetY = scroller.getFinalY();
-    scroller.abortAnimation();
-
-    // If the x component of the velocity is above the minimum fling velocity, use velocity to
-    // determine edge. Otherwise use its starting position
-    boolean pullRight = isFling(xVelocity, 0) ? xVelocity > 0 : isOnRightHalf(startX);
-    return new Point(pullRight ? maxX : minX, targetY);
-  }
-
-  private boolean isFling(float xVelocity, float yVelocity) {
-    int minFlingVelocity =
-        ViewConfiguration.get(context).getScaledMinimumFlingVelocity() * MIN_FLING_VELOCITY_FACTOR;
-    return getMagnitudeSquared(xVelocity, yVelocity) > minFlingVelocity * minFlingVelocity;
-  }
-
-  private boolean isOnRightHalf(float currentX) {
-    return currentX > (minX + maxX) / 2;
-  }
-
-  private void snapX() {
-    // Check if x value is closer to min or max
-    boolean pullRight = isOnRightHalf(xProperty.getValue(bubble.getWindowParams()));
-    moveXAnimation.animateToFinalPosition(pullRight ? maxX : minX);
-  }
-
-  private boolean relativeToRight(LayoutParams windowParams) {
-    return (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT;
-  }
-
-  private boolean hasExceededTouchSlop(MotionEvent event) {
-    return getMagnitudeSquared(event.getRawX() - firstX, event.getRawY() - firstY)
-        > touchSlopSquared;
-  }
-
-  private float getMagnitudeSquared(float deltaX, float deltaY) {
-    return deltaX * deltaX + deltaY * deltaY;
-  }
-}
diff --git a/java/com/android/dialershared/bubble/WindowRoot.java b/java/com/android/dialershared/bubble/WindowRoot.java
deleted file mode 100644
index 2c17666..0000000
--- a/java/com/android/dialershared/bubble/WindowRoot.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialershared.bubble;
-
-import android.content.Context;
-import android.support.annotation.NonNull;
-import android.view.KeyEvent;
-import android.widget.FrameLayout;
-
-/**
- * ViewGroup that handles some overlay window concerns. Allows back button events to be listened for
- * via an interface.
- */
-public class WindowRoot extends FrameLayout {
-
-  private OnBackPressedListener backPressedListener;
-
-  /** Callback for when the back button is pressed while this window is in focus */
-  public interface OnBackPressedListener {
-    boolean onBackPressed();
-  }
-
-  public WindowRoot(@NonNull Context context) {
-    super(context);
-  }
-
-  public void setOnBackPressedListener(OnBackPressedListener listener) {
-    backPressedListener = listener;
-  }
-
-  @Override
-  public boolean dispatchKeyEvent(KeyEvent event) {
-    if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && backPressedListener != null) {
-      if (event.getAction() == KeyEvent.ACTION_UP) {
-        return backPressedListener.onBackPressed();
-      }
-      return true;
-    }
-    return super.dispatchKeyEvent(event);
-  }
-}
diff --git a/java/com/android/dialershared/bubble/res/color/bubble_checkable_mask.xml b/java/com/android/dialershared/bubble/res/color/bubble_checkable_mask.xml
deleted file mode 100644
index f9416ab..0000000
--- a/java/com/android/dialershared/bubble/res/color/bubble_checkable_mask.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-  <item android:color="@android:color/white" android:state_checked="true"/>
-  <item android:color="@android:color/transparent"/>
-</selector>
diff --git a/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_ltr.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_ltr.xml
deleted file mode 100644
index 77c813a..0000000
--- a/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_ltr.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<shape xmlns:android="http://schemas.android.com/apk/res/android">
-  <corners
-      android:bottomRightRadius="@dimen/bubble_size"
-      android:topRightRadius="@dimen/bubble_size"/>
-  <solid android:color="@android:color/white"/>
-</shape>
diff --git a/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml
deleted file mode 100644
index 9e25421..0000000
--- a/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<shape xmlns:android="http://schemas.android.com/apk/res/android">
-  <corners
-      android:bottomLeftRadius="@dimen/bubble_size"
-      android:topLeftRadius="@dimen/bubble_size"/>
-  <solid android:color="@android:color/white"/>
-</shape>
diff --git a/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml
deleted file mode 100644
index 85e0b24..0000000
--- a/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<ripple xmlns:android="http://schemas.android.com/apk/res/android"
-    android:color="?android:colorControlHighlight">
-  <item>
-    <shape android:shape="oval">
-      <solid android:color="@color/bubble_checkable_mask"/>
-    </shape>
-  </item>
-  <item android:id="@android:id/mask">
-    <shape android:shape="oval">
-      <solid android:color="@android:color/white"/>
-    </shape>
-  </item>
-</ripple>
diff --git a/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_circle.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_circle.xml
deleted file mode 100644
index 8d5cf0b..0000000
--- a/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_circle.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<ripple xmlns:android="http://schemas.android.com/apk/res/android"
-    android:color="?android:colorControlHighlight">
-  <item>
-    <shape>
-      <corners android:radius="@dimen/bubble_size"/>
-      <solid android:color="@android:color/white"/>
-    </shape>
-  </item>
-</ripple>
diff --git a/java/com/android/dialershared/bubble/res/layout/bubble_base.xml b/java/com/android/dialershared/bubble/res/layout/bubble_base.xml
deleted file mode 100644
index 3acd2af..0000000
--- a/java/com/android/dialershared/bubble/res/layout/bubble_base.xml
+++ /dev/null
@@ -1,116 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    tools:theme="@style/Theme.AppCompat">
-  <FrameLayout
-      android:layout_width="wrap_content"
-      android:layout_height="wrap_content"
-      android:layout_marginStart="48dp"
-      android:paddingTop="@dimen/bubble_shadow_padding_size"
-      android:paddingBottom="@dimen/bubble_shadow_padding_size"
-      android:paddingEnd="@dimen/bubble_shadow_padding_size"
-      android:background="@android:color/transparent">
-
-    <LinearLayout
-        android:id="@+id/bubble_expanded_layout"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:paddingStart="32dp"
-        android:paddingEnd="12dp"
-        android:background="@drawable/bubble_background_pill_ltr"
-        android:elevation="2dp"
-        android:layoutDirection="inherit"
-        android:orientation="horizontal"
-        android:visibility="gone"
-        tools:backgroundTint="#FF0000FF"
-        tools:visibility="visible">
-      <com.android.dialershared.bubble.CheckableImageButton
-          android:id="@+id/bubble_icon_first"
-          android:layout_width="@dimen/bubble_size"
-          android:layout_height="@dimen/bubble_size"
-          android:layout_marginStart="4dp"
-          android:padding="@dimen/bubble_icon_padding"
-          android:tint="@color/bubble_icon_tint_states"
-          android:tintMode="src_in"
-          tools:background="@drawable/bubble_ripple_checkable_circle"
-          tools:src="@android:drawable/ic_lock_idle_lock"/>
-      <com.android.dialershared.bubble.CheckableImageButton
-          android:id="@+id/bubble_icon_second"
-          android:layout_width="@dimen/bubble_size"
-          android:layout_height="@dimen/bubble_size"
-          android:layout_marginStart="4dp"
-          android:padding="@dimen/bubble_icon_padding"
-          android:tint="@color/bubble_icon_tint_states"
-          android:tintMode="src_in"
-          tools:background="@drawable/bubble_ripple_checkable_circle"
-          tools:src="@android:drawable/ic_input_add"/>
-      <com.android.dialershared.bubble.CheckableImageButton
-          android:id="@+id/bubble_icon_third"
-          android:layout_width="@dimen/bubble_size"
-          android:layout_height="@dimen/bubble_size"
-          android:layout_marginStart="4dp"
-          android:padding="@dimen/bubble_icon_padding"
-          android:tint="@color/bubble_icon_tint_states"
-          android:tintMode="src_in"
-          tools:background="@drawable/bubble_ripple_checkable_circle"
-          tools:src="@android:drawable/ic_menu_call"/>
-    </LinearLayout>
-  </FrameLayout>
-  <FrameLayout
-      android:id="@+id/bubble_primary_container"
-      android:layout_width="wrap_content"
-      android:layout_height="wrap_content"
-      android:layout_gravity="start"
-      android:animateLayoutChanges="true"
-      android:background="@android:color/transparent"
-      android:clipChildren="false"
-      android:clipToPadding="false">
-    <ViewAnimator
-        android:id="@+id/bubble_button_primary"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_margin="@dimen/bubble_shadow_padding_size"
-        android:background="@drawable/bubble_ripple_circle"
-        android:elevation="6dp"
-        android:measureAllChildren="false"
-        tools:backgroundTint="#FF0000AA">
-      <ImageView
-          android:id="@+id/bubble_icon_primary"
-          android:layout_width="@dimen/bubble_size"
-          android:layout_height="@dimen/bubble_size"
-          android:padding="@dimen/bubble_icon_padding"
-          android:tint="@android:color/white"
-          android:tintMode="src_in"
-          tools:src="@android:drawable/ic_btn_speak_now"/>
-      <TextView
-          android:id="@+id/bubble_text"
-          android:layout_width="wrap_content"
-          android:layout_height="@dimen/bubble_size"
-          android:paddingStart="@dimen/bubble_icon_padding"
-          android:paddingEnd="@dimen/bubble_icon_padding"
-          android:gravity="center"
-          android:minWidth="@dimen/bubble_size"
-          android:textAppearance="@style/TextAppearance.AppCompat"
-          tools:text="Call ended"/>
-    </ViewAnimator>
-  </FrameLayout>
-
-</FrameLayout>
diff --git a/java/com/android/dialershared/bubble/res/values/colors.xml b/java/com/android/dialershared/bubble/res/values/colors.xml
deleted file mode 100644
index 97545fa..0000000
--- a/java/com/android/dialershared/bubble/res/values/colors.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<resources>
-  <color name="bubble_primary_background_darken">#33000000</color>
-</resources>
diff --git a/java/com/android/dialershared/bubble/res/values/values.xml b/java/com/android/dialershared/bubble/res/values/values.xml
deleted file mode 100644
index 5b85e0d..0000000
--- a/java/com/android/dialershared/bubble/res/values/values.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<resources>
-  <dimen name="bubble_safe_margin_x">0dp</dimen>
-  <dimen name="bubble_safe_margin_y">0dp</dimen>
-  <dimen name="bubble_initial_offset_x">0dp</dimen>
-  <dimen name="bubble_initial_offset_y">120dp</dimen>
-  <dimen name="bubble_size">64dp</dimen>
-  <dimen name="bubble_icon_padding">20dp</dimen>
-  <dimen name="bubble_move_elevation_change">4dp</dimen>
-  <dimen name="bubble_shadow_padding_size">16dp</dimen>
-</resources>
diff --git a/java/com/android/incallui/AndroidManifest.xml b/java/com/android/incallui/AndroidManifest.xml
index 703e5b5..8539bd0 100644
--- a/java/com/android/incallui/AndroidManifest.xml
+++ b/java/com/android/incallui/AndroidManifest.xml
@@ -15,11 +15,11 @@
   -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.incallui">
+  package="com.android.incallui">
 
   <uses-sdk
-      android:minSdkVersion="23"
-      android:targetSdkVersion="26"/>
+    android:minSdkVersion="23"
+    android:targetSdkVersion="26"/>
 
   <uses-permission android:name="android.permission.CONTROL_INCALL_EXPERIENCE"/>
   <!-- We use this to disable the status bar buttons of home, back and recent
@@ -31,8 +31,8 @@
   <!-- Warning: setting the required boolean to true would prevent installation of Dialer on
        devices which do not support a camera. -->
   <uses-feature
-      android:name="android.hardware.camera.any"
-      android:required="false"/>
+    android:name="android.hardware.camera.any"
+    android:required="false"/>
 
   <!-- Testing location -->
   <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
@@ -43,49 +43,47 @@
        Set taskAffinity for application is not working because it will be merged and the result is
   that all activities here still have same taskAffinity as activities under dialer. -->
   <application>
-    <meta-data
-        android:name="android.telephony.hide_voicemail_settings_menu"
-        android:value="true"/>
-
+    <meta-data android:name="android.telephony.hide_voicemail_settings_menu"
+      android:value="true"/>
     <activity
-        android:directBootAware="true"
-        android:excludeFromRecents="true"
-        android:exported="false"
-        android:label="@string/phoneAppLabel"
-        android:launchMode="singleInstance"
-        android:name="com.android.incallui.InCallActivity"
-        android:resizeableActivity="true"
-        android:screenOrientation="nosensor"
-        android:taskAffinity="com.android.incallui"
-        android:theme="@style/Theme.InCallScreen">
+      android:directBootAware="true"
+      android:excludeFromRecents="true"
+      android:exported="false"
+      android:label="@string/phoneAppLabel"
+      android:taskAffinity="com.android.incallui"
+      android:launchMode="singleInstance"
+      android:name="com.android.incallui.InCallActivity"
+      android:resizeableActivity="true"
+      android:screenOrientation="nosensor"
+      android:theme="@style/Theme.InCallScreen">
     </activity>
 
     <activity
-        android:directBootAware="true"
-        android:excludeFromRecents="true"
-        android:exported="false"
-        android:label="@string/manageConferenceLabel"
-        android:launchMode="singleTask"
-        android:name="com.android.incallui.ManageConferenceActivity"
-        android:noHistory="true"
-        android:resizeableActivity="true"
-        android:taskAffinity="com.android.incallui"
-        android:theme="@style/Theme.InCallScreen.ManageConference"/>
+      android:directBootAware="true"
+      android:excludeFromRecents="true"
+      android:noHistory="true"
+      android:exported="false"
+      android:label="@string/manageConferenceLabel"
+      android:taskAffinity="com.android.incallui"
+      android:launchMode="singleTask"
+      android:name="com.android.incallui.ManageConferenceActivity"
+      android:resizeableActivity="true"
+      android:theme="@style/Theme.InCallScreen.ManageConference"/>
 
     <service
-        android:directBootAware="true"
-        android:exported="true"
-        android:name="com.android.incallui.InCallServiceImpl"
-        android:permission="android.permission.BIND_INCALL_SERVICE">
+      android:directBootAware="true"
+      android:exported="true"
+      android:name="com.android.incallui.InCallServiceImpl"
+      android:permission="android.permission.BIND_INCALL_SERVICE">
       <meta-data
-          android:name="android.telecom.IN_CALL_SERVICE_UI"
-          android:value="true"/>
+        android:name="android.telecom.IN_CALL_SERVICE_UI"
+        android:value="true"/>
       <meta-data
-          android:name="android.telecom.IN_CALL_SERVICE_RINGING"
-          android:value="false"/>
+        android:name="android.telecom.IN_CALL_SERVICE_RINGING"
+        android:value="false"/>
       <meta-data
-          android:name="android.telecom.INCLUDE_EXTERNAL_CALLS"
-          android:value="true"/>
+        android:name="android.telecom.INCLUDE_EXTERNAL_CALLS"
+        android:value="true"/>
 
       <intent-filter>
         <action android:name="android.telecom.InCallService"/>
@@ -99,35 +97,23 @@
        excludeFromRecents="true"   -> Don't show in "recent apps" screen
        -->
     <activity
-        android:excludeFromRecents="true"
-        android:exported="false"
-        android:name="com.android.incallui.spam.SpamNotificationActivity"
-        android:noHistory="true"
-        android:taskAffinity=""
-        android:theme="@style/AfterCallNotificationTheme">
+      android:excludeFromRecents="true"
+      android:exported="false"
+      android:name="com.android.incallui.spam.SpamNotificationActivity"
+      android:noHistory="true"
+      android:taskAffinity=""
+      android:theme="@style/AfterCallNotificationTheme">
     </activity>
 
-    <activity
-        android:excludeFromRecents="true"
-        android:exported="false"
-        android:name=".AudioRouteSelectorActivity"
-        android:noHistory="true"
-        android:theme="@style/Theme.Incall.DialogHolder"
-        />
-
     <service
-        android:exported="false"
-        android:name="com.android.incallui.spam.SpamNotificationService"/>
+      android:exported="false"
+      android:name="com.android.incallui.spam.SpamNotificationService"/>
 
     <!-- BroadcastReceiver for receiving Intents from Notification mechanism. -->
     <receiver
-        android:directBootAware="true"
-        android:exported="false"
-        android:name="com.android.incallui.NotificationBroadcastReceiver"/>
-
-    <receiver
-        android:exported="false"
-        android:name=".ReturnToCallActionReceiver"/>
+      android:directBootAware="true"
+      android:exported="false"
+      android:name="com.android.incallui.NotificationBroadcastReceiver"/>
 
   </application>
 
diff --git a/java/com/android/incallui/AnswerScreenPresenter.java b/java/com/android/incallui/AnswerScreenPresenter.java
index ddbe6cc..ca34aa6 100644
--- a/java/com/android/incallui/AnswerScreenPresenter.java
+++ b/java/com/android/incallui/AnswerScreenPresenter.java
@@ -124,29 +124,12 @@
       LogUtil.i("AnswerScreenPresenter.onAnswerAndReleaseCall", "activeCall == null");
       onAnswer(false);
     } else {
-      activeCall.setReleasedByAnsweringSecondCall(true);
       activeCall.addListener(new AnswerOnDisconnected(activeCall));
       activeCall.disconnect();
     }
   }
 
   @Override
-  public void onAnswerAndReleaseButtonDisabled() {
-    DialerCall activeCall = CallList.getInstance().getActiveCall();
-    if (activeCall != null) {
-      activeCall.increaseSecondCallWithoutAnswerAndReleasedButtonTimes();
-    }
-  }
-
-  @Override
-  public void onAnswerAndReleaseButtonEnabled() {
-    DialerCall activeCall = CallList.getInstance().getActiveCall();
-    if (activeCall != null) {
-      activeCall.increaseAnswerAndReleaseButtonDisplayedTimes();
-    }
-  }
-
-  @Override
   public void onCannedTextResponsesLoaded(DialerCall call) {
     if (isSmsResponseAllowed(call)) {
       answerScreen.setTextResponses(call.getCannedSmsResponses());
@@ -200,9 +183,6 @@
 
     @Override
     public void onInternationalCallOnWifi() {}
-
-    @Override
-    public void onEnrichedCallSessionUpdate() {}
   }
 
   private boolean isSmsResponseAllowed(DialerCall call) {
diff --git a/java/com/android/incallui/AnswerScreenPresenterStub.java b/java/com/android/incallui/AnswerScreenPresenterStub.java
index d02a181..7bff329 100644
--- a/java/com/android/incallui/AnswerScreenPresenterStub.java
+++ b/java/com/android/incallui/AnswerScreenPresenterStub.java
@@ -43,11 +43,5 @@
   public void onAnswerAndReleaseCall() {}
 
   @Override
-  public void onAnswerAndReleaseButtonEnabled() {}
-
-  @Override
-  public void onAnswerAndReleaseButtonDisabled() {}
-
-  @Override
   public void updateWindowBackgroundColor(@FloatRange(from = -1f, to = 1.0f) float progress) {}
 }
diff --git a/java/com/android/incallui/AudioRouteSelectorActivity.java b/java/com/android/incallui/AudioRouteSelectorActivity.java
deleted file mode 100644
index dfd4d1a..0000000
--- a/java/com/android/incallui/AudioRouteSelectorActivity.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.incallui;
-
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.app.FragmentActivity;
-import com.android.incallui.audiomode.AudioModeProvider;
-import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment;
-import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment.AudioRouteSelectorPresenter;
-import com.android.incallui.call.TelecomAdapter;
-
-/** Simple activity that just shows the audio route selector fragment */
-public class AudioRouteSelectorActivity extends FragmentActivity
-    implements AudioRouteSelectorPresenter {
-
-  @Override
-  protected void onCreate(@Nullable Bundle bundle) {
-    super.onCreate(bundle);
-    AudioRouteSelectorDialogFragment.newInstance(AudioModeProvider.getInstance().getAudioState())
-        .show(getSupportFragmentManager(), null);
-  }
-
-  @Override
-  public void onAudioRouteSelected(int audioRoute) {
-    TelecomAdapter.getInstance().setAudioRoute(audioRoute);
-  }
-
-  @Override
-  public void onAudioRouteSelectorDismiss() {
-    finish();
-  }
-}
diff --git a/java/com/android/incallui/CallButtonPresenter.java b/java/com/android/incallui/CallButtonPresenter.java
index f758a96..b0c3a99 100644
--- a/java/com/android/incallui/CallButtonPresenter.java
+++ b/java/com/android/incallui/CallButtonPresenter.java
@@ -300,7 +300,18 @@
    */
   @Override
   public void switchCameraClicked(boolean useFrontFacingCamera) {
-    updateCamera(useFrontFacingCamera);
+    InCallCameraManager cameraManager = InCallPresenter.getInstance().getInCallCameraManager();
+    cameraManager.setUseFrontFacingCamera(useFrontFacingCamera);
+
+    String cameraId = cameraManager.getActiveCameraId();
+    if (cameraId != null) {
+      final int cameraDir =
+          cameraManager.isUsingFrontFacingCamera()
+              ? CameraDirection.CAMERA_DIRECTION_FRONT_FACING
+              : CameraDirection.CAMERA_DIRECTION_BACK_FACING;
+      mCall.setCameraDir(cameraDir);
+      mCall.getVideoTech().setCamera(cameraId);
+    }
   }
 
   @Override
@@ -334,11 +345,8 @@
             mCall.getTimeAddedMs());
 
     if (pause) {
-      mCall.getVideoTech().setCamera(null);
       mCall.getVideoTech().stopTransmission();
     } else {
-      updateCamera(
-          InCallPresenter.getInstance().getInCallCameraManager().isUsingFrontFacingCamera());
       mCall.getVideoTech().resumeTransmission();
     }
 
@@ -346,21 +354,6 @@
     mInCallButtonUi.enableButton(InCallButtonIds.BUTTON_PAUSE_VIDEO, false);
   }
 
-  private void updateCamera(boolean useFrontFacingCamera) {
-    InCallCameraManager cameraManager = InCallPresenter.getInstance().getInCallCameraManager();
-    cameraManager.setUseFrontFacingCamera(useFrontFacingCamera);
-
-    String cameraId = cameraManager.getActiveCameraId();
-    if (cameraId != null) {
-      final int cameraDir =
-          cameraManager.isUsingFrontFacingCamera()
-              ? CameraDirection.CAMERA_DIRECTION_FRONT_FACING
-              : CameraDirection.CAMERA_DIRECTION_BACK_FACING;
-      mCall.setCameraDir(cameraDir);
-      mCall.getVideoTech().setCamera(cameraId);
-    }
-  }
-
   private void updateUi(InCallState state, DialerCall call) {
     LogUtil.v("CallButtonPresenter", "updating call UI for call: ", call);
 
diff --git a/java/com/android/incallui/CallCardPresenter.java b/java/com/android/incallui/CallCardPresenter.java
index cd06793..c2b99c1 100644
--- a/java/com/android/incallui/CallCardPresenter.java
+++ b/java/com/android/incallui/CallCardPresenter.java
@@ -47,6 +47,9 @@
 import com.android.dialer.common.ConfigProviderBindings;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.compat.ActivityCompat;
+import com.android.dialer.enrichedcall.EnrichedCallComponent;
+import com.android.dialer.enrichedcall.EnrichedCallManager;
+import com.android.dialer.enrichedcall.Session;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.multimedia.MultimediaData;
@@ -82,7 +85,8 @@
         InCallDetailsListener,
         InCallEventListener,
         InCallScreenDelegate,
-        DialerCallListener {
+        DialerCallListener,
+        EnrichedCallManager.StateChangedListener {
 
   /**
    * Amount of time to wait before sending an announcement via the accessibility manager. When the
@@ -372,11 +376,6 @@
   @Override
   public void onInternationalCallOnWifi() {}
 
-  @Override
-  public void onEnrichedCallSessionUpdate() {
-    updatePrimaryDisplayInfo();
-  }
-
   /** Handles a change to the child number by refreshing the primary call info. */
   @Override
   public void onDialerCallChildNumberChange() {
@@ -419,6 +418,12 @@
     updatePrimaryCallState();
   }
 
+  @Override
+  public void onEnrichedCallStateChanged() {
+    LogUtil.enterBlock("CallCardPresenter.onEnrichedCallStateChanged");
+    updatePrimaryDisplayInfo();
+  }
+
   private boolean shouldRefreshPrimaryInfo(boolean primaryChanged) {
     if (mPrimary == null) {
       return false;
@@ -470,8 +475,7 @@
                   mPrimary.getConnectTimeMillis(),
                   CallerInfoUtils.isVoiceMailNumber(mContext, mPrimary),
                   mPrimary.isRemotelyHeld(),
-                  isBusiness,
-                  supports2ndCallOnHold()));
+                  isBusiness));
 
       InCallActivity activity =
           (InCallActivity) (mInCallScreen.getInCallScreenFragment().getActivity());
@@ -501,15 +505,6 @@
         && !mIsFullscreen;
   }
 
-  private boolean supports2ndCallOnHold() {
-    DialerCall firstCall = CallList.getInstance().getActiveOrBackgroundCall();
-    DialerCall incomingCall = CallList.getInstance().getIncomingCall();
-    if (firstCall != null && incomingCall != null && firstCall != incomingCall) {
-      return incomingCall.can(Details.CAPABILITY_HOLD);
-    }
-    return true;
-  }
-
   @Override
   public void onCallStateButtonClicked() {
     Intent broadcastIntent = Bindings.get(mContext).getCallStateButtonBroadcastIntent(mContext);
@@ -671,8 +666,26 @@
     boolean hasWorkCallProperty = mPrimary.hasProperty(PROPERTY_ENTERPRISE_CALL);
 
     MultimediaData multimediaData = null;
-    if (mPrimary.getEnrichedCallSession() != null) {
-      multimediaData = mPrimary.getEnrichedCallSession().getMultimediaData();
+    if (mPrimary.getNumber() != null) {
+      EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager();
+
+      EnrichedCallManager.Filter filter;
+      if (mPrimary.isIncoming()) {
+        filter = manager.createIncomingCallComposerFilter();
+      } else {
+        filter = manager.createOutgoingCallComposerFilter();
+      }
+
+      Session enrichedCallSession =
+          manager.getSession(mPrimary.getUniqueCallId(), mPrimary.getNumber(), filter);
+
+      mPrimary.setEnrichedCallSession(enrichedCallSession);
+      mPrimary.setEnrichedCallCapabilities(manager.getCapabilities(mPrimary.getNumber()));
+
+      if (enrichedCallSession != null) {
+        enrichedCallSession.setUniqueDialerCallId(mPrimary.getUniqueCallId());
+        multimediaData = enrichedCallSession.getMultimediaData();
+      }
     }
 
     if (mPrimary.isConferenceCall()) {
@@ -683,8 +696,7 @@
       mInCallScreen.setPrimary(
           new PrimaryInfo(
               null /* number */,
-              CallerInfoUtils.getConferenceString(
-                  mContext, mPrimary.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)),
+              getConferenceString(mPrimary),
               false /* nameIsNumber */,
               null /* location */,
               null /* label */,
@@ -868,8 +880,7 @@
       mInCallScreen.setSecondary(
           new SecondaryInfo(
               true /* show */,
-              CallerInfoUtils.getConferenceString(
-                  mContext, mSecondary.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)),
+              getConferenceString(mSecondary),
               false /* nameIsNumber */,
               null /* label */,
               mSecondary.getCallProviderLabel(),
@@ -961,7 +972,7 @@
   }
 
   /** Gets the name to display for the call. */
-  private String getNameForCall(ContactCacheEntry contactInfo) {
+  String getNameForCall(ContactCacheEntry contactInfo) {
     String preferredName =
         ContactDisplayUtils.getPreferredDisplayName(
             contactInfo.namePrimary, contactInfo.nameAlternative, mContactsPreferences);
@@ -971,6 +982,19 @@
     return preferredName;
   }
 
+  /** Gets the number to display for a call. */
+  String getNumberForCall(ContactCacheEntry contactInfo) {
+    // If the name is empty, we use the number for the name...so don't show a second
+    // number in the number field
+    String preferredName =
+        ContactDisplayUtils.getPreferredDisplayName(
+            contactInfo.namePrimary, contactInfo.nameAlternative, mContactsPreferences);
+    if (TextUtils.isEmpty(preferredName)) {
+      return contactInfo.location;
+    }
+    return contactInfo.number;
+  }
+
   @Override
   public void onSecondaryInfoClicked() {
     if (mSecondary == null) {
@@ -1011,6 +1035,15 @@
     return mPrimary != null && mPrimary.getState() == DialerCall.State.ACTIVE;
   }
 
+  private String getConferenceString(DialerCall call) {
+    boolean isGenericConference = call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE);
+    LogUtil.v("CallCardPresenter.getConferenceString", "" + isGenericConference);
+
+    final int resId =
+        isGenericConference ? R.string.generic_conference_call_name : R.string.conference_call_name;
+    return mContext.getResources().getString(resId);
+  }
+
   private boolean shouldShowEndCallButton(DialerCall primary, int callState) {
     if (primary == null) {
       return false;
@@ -1030,6 +1063,7 @@
 
   @Override
   public void onInCallScreenResumed() {
+    EnrichedCallComponent.get(mContext).getEnrichedCallManager().registerStateChangedListener(this);
     updatePrimaryDisplayInfo();
 
     if (shouldSendAccessibilityEvent) {
@@ -1038,7 +1072,11 @@
   }
 
   @Override
-  public void onInCallScreenPaused() {}
+  public void onInCallScreenPaused() {
+    EnrichedCallComponent.get(mContext)
+        .getEnrichedCallManager()
+        .unregisterStateChangedListener(this);
+  }
 
   static boolean sendAccessibilityEvent(Context context, InCallScreen inCallScreen) {
     AccessibilityManager am =
diff --git a/java/com/android/incallui/CallerInfoUtils.java b/java/com/android/incallui/CallerInfoUtils.java
index 8f23107..5644466 100644
--- a/java/com/android/incallui/CallerInfoUtils.java
+++ b/java/com/android/incallui/CallerInfoUtils.java
@@ -282,11 +282,4 @@
         });
     loader.startLoading();
   }
-
-  /** @return conference name for conference call. */
-  public static String getConferenceString(Context context, boolean isGenericConference) {
-    final int resId =
-        isGenericConference ? R.string.generic_conference_call_name : R.string.conference_call_name;
-    return context.getResources().getString(resId);
-  }
 }
diff --git a/java/com/android/incallui/ContactInfoCache.java b/java/com/android/incallui/ContactInfoCache.java
index d7eea79..e45eb97 100644
--- a/java/com/android/incallui/ContactInfoCache.java
+++ b/java/com/android/incallui/ContactInfoCache.java
@@ -406,7 +406,7 @@
     } else {
       ContactCacheEntry initialCacheEntry =
           updateCallerInfoInCacheOnAnyThread(
-              callId, call.getNumberPresentation(), callerInfo, false, queryToken);
+              callId, call.getNumberPresentation(), callerInfo, isIncoming, false, queryToken);
       sendInfoNotifications(callId, initialCacheEntry);
     }
   }
@@ -416,6 +416,7 @@
       String callId,
       int numberPresentation,
       CallerInfo callerInfo,
+      boolean isIncoming,
       boolean didLocalLookup,
       CallerInfoQueryToken queryToken) {
     Log.d(
@@ -442,7 +443,16 @@
     Log.d(TAG, "Existing cacheEntry in hashMap " + existingCacheEntry);
 
     if (didLocalLookup) {
-      if (cacheEntry.displayPhotoUri != null) {
+      // Before issuing a request for more data from other services, we only check that the
+      // contact wasn't found in the local DB.  We don't check the if the cache entry already
+      // has a name because we allow overriding cnap data with data from other services.
+      if (!callerInfo.contactExists && mPhoneNumberService != null) {
+        Log.d(TAG, "Contact lookup. Local contacts miss, checking remote");
+        final PhoneNumberServiceListener listener =
+            new PhoneNumberServiceListener(callId, queryToken.mQueryId);
+        cacheEntry.hasPendingQuery = true;
+        mPhoneNumberService.getPhoneNumberInfo(cacheEntry.number, listener, listener, isIncoming);
+      } else if (cacheEntry.displayPhotoUri != null) {
         // When the difference between 2 numbers is only the prefix (e.g. + or IDD),
         // we will still trigger force query so that the number can be updated on
         // the calling screen. We need not query the image again if the previous
@@ -779,7 +789,7 @@
       maybeUpdateFromCequintCallerId(ci, cw.cnapName, mIsIncoming);
       long time = SystemClock.uptimeMillis() - start;
       Log.d(TAG, "Cequint Caller Id look up takes " + time + " ms.");
-      updateCallerInfoInCacheOnAnyThread(cw.callId, cw.numberPresentation, ci, true, mQueryToken);
+      updateCallerInfoInCacheOnAnyThread(cw.callId, cw.numberPresentation, ci, mIsIncoming, true, mQueryToken);
     }
 
     @Override
@@ -797,16 +807,6 @@
         clearCallbacks(callId);
         return;
       }
-      // Before issuing a request for more data from other services, we only check that the
-      // contact wasn't found in the local DB.  We don't check the if the cache entry already
-      // has a name because we allow overriding cnap data with data from other services.
-      if (!callerInfo.contactExists && mPhoneNumberService != null) {
-        Log.d(TAG, "Contact lookup. Local contacts miss, checking remote");
-        final PhoneNumberServiceListener listener =
-            new PhoneNumberServiceListener(callId, mQueryToken.mQueryId);
-        cacheEntry.hasPendingQuery = true;
-        mPhoneNumberService.getPhoneNumberInfo(cacheEntry.number, listener, listener, mIsIncoming);
-      }
       sendInfoNotifications(callId, cacheEntry);
       if (!cacheEntry.hasPendingQuery) {
         if (callerInfo.contactExists) {
@@ -870,7 +870,6 @@
         entry.shouldShowLocation = oldEntry.shouldShowLocation;
         // Contact specific ringtone is obtained from local lookup.
         entry.contactRingtoneUri = oldEntry.contactRingtoneUri;
-        entry.originalPhoneNumber = oldEntry.originalPhoneNumber;
       }
 
       // If no image and it's a business, switch to using the default business avatar.
diff --git a/java/com/android/incallui/ExternalCallNotifier.java b/java/com/android/incallui/ExternalCallNotifier.java
index 051392e..0c2493c 100644
--- a/java/com/android/incallui/ExternalCallNotifier.java
+++ b/java/com/android/incallui/ExternalCallNotifier.java
@@ -384,10 +384,11 @@
       ContactInfoCache.ContactCacheEntry contactInfo,
       android.telecom.Call call) {
 
-    if (call.getDetails().hasProperty(android.telecom.Call.Details.PROPERTY_CONFERENCE)) {
-      return CallerInfoUtils.getConferenceString(
-          context,
-          call.getDetails().hasProperty(android.telecom.Call.Details.PROPERTY_GENERIC_CONFERENCE));
+    if (call.getDetails().hasProperty(android.telecom.Call.Details.PROPERTY_CONFERENCE)
+        && !call.getDetails()
+            .hasProperty(android.telecom.Call.Details.PROPERTY_GENERIC_CONFERENCE)) {
+
+      return context.getResources().getString(R.string.conference_call_name);
     }
 
     String preferredName =
diff --git a/java/com/android/incallui/InCallActivity.java b/java/com/android/incallui/InCallActivity.java
index bda003c..cc9a8e4 100644
--- a/java/com/android/incallui/InCallActivity.java
+++ b/java/com/android/incallui/InCallActivity.java
@@ -694,8 +694,13 @@
     if (didShowInCallScreen) {
       return false;
     }
-    InCallScreen inCallScreen = InCallBindings.createInCallScreen();
-    transaction.add(R.id.main, inCallScreen.getInCallScreenFragment(), TAG_IN_CALL_SCREEN);
+    InCallScreen inCallScreen = getInCallScreen();
+    if (inCallScreen == null) {
+      inCallScreen = InCallBindings.createInCallScreen();
+      transaction.add(R.id.main, inCallScreen.getInCallScreenFragment(), TAG_IN_CALL_SCREEN);
+    } else {
+      transaction.show(inCallScreen.getInCallScreenFragment());
+    }
     Logger.get(this).logScreenView(ScreenEvent.Type.INCALL, this);
     didShowInCallScreen = true;
     return true;
@@ -707,7 +712,7 @@
     }
     InCallScreen inCallScreen = getInCallScreen();
     if (inCallScreen != null) {
-      transaction.remove(inCallScreen.getInCallScreenFragment());
+      transaction.hide(inCallScreen.getInCallScreenFragment());
     }
     didShowInCallScreen = false;
     return true;
diff --git a/java/com/android/incallui/InCallPresenter.java b/java/com/android/incallui/InCallPresenter.java
index 7c30001..2d6d83c 100644
--- a/java/com/android/incallui/InCallPresenter.java
+++ b/java/com/android/incallui/InCallPresenter.java
@@ -695,10 +695,7 @@
     if (newState == InCallState.INCOMING
         && (waitingForAccountCall = callList.getWaitingForAccountCall()) != null) {
       waitingForAccountCall.disconnect();
-      // The InCallActivity might be destroyed or not started yet at this point.
-      if (isActivityStarted()) {
-        mInCallActivity.dismissPendingDialogs();
-      }
+      mInCallActivity.dismissPendingDialogs();
     }
 
     newState = startOrFinishUi(newState);
diff --git a/java/com/android/incallui/InCallServiceImpl.java b/java/com/android/incallui/InCallServiceImpl.java
index 1653334..4ab92a7 100644
--- a/java/com/android/incallui/InCallServiceImpl.java
+++ b/java/com/android/incallui/InCallServiceImpl.java
@@ -23,7 +23,6 @@
 import android.telecom.CallAudioState;
 import android.telecom.InCallService;
 import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
-import com.android.dialer.common.ConfigProviderBindings;
 import com.android.incallui.audiomode.AudioModeProvider;
 import com.android.incallui.call.CallList;
 import com.android.incallui.call.ExternalCallList;
@@ -37,8 +36,6 @@
  */
 public class InCallServiceImpl extends InCallService {
 
-  private ReturnToCallController returnToCallController;
-
   @Override
   public void onCallAudioStateChanged(CallAudioState audioState) {
     AudioModeProvider.getInstance().onAudioStateChanged(audioState);
@@ -82,9 +79,6 @@
     InCallPresenter.getInstance().onServiceBind();
     InCallPresenter.getInstance().maybeStartRevealAnimation(intent);
     TelecomAdapter.getInstance().setInCallService(this);
-    if (ConfigProviderBindings.get(this).getBoolean("enable_return_to_call_bubble", false)) {
-      returnToCallController = new ReturnToCallController(this);
-    }
 
     return super.onBind(intent);
   }
@@ -104,9 +98,5 @@
     // Tear down the InCall system
     TelecomAdapter.getInstance().clearInCallService();
     InCallPresenter.getInstance().tearDown();
-    if (returnToCallController != null) {
-      returnToCallController.tearDown();
-      returnToCallController = null;
-    }
   }
 }
diff --git a/java/com/android/incallui/ReturnToCallActionReceiver.java b/java/com/android/incallui/ReturnToCallActionReceiver.java
deleted file mode 100644
index b645c15..0000000
--- a/java/com/android/incallui/ReturnToCallActionReceiver.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.incallui;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.telecom.CallAudioState;
-import com.android.dialer.common.LogUtil;
-import com.android.dialer.logging.DialerImpression;
-import com.android.dialer.logging.Logger;
-import com.android.incallui.audiomode.AudioModeProvider;
-import com.android.incallui.call.CallList;
-import com.android.incallui.call.DialerCall;
-import com.android.incallui.call.TelecomAdapter;
-
-/** Handles clicks on the return-to-call bubble */
-public class ReturnToCallActionReceiver extends BroadcastReceiver {
-
-  public static final String ACTION_TOGGLE_SPEAKER = "toggleSpeaker";
-  public static final String ACTION_SHOW_AUDIO_ROUTE_SELECTOR = "showAudioRouteSelector";
-  public static final String ACTION_TOGGLE_MUTE = "toggleMute";
-  public static final String ACTION_END_CALL = "endCall";
-
-  @Override
-  public void onReceive(Context context, Intent intent) {
-    switch (intent.getAction()) {
-      case ACTION_TOGGLE_SPEAKER:
-        toggleSpeaker(context);
-        break;
-      case ACTION_SHOW_AUDIO_ROUTE_SELECTOR:
-        showAudioRouteSelector(context);
-        break;
-      case ACTION_TOGGLE_MUTE:
-        toggleMute(context);
-        break;
-      case ACTION_END_CALL:
-        endCall(context);
-        break;
-    }
-  }
-
-  private void toggleSpeaker(Context context) {
-    CallAudioState audioState = AudioModeProvider.getInstance().getAudioState();
-
-    if ((audioState.getSupportedRouteMask() & CallAudioState.ROUTE_BLUETOOTH)
-        == CallAudioState.ROUTE_BLUETOOTH) {
-      LogUtil.w(
-          "ReturnToCallActionReceiver.toggleSpeaker",
-          "toggleSpeaker() called when bluetooth available."
-              + " Probably should have shown audio route selector");
-    }
-
-    DialerCall call = getCall();
-
-    int newRoute;
-    if (audioState.getRoute() == CallAudioState.ROUTE_SPEAKER) {
-      newRoute = CallAudioState.ROUTE_WIRED_OR_EARPIECE;
-      Logger.get(context)
-          .logCallImpression(
-              DialerImpression.Type.BUBBLE_TURN_ON_WIRED_OR_EARPIECE,
-              call != null ? call.getUniqueCallId() : "",
-              call != null ? call.getTimeAddedMs() : 0);
-    } else {
-      newRoute = CallAudioState.ROUTE_SPEAKER;
-      Logger.get(context)
-          .logCallImpression(
-              DialerImpression.Type.BUBBLE_TURN_ON_SPEAKERPHONE,
-              call != null ? call.getUniqueCallId() : "",
-              call != null ? call.getTimeAddedMs() : 0);
-    }
-    TelecomAdapter.getInstance().setAudioRoute(newRoute);
-  }
-
-  public void showAudioRouteSelector(Context context) {
-    context.startActivity(new Intent(context, AudioRouteSelectorActivity.class));
-  }
-
-  private void toggleMute(Context context) {
-    DialerCall call = getCall();
-    boolean shouldMute = !AudioModeProvider.getInstance().getAudioState().isMuted();
-    Logger.get(context)
-        .logCallImpression(
-            shouldMute
-                ? DialerImpression.Type.BUBBLE_MUTE_CALL
-                : DialerImpression.Type.BUBBLE_UNMUTE_CALL,
-            call != null ? call.getUniqueCallId() : "",
-            call != null ? call.getTimeAddedMs() : 0);
-    TelecomAdapter.getInstance().mute(shouldMute);
-  }
-
-  private void endCall(Context context) {
-    DialerCall call = getCall();
-
-    Logger.get(context)
-        .logCallImpression(
-            DialerImpression.Type.BUBBLE_END_CALL,
-            call != null ? call.getUniqueCallId() : "",
-            call != null ? call.getTimeAddedMs() : 0);
-    if (call != null) {
-      call.disconnect();
-    }
-  }
-
-  private DialerCall getCall() {
-    CallList callList = InCallPresenter.getInstance().getCallList();
-    if (callList != null) {
-      DialerCall call = callList.getOutgoingCall();
-      if (call == null) {
-        call = callList.getActiveOrBackgroundCall();
-      }
-      if (call != null) {
-        return call;
-      }
-    }
-    return null;
-  }
-}
diff --git a/java/com/android/incallui/ReturnToCallController.java b/java/com/android/incallui/ReturnToCallController.java
deleted file mode 100644
index 4cb6aaf..0000000
--- a/java/com/android/incallui/ReturnToCallController.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.incallui;
-
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.drawable.Icon;
-import android.support.annotation.NonNull;
-import android.support.annotation.VisibleForTesting;
-import android.telecom.CallAudioState;
-import com.android.dialer.common.LogUtil;
-import com.android.dialer.telecom.TelecomUtil;
-import com.android.dialershared.bubble.Bubble;
-import com.android.dialershared.bubble.BubbleInfo;
-import com.android.dialershared.bubble.BubbleInfo.Action;
-import com.android.incallui.InCallPresenter.InCallUiListener;
-import com.android.incallui.audiomode.AudioModeProvider;
-import com.android.incallui.audiomode.AudioModeProvider.AudioModeListener;
-import com.android.incallui.call.CallList;
-import com.android.incallui.call.CallList.Listener;
-import com.android.incallui.call.DialerCall;
-import com.android.incallui.speakerbuttonlogic.SpeakerButtonInfo;
-import com.android.incallui.speakerbuttonlogic.SpeakerButtonInfo.IconSize;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Listens for events relevant to the return-to-call bubble and updates the bubble's state as
- * necessary
- */
-public class ReturnToCallController implements InCallUiListener, Listener, AudioModeListener {
-
-  private final Context context;
-
-  @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
-  Bubble bubble;
-
-  private CallAudioState audioState;
-
-  private final PendingIntent toggleSpeaker;
-  private final PendingIntent showSpeakerSelect;
-  private final PendingIntent toggleMute;
-  private final PendingIntent endCall;
-
-  public ReturnToCallController(Context context) {
-    this.context = context;
-
-    toggleSpeaker = createActionIntent(ReturnToCallActionReceiver.ACTION_TOGGLE_SPEAKER);
-    showSpeakerSelect =
-        createActionIntent(ReturnToCallActionReceiver.ACTION_SHOW_AUDIO_ROUTE_SELECTOR);
-    toggleMute = createActionIntent(ReturnToCallActionReceiver.ACTION_TOGGLE_MUTE);
-    endCall = createActionIntent(ReturnToCallActionReceiver.ACTION_END_CALL);
-
-    InCallPresenter.getInstance().addInCallUiListener(this);
-    CallList.getInstance().addListener(this);
-    AudioModeProvider.getInstance().addListener(this);
-    audioState = AudioModeProvider.getInstance().getAudioState();
-  }
-
-  public void tearDown() {
-    InCallPresenter.getInstance().removeInCallUiListener(this);
-    CallList.getInstance().removeListener(this);
-    AudioModeProvider.getInstance().removeListener(this);
-  }
-
-  @Override
-  public void onUiShowing(boolean showing) {
-    if (showing) {
-      hide();
-    } else {
-      if (TelecomUtil.isInCall(context)) {
-        show();
-      }
-    }
-  }
-
-  private void hide() {
-    if (bubble != null) {
-      bubble.hide();
-    } else {
-      LogUtil.i("ReturnToCallController.hide", "hide() called without calling show()");
-    }
-  }
-
-  private void show() {
-    if (bubble == null) {
-      bubble = startNewBubble();
-    } else {
-      bubble.show();
-    }
-  }
-
-  private Bubble startNewBubble() {
-    if (!Bubble.canShowBubbles(context)) {
-      LogUtil.i("ReturnToCallController.startNewBubble", "can't show bubble, no permission");
-      return null;
-    }
-    Bubble returnToCallBubble = Bubble.createBubble(context, generateBubbleInfo());
-    returnToCallBubble.show();
-    return returnToCallBubble;
-  }
-
-  @Override
-  public void onIncomingCall(DialerCall call) {}
-
-  @Override
-  public void onUpgradeToVideo(DialerCall call) {}
-
-  @Override
-  public void onSessionModificationStateChange(DialerCall call) {}
-
-  @Override
-  public void onCallListChange(CallList callList) {}
-
-  @Override
-  public void onDisconnect(DialerCall call) {
-    if (bubble != null && bubble.isShowing()) {
-      bubble.showText(context.getText(R.string.incall_call_ended));
-    }
-
-    if (!TelecomUtil.isInCall(context)) {
-      hide();
-    }
-  }
-
-  @Override
-  public void onWiFiToLteHandover(DialerCall call) {}
-
-  @Override
-  public void onHandoverToWifiFailed(DialerCall call) {}
-
-  @Override
-  public void onInternationalCallOnWifi(@NonNull DialerCall call) {}
-
-  @Override
-  public void onAudioStateChanged(CallAudioState audioState) {
-    this.audioState = audioState;
-    if (bubble != null) {
-      bubble.updateActions(generateActions());
-    }
-  }
-
-  private BubbleInfo generateBubbleInfo() {
-    return BubbleInfo.builder()
-        .setPrimaryColor(context.getResources().getColor(R.color.dialer_theme_color, null))
-        .setPrimaryIcon(Icon.createWithResource(context, R.drawable.quantum_ic_call_white_24))
-        .setPrimaryAction(
-            PendingIntent.getActivity(
-                context, 0, InCallActivity.getIntent(context, false, false, false), 0))
-        .setActions(generateActions())
-        .build();
-  }
-
-  @NonNull
-  private List<Action> generateActions() {
-    List<Action> actions = new ArrayList<>();
-    SpeakerButtonInfo speakerButtonInfo = new SpeakerButtonInfo(audioState, IconSize.SIZE_24_DP);
-
-    actions.add(
-        Action.builder()
-            .setIcon(Icon.createWithResource(context, speakerButtonInfo.icon))
-            .setName(context.getText(speakerButtonInfo.label))
-            .setChecked(speakerButtonInfo.isChecked)
-            .setAction(speakerButtonInfo.checkable ? toggleSpeaker : showSpeakerSelect)
-            .build());
-
-    actions.add(
-        Action.builder()
-            .setIcon(Icon.createWithResource(context, R.drawable.quantum_ic_mic_off_white_24))
-            .setName(context.getText(R.string.incall_label_mute))
-            .setChecked(audioState.isMuted())
-            .setAction(toggleMute)
-            .build());
-    actions.add(
-        Action.builder()
-            .setIcon(Icon.createWithResource(context, R.drawable.quantum_ic_call_end_white_24))
-            .setName(context.getText(R.string.incall_label_end_call))
-            .setAction(endCall)
-            .build());
-    return actions;
-  }
-
-  @NonNull
-  private PendingIntent createActionIntent(String actionToggleSpeaker) {
-    Intent toggleSpeaker = new Intent(context, ReturnToCallActionReceiver.class);
-    toggleSpeaker.setAction(actionToggleSpeaker);
-    return PendingIntent.getBroadcast(context, 0, toggleSpeaker, 0);
-  }
-}
diff --git a/java/com/android/incallui/StatusBarNotifier.java b/java/com/android/incallui/StatusBarNotifier.java
index 229f08c..165b30b 100644
--- a/java/com/android/incallui/StatusBarNotifier.java
+++ b/java/com/android/incallui/StatusBarNotifier.java
@@ -62,11 +62,11 @@
 import com.android.contacts.common.ContactsUtils;
 import com.android.contacts.common.ContactsUtils.UserType;
 import com.android.contacts.common.lettertiles.LetterTileDrawable;
-import com.android.contacts.common.lettertiles.LetterTileDrawable.ContactType;
 import com.android.contacts.common.preference.ContactsPreferences;
 import com.android.contacts.common.util.BitmapUtil;
 import com.android.contacts.common.util.ContactDisplayUtils;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.enrichedcall.EnrichedCallComponent;
 import com.android.dialer.enrichedcall.EnrichedCallManager;
 import com.android.dialer.enrichedcall.Session;
 import com.android.dialer.multimedia.MultimediaData;
@@ -565,9 +565,8 @@
   @VisibleForTesting
   @Nullable
   String getContentTitle(ContactCacheEntry contactInfo, DialerCall call) {
-    if (call.isConferenceCall()) {
-      return CallerInfoUtils.getConferenceString(
-          mContext, call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE));
+    if (call.isConferenceCall() && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)) {
+      return mContext.getResources().getString(R.string.conference_call_name);
     }
 
     String preferredName =
@@ -605,16 +604,20 @@
     if (contactInfo.photo == null) {
       int width = (int) resources.getDimension(android.R.dimen.notification_large_icon_width);
       int height = (int) resources.getDimension(android.R.dimen.notification_large_icon_height);
-      @ContactType
-      int contactType =
-          LetterTileDrawable.getContactTypeFromPrimitives(
-              CallerInfoUtils.isVoiceMailNumber(context, call),
-              call.isSpam(),
-              contactInfo.isBusiness,
-              call.getNumberPresentation(),
-              call.isConferenceCall() && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE));
+      int contactType = LetterTileDrawable.TYPE_DEFAULT;
       LetterTileDrawable lettertile = new LetterTileDrawable(resources);
 
+      // TODO: Deduplicate across Dialer. b/36195917
+      if (CallerInfoUtils.isVoiceMailNumber(context, call)) {
+        contactType = LetterTileDrawable.TYPE_VOICEMAIL;
+      } else if (contactInfo.isBusiness) {
+        contactType = LetterTileDrawable.TYPE_BUSINESS;
+      } else if (call.getNumberPresentation() == TelecomManager.PRESENTATION_RESTRICTED) {
+        contactType = LetterTileDrawable.TYPE_GENERIC_AVATAR;
+      } else if (call.isConferenceCall()
+          && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)) {
+        contactType = LetterTileDrawable.TYPE_CONFERENCE;
+      }
       lettertile.setCanonicalDialerLetterTileDetails(
           contactInfo.namePrimary == null ? contactInfo.number : contactInfo.namePrimary,
           contactInfo.lookupKey,
@@ -691,10 +694,20 @@
     }
 
     if (isIncomingOrWaiting) {
+      EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager();
+      Session session = null;
+      if (call.getNumber() != null) {
+        session =
+            manager.getSession(
+                call.getUniqueCallId(),
+                call.getNumber(),
+                manager.createIncomingCallComposerFilter());
+      }
+
       if (call.isSpam()) {
         resId = R.string.notification_incoming_spam_call;
-      } else if (shouldShowEnrichedCallNotification(call.getEnrichedCallSession())) {
-        resId = getECIncomingCallText(call.getEnrichedCallSession());
+      } else if (session != null) {
+        resId = getECIncomingCallText(session);
       } else if (call.hasProperty(Details.PROPERTY_WIFI)) {
         resId = R.string.notification_incoming_call_wifi;
       } else {
@@ -718,13 +731,6 @@
     return mContext.getString(resId);
   }
 
-  private boolean shouldShowEnrichedCallNotification(Session session) {
-    if (session == null) {
-      return false;
-    }
-    return session.getMultimediaData().hasData() || session.getMultimediaData().isImportant();
-  }
-
   private int getECIncomingCallText(Session session) {
     int resId;
     MultimediaData data = session.getMultimediaData();
@@ -750,10 +756,8 @@
         } else {
           resId = R.string.important_notification_incoming_call_with_photo;
         }
-      } else if (hasSubject) {
-        resId = R.string.important_notification_incoming_call_with_message;
       } else {
-        resId = R.string.important_notification_incoming_call;
+        resId = R.string.important_notification_incoming_call_with_message;
       }
       if (mContext.getString(resId).length() > 50) {
         resId = R.string.important_notification_incoming_call_attachments;
@@ -1001,9 +1005,6 @@
     @Override
     public void onInternationalCallOnWifi() {}
 
-    @Override
-    public void onEnrichedCallSessionUpdate() {}
-
     /**
      * Responds to changes in the session modification state for the call by dismissing the status
      * bar notification as required.
diff --git a/java/com/android/incallui/answer/impl/AnswerFragment.java b/java/com/android/incallui/answer/impl/AnswerFragment.java
index 6be7930..1f0541c4 100644
--- a/java/com/android/incallui/answer/impl/AnswerFragment.java
+++ b/java/com/android/incallui/answer/impl/AnswerFragment.java
@@ -427,10 +427,8 @@
 
     if (allowAnswerAndRelease()) {
       answerAndReleaseButton.setVisibility(View.VISIBLE);
-      answerScreenDelegate.onAnswerAndReleaseButtonEnabled();
     } else {
       answerAndReleaseButton.setVisibility(View.INVISIBLE);
-      answerScreenDelegate.onAnswerAndReleaseButtonDisabled();
     }
   }
 
@@ -932,7 +930,7 @@
         if (hasCallOnHold()) {
           getAnswerMethod()
               .setHintText(getText(R.string.call_incoming_default_label_answer_and_release_third));
-        } else if (primaryCallState.supportsCallOnHold) {
+        } else {
           getAnswerMethod()
               .setHintText(getText(R.string.call_incoming_default_label_answer_and_release_second));
         }
diff --git a/java/com/android/incallui/answer/impl/PillDrawable.java b/java/com/android/incallui/answer/impl/PillDrawable.java
new file mode 100644
index 0000000..57d84c4
--- /dev/null
+++ b/java/com/android/incallui/answer/impl/PillDrawable.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui.answer.impl;
+
+import android.graphics.Rect;
+import android.graphics.drawable.GradientDrawable;
+
+/** Draws a pill-shaped background */
+public class PillDrawable extends GradientDrawable {
+
+  public PillDrawable() {
+    super();
+    setShape(RECTANGLE);
+  }
+
+  @Override
+  protected void onBoundsChange(Rect r) {
+    super.onBoundsChange(r);
+    setCornerRadius(r.height() / 2);
+  }
+
+  @Override
+  public void setShape(int shape) {
+    if (shape != GradientDrawable.RECTANGLE) {
+      throw new UnsupportedOperationException("PillDrawable must be a rectangle");
+    }
+    super.setShape(shape);
+  }
+}
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml b/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml
index 600115e..9a49075 100644
--- a/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml
+++ b/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml
@@ -41,7 +41,6 @@
         android:layout_marginBottom="116dp"
         android:layout_gravity="center_horizontal"
         android:alpha="0"
-        android:gravity="center_horizontal"
         android:text="@string/call_incoming_will_disconnect"
         android:textColor="@color/blue_grey_100"
         android:textSize="16sp"
@@ -60,7 +59,6 @@
         android:layout_marginBottom="18dp"
         android:layout_gravity="center_horizontal"
         android:focusable="false"
-        android:gravity="center_horizontal"
         android:text="@string/call_incoming_swipe_to_answer"
         android:textAlignment="center"
         android:textAppearance="@style/Dialer.Incall.TextAppearance.Hint"/>
@@ -112,7 +110,6 @@
         android:layout_gravity="center_horizontal"
         android:alpha="0"
         android:focusable="false"
-        android:gravity="center_horizontal"
         android:text="@string/call_incoming_swipe_to_reject"
         android:textAppearance="@style/Dialer.Incall.TextAppearance.Hint"
         tools:alpha="1"/>
diff --git a/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java b/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
index 9c33b5d..77b45ec 100644
--- a/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
+++ b/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
@@ -23,6 +23,7 @@
 import android.support.annotation.NonNull;
 import android.support.annotation.VisibleForTesting;
 import com.android.dialer.common.Assert;
+import com.android.dialer.common.ConfigProvider;
 import com.android.dialer.common.ConfigProviderBindings;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.util.DialerUtils;
@@ -34,9 +35,8 @@
  */
 public class AnswerHintFactory {
 
-  @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
-  static final String CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY = "answer_hint_answered_threshold";
-
+  private static final String CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY =
+      "answer_hint_answered_threshold";
   @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
   static final String CONFIG_ANSWER_HINT_WHITELISTED_DEVICES_KEY =
       "answer_hint_whitelisted_devices";
@@ -58,7 +58,12 @@
 
   @NonNull
   public AnswerHint create(Context context, long puckUpDuration, long puckUpDelay) {
-    if (shouldShowAnswerHint(context, Build.PRODUCT)) {
+
+    if (shouldShowAnswerHint(
+        context,
+        ConfigProviderBindings.get(context),
+        DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context),
+        Build.PRODUCT)) {
       return new DotAnswerHint(context, puckUpDuration, puckUpDelay);
     }
 
@@ -79,23 +84,24 @@
   }
 
   @VisibleForTesting
-  static boolean shouldShowAnswerHint(Context context, String device) {
+  static boolean shouldShowAnswerHint(
+      Context context,
+      ConfigProvider configProvider,
+      SharedPreferences sharedPreferences,
+      String device) {
     if (AccessibilityUtil.isTouchExplorationEnabled(context)) {
       return false;
     }
     // Devices that has the legacy dialer installed are whitelisted as they are likely to go through
     // a UX change during updates.
-    if (!isDeviceWhitelisted(context, device)) {
+    if (!isDeviceWhitelisted(device, configProvider)) {
       return false;
     }
 
     // If the user has gone through the process a few times we can assume they have learnt the
     // method.
-    int answeredCount =
-        DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context)
-            .getInt(ANSWERED_COUNT_PREFERENCE_KEY, 0);
-    long threshold =
-        ConfigProviderBindings.get(context).getLong(CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY, 3);
+    int answeredCount = sharedPreferences.getInt(ANSWERED_COUNT_PREFERENCE_KEY, 0);
+    long threshold = configProvider.getLong(CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY, 3);
     LogUtil.i(
         "AnswerHintFactory.shouldShowAnswerHint",
         "answerCount: %d, threshold: %d",
@@ -109,8 +115,8 @@
    * @param configProvider should provide a list of devices quoted with '/' concatenated to a
    *     string.
    */
-  private static boolean isDeviceWhitelisted(Context context, String device) {
-    return ConfigProviderBindings.get(context)
+  private static boolean isDeviceWhitelisted(String device, ConfigProvider configProvider) {
+    return configProvider
         .getString(CONFIG_ANSWER_HINT_WHITELISTED_DEVICES_KEY, DEFAULT_WHITELISTED_DEVICES_CSV)
         .contains("/" + device + "/");
   }
diff --git a/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java b/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
index 05358d8..21154ca 100644
--- a/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
+++ b/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
@@ -24,9 +24,7 @@
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import com.android.dialer.common.Assert;
-import com.android.dialer.common.LogUtil;
 import com.android.dialer.util.DialerUtils;
-import com.android.incallui.answer.impl.hint.PawSecretCodeListener.PawType;
 
 /** Decrypt the event payload to be shown if in a specific time range and the key is received. */
 @TargetApi(VERSION_CODES.M)
@@ -42,25 +40,10 @@
     if (!preferences.getBoolean(PawSecretCodeListener.PAW_ENABLED_WITH_SECRET_CODE_KEY, false)) {
       return null;
     }
-    @PawType
-    int pawType =
-        preferences.getInt(PawSecretCodeListener.PAW_TYPE, PawSecretCodeListener.PAW_TYPE_INVALID);
-
-    if (pawType == PawSecretCodeListener.PAW_TYPE_INVALID) {
-      LogUtil.i("PawImageLoaderImpl.loadPayload", "paw type not found, rerolling");
-      PawSecretCodeListener.selectPawType(preferences);
-      pawType =
-          preferences.getInt(
-              PawSecretCodeListener.PAW_TYPE, PawSecretCodeListener.PAW_TYPE_INVALID);
+    int drawableId = preferences.getInt(PawSecretCodeListener.PAW_DRAWABLE_ID_KEY, 0);
+    if (drawableId == 0) {
+      return null;
     }
-
-    switch (pawType) {
-      case PawSecretCodeListener.PAW_TYPE_CAT:
-        return context.getDrawable(R.drawable.cat_paw);
-      case PawSecretCodeListener.PAW_TYPE_DOG:
-        return context.getDrawable(R.drawable.dog_paw);
-      default:
-        throw Assert.createAssertionFailException("unknown paw type " + pawType);
-    }
+    return context.getDrawable(drawableId);
   }
 }
diff --git a/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java b/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java
index 3b4512c..a8737c3 100644
--- a/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java
+++ b/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java
@@ -20,7 +20,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
-import android.support.annotation.IntDef;
+import android.preference.PreferenceManager;
 import android.support.annotation.VisibleForTesting;
 import android.text.TextUtils;
 import android.widget.Toast;
@@ -29,7 +29,6 @@
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.logging.DialerImpression.Type;
 import com.android.dialer.logging.Logger;
-import com.android.dialer.util.DialerUtils;
 import java.util.Random;
 
 /**
@@ -41,20 +40,7 @@
   static final String CONFIG_PAW_SECRET_CODE = "paw_secret_code";
 
   public static final String PAW_ENABLED_WITH_SECRET_CODE_KEY = "paw_enabled_with_secret_code";
-
-  /** Which paw to show, must be {@link PawType} */
-  public static final String PAW_TYPE = "paw_type";
-
-  /** Resource id is not stable across app versions. Use {@link #PAW_TYPE} instead. */
-  @Deprecated public static final String PAW_DRAWABLE_ID_KEY = "paw_drawable_id";
-
-  /** Enum for all paws. */
-  @IntDef({PAW_TYPE_INVALID, PAW_TYPE_CAT, PAW_TYPE_DOG})
-  @interface PawType {}
-
-  public static final int PAW_TYPE_INVALID = 0;
-  public static final int PAW_TYPE_CAT = 1;
-  public static final int PAW_TYPE_DOG = 2;
+  public static final String PAW_DRAWABLE_ID_KEY = "paw_drawable_id";
 
   @Override
   public void onReceive(Context context, Intent intent) {
@@ -68,8 +54,7 @@
     if (!TextUtils.equals(secretCode, host)) {
       return;
     }
-    SharedPreferences preferences =
-        DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context);
+    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
     boolean wasEnabled = preferences.getBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, false);
     if (wasEnabled) {
       preferences.edit().putBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, false).apply();
@@ -77,24 +62,20 @@
       Logger.get(context).logImpression(Type.EVENT_ANSWER_HINT_DEACTIVATED);
       LogUtil.i("PawSecretCodeListener.onReceive", "PawAnswerHint disabled");
     } else {
-      selectPawType(preferences);
+      int drawableId;
+      if (new Random().nextBoolean()) {
+        drawableId = R.drawable.cat_paw;
+      } else {
+        drawableId = R.drawable.dog_paw;
+      }
+      preferences
+          .edit()
+          .putBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, true)
+          .putInt(PAW_DRAWABLE_ID_KEY, drawableId)
+          .apply();
       Toast.makeText(context, R.string.event_activated, Toast.LENGTH_SHORT).show();
       Logger.get(context).logImpression(Type.EVENT_ANSWER_HINT_ACTIVATED);
       LogUtil.i("PawSecretCodeListener.onReceive", "PawAnswerHint enabled");
     }
   }
-
-  public static void selectPawType(SharedPreferences preferences) {
-    @PawType int pawType;
-    if (new Random().nextBoolean()) {
-      pawType = PAW_TYPE_CAT;
-    } else {
-      pawType = PAW_TYPE_DOG;
-    }
-    preferences
-        .edit()
-        .putBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, true)
-        .putInt(PAW_TYPE, pawType)
-        .apply();
-  }
 }
diff --git a/java/com/android/incallui/answer/impl/res/values-af/strings.xml b/java/com/android/incallui/answer/impl/res/values-af/strings.xml
index b155ee8..82a8796 100644
--- a/java/com/android/incallui/answer/impl/res/values-af/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-af/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swiep vanaf ikoon om met boodskap af te wys"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Antwoord en beëindig die voortgesette oproep"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is af"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swiep op met twee vingers om te antwoord. Swiep af met twee vingers om af te wys."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Belangrik"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Dringend"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-am/strings.xml b/java/com/android/incallui/answer/impl/res/values-am/strings.xml
index c27705f..4086977 100644
--- a/java/com/android/incallui/answer/impl/res/values-am/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-am/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"በመልዕክት ላለመቀበል ከአዶ ያንሸራቱ"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ይመልሱ እና በመካሄድ ላይ ያለ ጥሪን ይጨርሱ"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ቪዲዮ ጠፍቷል"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ለመመለስ በሁለት ጣት ወደ ላይ ያንሸራቱ። ላለመቀበል በሁለት ጣት ወደ ታች ያንሸራቱ።"</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"አስፈላጊ"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"አስቸኳይ"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ar/strings.xml b/java/com/android/incallui/answer/impl/res/values-ar/strings.xml
index e3f84ff..fc29c16 100644
--- a/java/com/android/incallui/answer/impl/res/values-ar/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ar/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"تمرير سريع من الرمز للرفض مع إرسال رسالة"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"الرد وإنهاء مكالمة جارية"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"الفيديو قيد إيقاف التشغيل"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"مرر بأصبعين لأعلى للرد. مرر بأصبعين لأسفل للرفض."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"مهم"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"عاجل"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-az/strings.xml b/java/com/android/incallui/answer/impl/res/values-az/strings.xml
index 5d113b4..fff561d 100644
--- a/java/com/android/incallui/answer/impl/res/values-az/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-az/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Mesaj göndərərək imtina etmək üçün ikonadan sürüşdürün"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Cavab verin və gedən zəngi bitirin"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videoları deaktivdir"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Cavab vermək üçün iki barmaq ilə yuxarı sürüşdürün. İmtina etmək üçün iki barmaq ilə aşağı sürüşdürün."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Önəmli"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Vacib"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml
index 3acc576..7b29bfa 100644
--- a/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Prevucite od ikone da biste odbili porukom"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Javite se i završite poziv koji je u toku"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Kamera je isključena"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Prevucite nagore pomoću dva prsta da biste odgovorili. Prevucite nadole pomoću dva prsta da biste odbili."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Važno"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Hitno"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-be/strings.xml b/java/com/android/incallui/answer/impl/res/values-be/strings.xml
index 4f34150..228a80f 100644
--- a/java/com/android/incallui/answer/impl/res/values-be/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-be/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Правядзіце ад значка, каб адхіліць, адправіўшы SMS"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Адказаць і скончыць бягучы выклік"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Відэа адключана"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Правядзіце двума пальцамі ўверх, каб адказаць; двума пальцамі ўніз – каб адхіліць."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Важны"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Тэрмінова"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-bg/strings.xml b/java/com/android/incallui/answer/impl/res/values-bg/strings.xml
index 54a5ab9..4e9422f 100644
--- a/java/com/android/incallui/answer/impl/res/values-bg/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-bg/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Прекарайте пръст от иконата, за да отхвърлите със съобщение"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Отговор и завършване на текущото обаждане"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видеото е изключено"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Прекарайте два пръста нагоре за отговаряне, надолу за отхвърляне."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Важно"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Спешно"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-bn/strings.xml b/java/com/android/incallui/answer/impl/res/values-bn/strings.xml
index d2aa4c3..869f7b9 100644
--- a/java/com/android/incallui/answer/impl/res/values-bn/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-bn/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"বার্তা সহ প্রত্যাখ্যান করতে আইকন থেকে সোয়াইপ করুন"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"উত্তর দিন এবং  চলছে এমন কল কেটে দিন"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ভিডিও বন্ধ আছে"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"উত্তর দিতে উপরের দিকে, প্রত্যাখ্যান করতে নিচের দিকে দুই আঙুল দিয়ে সোয়াইপ করুন৷"</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"গুরুত্বপূর্ণ"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"জরুরি"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-bs/strings.xml b/java/com/android/incallui/answer/impl/res/values-bs/strings.xml
index e175887..b36e178 100644
--- a/java/com/android/incallui/answer/impl/res/values-bs/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-bs/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Prevucite preko ikone da odbijete porukom"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Odgovorite na poziv i završite ga"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Kamera je isključena"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Prevucite pomoću dva prsta prema gore da odgovorite. Prevucite pomoću dva prsta prema dolje da odbijete."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Važno"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Hitno"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ca/strings.xml b/java/com/android/incallui/answer/impl/res/values-ca/strings.xml
index 538e0d3..13b3b32 100644
--- a/java/com/android/incallui/answer/impl/res/values-ca/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ca/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Llisca des de la icona per rebutjar la trucada amb un missatge"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Respon a la trucada i finalitza l\'actual"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"El vídeo està desactivat"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Llisca amb dos dits cap amunt per respondre a la trucada i cap avall per rebutjar-la."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-cs/strings.xml b/java/com/android/incallui/answer/impl/res/values-cs/strings.xml
index 626409e..6c69030 100644
--- a/java/com/android/incallui/answer/impl/res/values-cs/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-cs/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Přejetím prstem od ikony hovor odmítnete a pošlete zprávu"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Přijmout hovor a ukončit probíhající hovor"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video je vypnuté"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Přejetím dvěma prsty nahoru hovor přijmete. Přejetím dvěma prsty dolů jej odmítnete."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Důležité"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Naléhavé"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-da/strings.xml b/java/com/android/incallui/answer/impl/res/values-da/strings.xml
index 3870891..3a87d44 100644
--- a/java/com/android/incallui/answer/impl/res/values-da/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-da/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Stryg fra ikonet for at afvise med en besked"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Besvar, og afslut det igangværende opkald"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video er deaktiveret"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Stryg op med to fingre for at besvare. Stryg ned med to fingre for at afvise."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Vigtigt"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Haster"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-de/strings.xml b/java/com/android/incallui/answer/impl/res/values-de/strings.xml
index ab3c33c..f4356d2 100644
--- a/java/com/android/incallui/answer/impl/res/values-de/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-de/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Zum Ablehnen mit Nachricht vom Symbol wegwischen"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Nimm den Anruf an und beende den aktuellen Anruf"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video deaktiviert"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Zum Annehmen mit zwei Fingern nach oben wischen. Zum Ablehnen mit zwei Fingern nach unten wischen."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Wichtig"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Dringend"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-el/strings.xml b/java/com/android/incallui/answer/impl/res/values-el/strings.xml
index d847aac..9c9a0f3 100644
--- a/java/com/android/incallui/answer/impl/res/values-el/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-el/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Σύρετε από το εικονίδιο προς τα έξω για απόρριψη του μηνύματος"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Απάντηση και τερματισμός κλήσης σε εξέλιξη"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Το βίντεο είναι ανενεργό"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Σύρετε με δύο δάχτυλα, προς τα επάνω για απάντηση και προς τα κάτω για απόρριψη."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Σημαντικό"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Επείγον"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml b/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml
index fe6aa46..fb8d156 100644
--- a/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swipe from icon to decline with a message"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Answer and end ongoing call"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is off"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swipe up with two fingers to answer. Swipe down with two fingers to decline."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml b/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml
index fe6aa46..fb8d156 100644
--- a/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swipe from icon to decline with a message"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Answer and end ongoing call"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is off"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swipe up with two fingers to answer. Swipe down with two fingers to decline."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml b/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml
index fe6aa46..fb8d156 100644
--- a/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swipe from icon to decline with a message"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Answer and end ongoing call"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is off"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swipe up with two fingers to answer. Swipe down with two fingers to decline."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml b/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml
index 60fcd01..14928ee 100644
--- a/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Desliza desde el ícono para rechazar la llamada con un mensaje"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Responder y finalizar la llamada en curso"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"El video está desactivado"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Desliza dos dedos hacia arriba para responder la llamada o hacia abajo para rechazarla."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-es/strings.xml b/java/com/android/incallui/answer/impl/res/values-es/strings.xml
index 7b2f19a..972bbc5 100644
--- a/java/com/android/incallui/answer/impl/res/values-es/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-es/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Desliza desde el icono para rechazar con mensaje"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Responder a una llamada y finalizar otra en curso"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"El vídeo está desconectado"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Desliza dos dedos hacia arriba para responder o hacia abajo para rechazar la llamada."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-et/strings.xml b/java/com/android/incallui/answer/impl/res/values-et/strings.xml
index b4632d1..9e303bb 100644
--- a/java/com/android/incallui/answer/impl/res/values-et/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-et/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Sõnumiga keeldumiseks pühkige ikoonilt eemale"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Vastake ja lõpetage käimasolev kõne"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video on välja lülitatud"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Vastamiseks pühkige kahe sõrmega üles. Keeldumiseks pühkige kahe sõrmega alla."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Tähtis"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Kiireloomuline"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-eu/strings.xml b/java/com/android/incallui/answer/impl/res/values-eu/strings.xml
index 118a2c7..a1f6d71 100644
--- a/java/com/android/incallui/answer/impl/res/values-eu/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-eu/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Pasatu hatza ikonotik baztertzeko eta mezu bat bidaltzeko"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Erantzun eta amaitu uneko deia"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Desaktibatuta dago kamera"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Pasatu bi hatz gora erantzuteko; eta behera, baztertzeko."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Garrantzitsua"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Premiazkoa"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-fa/strings.xml b/java/com/android/incallui/answer/impl/res/values-fa/strings.xml
index 971b172..28cf826 100644
--- a/java/com/android/incallui/answer/impl/res/values-fa/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-fa/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"برای رد کردن با ارسال پیام، انگشتتان را تند از روی نماد بکشید"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"پاسخ دادن به تماس درحال انجام و پایان دادن به آن"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ویدیو خاموش است"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"برای پاسخ‌گویی، دو انگشتتان را تند به بالا بکشید و برای رد کردن به پایین بکشید."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"مهم"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"فوری"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-fi/strings.xml b/java/com/android/incallui/answer/impl/res/values-fi/strings.xml
index 7ae9a1f..8b8eac9 100644
--- a/java/com/android/incallui/answer/impl/res/values-fi/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-fi/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Hylkää ja kirjoita viesti pyyhkäisemällä kuvaketta."</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Vastaa puheluun ja lopeta nykyinen puhelu"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videokuva ei ole käytössä."</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Vastaa pyyhkäisemällä ylös kahdella sormella. Hylkää pyyhkäisemällä alas kahdella sormella."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Tärkeä"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Kiireellinen"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml b/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml
index ce454b5..9ea27b8 100644
--- a/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Balayez à partir de l\'icône pour refuser avec un message"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Répondre et mettre fin à l\'appel en cours"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"La vidéo est désactivée"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Balayez vers le haut avec deux doigts pour répondre. Balayez vers le bas avec deux doigts pour refuser."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-fr/strings.xml b/java/com/android/incallui/answer/impl/res/values-fr/strings.xml
index 7f77ed0..3aa3c12 100644
--- a/java/com/android/incallui/answer/impl/res/values-fr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-fr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Appuyer sur l\'icône, puis balayer l\'écran pour refuser l\'appel en envoyant un message"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Répondre ou mettre fin à l\'appel en cours"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"La vidéo est désactivée."</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Balayez l\'écran avec deux doigts vers le haut pour répondre, ou vers le bas pour refuser l\'appel."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Importants"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-gl/strings.xml b/java/com/android/incallui/answer/impl/res/values-gl/strings.xml
index 07e0c51..16c0f69 100644
--- a/java/com/android/incallui/answer/impl/res/values-gl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-gl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Pasar o dedo desde a icona para rexeitar cunha mensaxe"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Responde á chamada entrante e finaliza a chamada en curso"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desactivado"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Pasa dous dedos cara arriba para responder a chamada ou cara abaixo para rexeitala."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urxente"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-gu/strings.xml b/java/com/android/incallui/answer/impl/res/values-gu/strings.xml
index 845e9de..3f99c71 100644
--- a/java/com/android/incallui/answer/impl/res/values-gu/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-gu/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"સંદેશ સાથે નકારવા માટે આઇકનથી સ્વાઇપ કરો"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"જવાબ આપો અને ચાલુ કૉલ સમાપ્ત કરો"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"વિડિઓ બંધ છે"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"જવાબ આપવા માટે બે આંગળી ઉપર સ્વાઇપ કરો. નકારવા માટે બે આંગળી નીચે સ્વાઇપ કરો."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"મહત્વપૂર્ણ"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"તાત્કાલિક"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-hi/strings.xml b/java/com/android/incallui/answer/impl/res/values-hi/strings.xml
index e8e3c75..f28505f 100644
--- a/java/com/android/incallui/answer/impl/res/values-hi/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-hi/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"संदेश के साथ अस्वीकार करने के लिए आइकन से स्वाइप करें"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"कॉल का जवाब दें और जारी कॉल समाप्त करें"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"वीडियो बंद है"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"जवाब देने के लिए दो अंगुलियों से ऊपर स्वाइप करें. अस्वीकार करने के लिए दो अंगुलियों से नीचे स्वाइप करें."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"महत्वपूर्ण"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"बहुत ज़रूरी"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-hr/strings.xml b/java/com/android/incallui/answer/impl/res/values-hr/strings.xml
index ffd0c9b..2807439 100644
--- a/java/com/android/incallui/answer/impl/res/values-hr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-hr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Prijeđite prstom od ikone da biste odbili poruku"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Odgovorite na poziv i prekinite poziv u tijeku"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videokamera je isključena"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Prijeđite dvama prstima prema gore za odgovor, a dvama prstima prema dolje za odbijanje."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Važno"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Hitno"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-hu/strings.xml b/java/com/android/incallui/answer/impl/res/values-hu/strings.xml
index 13ec7da..d7dacbf 100644
--- a/java/com/android/incallui/answer/impl/res/values-hu/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-hu/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Csúsztassa el az ujját az ikonról az üzenettel való elutasításhoz"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Hívásfogadás és a folyamatban lévő hívás befejezése"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"A videokép ki van kapcsolva"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Csúsztassa felfelé két ujját a hívás fogadásához. Csúsztassa lefelé két ujját a hívás elutasításához."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Fontos"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Sürgős"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-hy/strings.xml b/java/com/android/incallui/answer/impl/res/values-hy/strings.xml
index 7fb7ef4..4492833 100644
--- a/java/com/android/incallui/answer/impl/res/values-hy/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-hy/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Զանգը մերժելու և հաղորդագրություն ուղարկելու համար պատկերակից մատով մի կողմ սահեցրեք"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Պատասխանել և ավարտել ընթացիկ զանգը"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Տեսախցիկն անջատած է"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Պատասխանելու համար երկու մատով սահեցրեք վերև, մերժելու համար՝ ներքև:"</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Կարևոր"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Շտապ"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-in/strings.xml b/java/com/android/incallui/answer/impl/res/values-in/strings.xml
index 48d71af..a1fd19f 100644
--- a/java/com/android/incallui/answer/impl/res/values-in/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-in/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Gesek dari ikon untuk menolak dengan pesan"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Menjawab dan mengakhiri panggilan yang sedang berlangsung"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video nonaktif"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Geser ke atas dengan dua jari untuk menjawab. Geser ke bawah dengan dua jari untuk menolak."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Penting"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Penting"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-is/strings.xml b/java/com/android/incallui/answer/impl/res/values-is/strings.xml
index a92a411..c4f9eb4 100644
--- a/java/com/android/incallui/answer/impl/res/values-is/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-is/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Strjúktu frá tákninu til að hafna með skilaboðum"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svara og ljúka yfirstandandi símtali"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Slökkt á myndavél"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Strjúktu upp með tveimur fingrum til að svara. Strjúktu niður með tveimur fingrum til að hafna."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Mikilvægt"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Áríðandi"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-it/strings.xml b/java/com/android/incallui/answer/impl/res/values-it/strings.xml
index b29bca7..70e9722 100644
--- a/java/com/android/incallui/answer/impl/res/values-it/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-it/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Fai scorrere dall\'icona per rifiutare e inviare un messaggio"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Rispondi e termina la chiamata in corso"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Il video è disattivato"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Fai scorrere con due dita verso l\'alto per rispondere e verso il basso per rifiutare."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-iw/strings.xml b/java/com/android/incallui/answer/impl/res/values-iw/strings.xml
index 6544e8f..08c02e3 100644
--- a/java/com/android/incallui/answer/impl/res/values-iw/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-iw/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"החלק מהסמל כדי לדחות עם הודעה"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"מענה וסיום שיחה"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"הווידאו מושבת"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"החלק עם שתי אצבעות למעלה כדי לענות או למטה כדי לדחות."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"חשוב"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"דחופה"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ja/strings.xml b/java/com/android/incallui/answer/impl/res/values-ja/strings.xml
index 83f8f09..b7bd65b 100644
--- a/java/com/android/incallui/answer/impl/res/values-ja/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ja/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"アイコンをスワイプして着信を拒否し、メッセージを送信"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"通話に応答し、進行中の通話を終了"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ビデオ: OFF"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"応答するには 2 本の指で上にスワイプ、拒否するには 2 本の指で下にスワイプします。"</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"重要"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"緊急"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ka/strings.xml b/java/com/android/incallui/answer/impl/res/values-ka/strings.xml
index 4a1120c..6813067 100644
--- a/java/com/android/incallui/answer/impl/res/values-ka/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ka/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"გადაუსვით ხატულადან შეტყობინებით უარყოფისთვის"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"პასუხი და მიმდინარე ზარის დასრულება"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ვიდეო გამორთულია"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"საპასუხოდ გადაფურცლეთ ზემოთ ორი თითით. უარყოფისთვის გადაფურცლეთ ქვემოთ ორი თითით."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"მნიშვნელოვანი"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"სასწრაფო"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-kk/strings.xml b/java/com/android/incallui/answer/impl/res/values-kk/strings.xml
index 69cf949..3d18633 100644
--- a/java/com/android/incallui/answer/impl/res/values-kk/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-kk/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Қабылдамай, жай хабар жіберу үшін, белгішеден әрі қарай сырғытыңыз"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Қоңырауға жауап беру және ағымдағы қоңырауды аяқтау"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Бейне өшірулі"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Жауап беру үшін екі саусақпен жоғары сырғытылады. Қабылдамау үшін екі саусақпен төмен сырғытылады."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Маңызды"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Шұғыл"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-km/strings.xml b/java/com/android/incallui/answer/impl/res/values-km/strings.xml
index db65a97..89f9031 100644
--- a/java/com/android/incallui/answer/impl/res/values-km/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-km/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"អូស​ចេញ​ពី​រូបតំណាង​ដើម្បី​បដិសេធ​​ដោយ​មាន​សារ"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ឆ្លើយ និង​បញ្ចប់​ការ​ហៅ​ទូរសព្ទ​ដែល​កំពុង​ដំណើរការ"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"វីដេអូត្រូវបានបិទ"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"អូស​ម្រាម​ដៃ​ពីរ​ឡើងលើ​ ដើម្បី​ឆ្លើយ។ អូស​ម្រាមដៃ​ពីរ​ចុះ​ក្រោម​ ដើម្បី​បដិសេធ។"</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"សំខាន់"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"បន្ទាន់"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-kn/strings.xml b/java/com/android/incallui/answer/impl/res/values-kn/strings.xml
index 8426aef..f02a6b8 100644
--- a/java/com/android/incallui/answer/impl/res/values-kn/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-kn/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"ಸಂದೇಶದ ಜೊತೆಗೆ ನಿರಾಕರಿಸಲು ಐಕಾನ್‌ನಿಂದ ಸ್ವೈಪ್ ಮಾಡಿ"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ಚಾಲ್ತಿಯಲ್ಲಿರುವ ಕರೆಗೆ ಉತ್ತರಿಸಿ ಮತ್ತು ಅಂತ್ಯಗೊಳಿಸಿ"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ವೀಡಿಯೊ ಆಫ್ ಆಗಿದೆ"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ಉತ್ತರಿಸಲು ಎರಡು ಬೆರಳಿನಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ. ನಿರಾಕರಿಸಲು ಎರಡು ಬೆರಳಿನಿಂದ ಕೆಳಗೆ ಸ್ವೈಪ್ ಮಾಡಿ."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"ಪ್ರಮುಖ"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"ತುರ್ತು"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ko/strings.xml b/java/com/android/incallui/answer/impl/res/values-ko/strings.xml
index 6b6beff..850b440 100644
--- a/java/com/android/incallui/answer/impl/res/values-ko/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ko/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"메시지를 거부하려면 아이콘에서 스와이프하세요."</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"현재 통화를 종료하고 전화 받기"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"동영상이 꺼져 있습니다."</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"받으려면 두 손가락을 위로 스와이프하고 거부하려면 두 손가락을 아래로 스와이프하세요."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"중요"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"긴급"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ky/strings.xml b/java/com/android/incallui/answer/impl/res/values-ky/strings.xml
index 6dd5a2d..dc08e84 100644
--- a/java/com/android/incallui/answer/impl/res/values-ky/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ky/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Чалууну билдирүү менен четке кагуу үчүн сүрөтчөнү сүрүңүз"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Чалууга жооп бериңиз же учурдагы чалууну аяктаңыз"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видео өчүк"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Жооп берүү үчүн экранды өйдө сүрүп, четке кагуу үчүн ылдый сүрүп коюңуз."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Маанилүү"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Шашылыш"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-lo/strings.xml b/java/com/android/incallui/answer/impl/res/values-lo/strings.xml
index 776c027..06ad00c 100644
--- a/java/com/android/incallui/answer/impl/res/values-lo/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-lo/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"ປັດຈາກໄອຄອນເພື່ອປະຕິເສດຂໍ້ຄວາມ"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ຮັບສາຍ ແລະ ວາງສາຍທີ່ກຳລັງໂທອອກ"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ວິດີໂອປິດຢູ່"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ປັດສອງນິ້ວຂຶ້ນເພື່ອຮັບສາຍ. ປັດສອງນິ້ວລົງເພື່ອປະຕິເສດ."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"ສຳຄັນ"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"ດ່ວນ"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-lt/strings.xml b/java/com/android/incallui/answer/impl/res/values-lt/strings.xml
index 2ef70ea..3366e33 100644
--- a/java/com/android/incallui/answer/impl/res/values-lt/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-lt/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Perbraukite iš piktogramos, kad atmestumėte išsiųsdami pranešimą"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atsakykite ir užbaikite vykstantį skambutį"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Vaizdas išjungtas"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Perbraukite dviem pirštais aukštyn, kad atsakytumėte. Perbraukite dviem pirštais žemyn, kad atmestumėte."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Svarbu"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Skubus"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-lv/strings.xml b/java/com/android/incallui/answer/impl/res/values-lv/strings.xml
index 3fc754d..49d1dc9 100644
--- a/java/com/android/incallui/answer/impl/res/values-lv/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-lv/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Lai noraidītu, izmantojot ziņojumu, velciet no ikonas"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atbildiet un beidziet notiekošo zvanu"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video ir izslēgts"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Ar diviem pirkstiem velciet augšup, lai atbildētu. Ar diviem pirkstiem velciet lejup, lai noraidītu."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Svarīgs"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Steidzams"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-mk/strings.xml b/java/com/android/incallui/answer/impl/res/values-mk/strings.xml
index deeba45..c068f66 100644
--- a/java/com/android/incallui/answer/impl/res/values-mk/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-mk/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Повлечете од иконата за да одбиете со порака"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Одговорете и завршете го тековниот повик"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видеото е исклучено"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Повлечете нагоре со два прста за да одговорите. Повлечете надолу со два прста за да одбиете."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Важно"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Итно"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ml/strings.xml b/java/com/android/incallui/answer/impl/res/values-ml/strings.xml
index d8ce90d..8e1d492 100644
--- a/java/com/android/incallui/answer/impl/res/values-ml/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ml/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"സന്ദേശമയച്ചുകൊണ്ട് നിരസിക്കാൻ ഐക്കണിൽ നിന്ന് സ്വൈപ്പുചെയ്യുക"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"മറുപടി നൽകുകയും നിലവിലുള്ള കോൾ അവസാനിപ്പിക്കുകയും ചെയ്യൂ"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"വീഡിയോ ഓഫാണ്"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"മറുപടി നൽകാൻ രണ്ടുവിരലുകൾ ഉപയോഗിച്ച് മുകളിലേക്ക് സ്വൈപ്പുചെയ്യുക. നിരസിക്കാൻ രണ്ടുവിരലുകൾ ഉപയോഗിച്ച് താഴേക്ക് സ്വൈപ്പുചെയ്യുക."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"പ്രധാനപ്പെട്ടവ"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"അടിയന്തിര പ്രാധാന്യം"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-mn/strings.xml b/java/com/android/incallui/answer/impl/res/values-mn/strings.xml
index aaa1621..4bdd912 100644
--- a/java/com/android/incallui/answer/impl/res/values-mn/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-mn/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Зурвас явуулангаа татгалзах бол дүрснээс шударна уу"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Ирсэн дуудлагыг авч, одоогийн дуудлагыг таслах"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видео идэвхгүй байна"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Хариулах бол хоёр хуруугаар дээш шударна уу. Таслах бол хоёр хуруугаар доош шударна уу."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Чухал"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Яаралтай"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-mr/strings.xml b/java/com/android/incallui/answer/impl/res/values-mr/strings.xml
index eea662f..11c8268 100644
--- a/java/com/android/incallui/answer/impl/res/values-mr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-mr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"संदेशासह नाकारण्यासाठी आयकॉनपासून स्वाइप करा"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"उत्तर द्या आणि सुरु असलेला कॉल बंद करा"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"व्हिडिओ बंद आहे"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"उत्तर देण्यासाठी दोन बोटांनी वर स्वाइप करा. नकार देण्यासाठी दोन बोटांनी खाली स्वाइप करा."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"महत्त्वाचे"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"त्वरित"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ms/strings.xml b/java/com/android/incallui/answer/impl/res/values-ms/strings.xml
index 04b054e..36ede75 100644
--- a/java/com/android/incallui/answer/impl/res/values-ms/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ms/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Leret dari ikon untuk menolak dengan mesej"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Jawab dan tamatkan panggilan yang sedang berlangsung"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video dimatikan"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Leret dua jari ke atas untuk menjawab. Leret dua jari ke bawah untuk menolak."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Penting"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Segera"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-my/strings.xml b/java/com/android/incallui/answer/impl/res/values-my/strings.xml
index f3d6a2e..5ad7a82 100644
--- a/java/com/android/incallui/answer/impl/res/values-my/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-my/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"မက်ဆေ့ဂျ်ဖြင့်ငြင်းပယ်ရန် သင်္ကေတမှ ပွတ်ဆွဲပါ"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ဖြေကြားပြီး လက်ရှိခေါ်ဆိုမှုကို အပြီးသတ်ပါ"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ဗီဒီယို ပိတ်ထားပါသည်"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ဖြေကြားရန် လက်နှစ်ချောင်းဖြင့် အပေါ်သို့ ပွတ်ဆွဲပါ။ ငြင်းပယ်ရန် လက်နှစ်ချောင်းဖြင့် အောက်သို့ ပွတ်ဆွဲပါ။"</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"အရေးကြီး"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"အရေးတကြီး"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-nb/strings.xml b/java/com/android/incallui/answer/impl/res/values-nb/strings.xml
index 42ff3d0..b1c32be 100644
--- a/java/com/android/incallui/answer/impl/res/values-nb/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-nb/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Sveip fra ikonet for å avslå med en melding"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svar, og avslutt samtalen som er i gang"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video er av"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Sveip oppover med to fingre for å svare. Sveip nedover med to fingre for å avvise."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Viktig"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Haster"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ne/strings.xml b/java/com/android/incallui/answer/impl/res/values-ne/strings.xml
index f0b8641..40ef7b6 100644
--- a/java/com/android/incallui/answer/impl/res/values-ne/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ne/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"सन्देश सहित अस्वीकार गर्न आइकनबाट स्वाइप गर्नुहोस्"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"जवाफ फर्काउनुहोस् र जारी कललाई अन्त्य गर्नुहोस्"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"भिडियो निष्क्रिय छ"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"जवाफ दिन दुई औंलाले माथितिर स्वाइप गर्नुहोस्। अस्वीकार गर्न दुई औंलाले तलतिर स्वाइप गर्नुहोस्।"</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"महत्त्वपूर्ण"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"जरुरी"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-nl/strings.xml b/java/com/android/incallui/answer/impl/res/values-nl/strings.xml
index 89c956a..b2f619f 100644
--- a/java/com/android/incallui/answer/impl/res/values-nl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-nl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Veeg vanaf pictogram om te weigeren met bericht"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Opnemen en actieve oproep beëindigen"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is uit"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Veeg met twee vingers omhoog om te beantwoorden. Veeg met twee vingers omlaag om te weigeren."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Belangrijk"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-no/strings.xml b/java/com/android/incallui/answer/impl/res/values-no/strings.xml
index 42ff3d0..b1c32be 100644
--- a/java/com/android/incallui/answer/impl/res/values-no/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-no/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Sveip fra ikonet for å avslå med en melding"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svar, og avslutt samtalen som er i gang"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video er av"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Sveip oppover med to fingre for å svare. Sveip nedover med to fingre for å avvise."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Viktig"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Haster"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pa/strings.xml b/java/com/android/incallui/answer/impl/res/values-pa/strings.xml
index 3772f29..d2b1452 100644
--- a/java/com/android/incallui/answer/impl/res/values-pa/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pa/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"ਸੁਨੇਹੇ ਦੇ ਨਾਲ ਅਸਵੀਕਾਰ ਕਰਨ ਲਈ ਚਿੰਨ੍ਹ ਤੋਂ ਸਵਾਈਪ ਕਰੋ"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ਜਵਾਬ ਦਿਓ ਅਤੇ ਜਾਰੀ ਕਾਲ ਨੂੰ ਸਮਾਪਤ ਕਰੋ"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ਵੀਡੀਓ ਬੰਦ ਹੈ"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ਜਵਾਬ ਦੇਣ ਲਈ ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ। ਅਸਵੀਕਾਰ ਕਰਨ ਲਈ ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਹੇਠਾਂ ਵੱਲ ਸਵਾਈਪ ਕਰੋ।"</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"ਮਹੱਤਵਪੂਰਨ"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"ਜ਼ਰੂਰੀ"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pl/strings.xml b/java/com/android/incallui/answer/impl/res/values-pl/strings.xml
index f6e1f1b..b0c44e7 100644
--- a/java/com/android/incallui/answer/impl/res/values-pl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Przesuń palcem od ikony, aby odrzucić połączenie i wysłać wiadomość"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Odbierz połączenie i zakończ trwającą rozmowę"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Wideo jest wyłączone"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Przesuń dwoma palcami w górę, aby odebrać. Przesuń dwoma palcami w dół, aby odrzucić."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Ważne"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Pilne"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml b/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml
index 1ed2451..fe1c89d 100644
--- a/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Deslize a partir do ícone para recusar com uma mensagem"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atender e encerrar a chamada em andamento"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desativado"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Deslize com dois dedos para cima para atender. Deslize com dois dedos para baixo para recusar."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml b/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml
index f1e17a1..1a23a4a 100644
--- a/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Deslize rapidamente a partir do ícone para recusar com uma mensagem"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atender e terminar uma chamada em curso"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desativado"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Deslize rapidamente com dois dedos para cima para responder. Deslize rapidamente com dois dedos para baixo para recusar."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pt/strings.xml b/java/com/android/incallui/answer/impl/res/values-pt/strings.xml
index 1ed2451..fe1c89d 100644
--- a/java/com/android/incallui/answer/impl/res/values-pt/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pt/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Deslize a partir do ícone para recusar com uma mensagem"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atender e encerrar a chamada em andamento"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desativado"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Deslize com dois dedos para cima para atender. Deslize com dois dedos para baixo para recusar."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ro/strings.xml b/java/com/android/incallui/answer/impl/res/values-ro/strings.xml
index 0b1f4f4..6c8bafa 100644
--- a/java/com/android/incallui/answer/impl/res/values-ro/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ro/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Glisați de pe pictogramă pentru a respinge cu un mesaj"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Răspundeți și încheiați apelul în curs"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Camera video este dezactivată."</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Glisați cu două degete în sus pentru a răspunde și în jos pentru a respinge."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ru/strings.xml b/java/com/android/incallui/answer/impl/res/values-ru/strings.xml
index d1fdcf7..67ff06a 100644
--- a/java/com/android/incallui/answer/impl/res/values-ru/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ru/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Чтобы отклонить вызов и отправить SMS, проведите пальцем от значка"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Ответить и завершить текущий вызов"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Камера выключена"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Проведите двумя пальцами по экрану вверх, чтобы ответить, или вниз, чтобы отклонить вызов."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Важный звонок"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Срочно"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-si/strings.xml b/java/com/android/incallui/answer/impl/res/values-si/strings.xml
index 99f4989..ae3c080 100644
--- a/java/com/android/incallui/answer/impl/res/values-si/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-si/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"පණිවිඩය සහිතව ප්‍රතික්ෂේප කිරීමට නිරූපකයේ සිට ස්වයිප් කරන්න"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"යන අැමතුමට පිළිතරු දී අවසන් කරන්න"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"වීඩියෝව ක්‍රියාවිරහිතයි"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"පිළිතුරු දීමට ඇඟිලි දෙකකින් ඉහළට ස්වයිප් කරන්න, ප්‍රතික්ෂේප කිරීමට ඇඟිලි දෙකකින් පහළට ස්වයිප් කරන්න."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"වැදගත්"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"හදිසි"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sk/strings.xml b/java/com/android/incallui/answer/impl/res/values-sk/strings.xml
index fa00ac4..179be7b 100644
--- a/java/com/android/incallui/answer/impl/res/values-sk/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sk/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Prejdením prstom od ikony odmietnuť so správou"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Prijať hovor a ukončiť prebiehajúci hovor"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video je vypnuté"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Ak chcete hovor prijať, prejdite dvomi prstami nahor. Ak ho chcete odmietnuť, prejdite dvomi prstami nadol."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Dôležité"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Naliehavé"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sl/strings.xml b/java/com/android/incallui/answer/impl/res/values-sl/strings.xml
index 147a098..5f658be 100644
--- a/java/com/android/incallui/answer/impl/res/values-sl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Povlecite z ikone, da klic zavrnete s sporočilom"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Sprejmi klic in končaj aktivni klic"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video je izklopljen"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Z dvema prstoma povlecite navzgor, da sprejmete klic. Z dvema prstoma povlecite navzdol, da zavrnete klic."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Pomembno"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Nujno"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sq/strings.xml b/java/com/android/incallui/answer/impl/res/values-sq/strings.xml
index e71691a..1de60c9 100644
--- a/java/com/android/incallui/answer/impl/res/values-sq/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sq/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Rrëshqit nga ikona për të refuzuar me mesazh"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Përgjigju dhe mbyll telefonatën në vazhdim"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videoja është joaktive"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Rrëshqit dy gishta lart për t\'u përgjigjur. Rrëshqit dy gishta poshtë për të refuzuar."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"E rëndësishme"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgjente"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sr/strings.xml b/java/com/android/incallui/answer/impl/res/values-sr/strings.xml
index c802b0e..4d6ef56 100644
--- a/java/com/android/incallui/answer/impl/res/values-sr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Превуците од иконе да бисте одбили поруком"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Јавите се и завршите позив који је у току"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Камера је искључена"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Превуците нагоре помоћу два прста да бисте одговорили. Превуците надоле помоћу два прста да бисте одбили."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Важно"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Хитно"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sv/strings.xml b/java/com/android/incallui/answer/impl/res/values-sv/strings.xml
index 2265dc4..e47b4e0 100644
--- a/java/com/android/incallui/answer/impl/res/values-sv/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sv/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Svep från ikonen för att avvisa med meddelande"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svara och avsluta pågående samtal"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video avstängd"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Dra två fingrar uppåt för att svara och två nedåt för att avvisa."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Viktigt"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Brådskande"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sw/strings.xml b/java/com/android/incallui/answer/impl/res/values-sw/strings.xml
index 26e1b7a..1e58966 100644
--- a/java/com/android/incallui/answer/impl/res/values-sw/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sw/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Telezesha kidole ukianzia kwenye aikoni ili utume ujumbe wa kukataa"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Jibu na ukate simu inayoendelea"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video imezimwa"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Telezesha juu kwa vidole viwili ili uijibu. Telezesha chini kwa vidole viwili ili uikate."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Muhimu"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Dharura"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ta/strings.xml b/java/com/android/incallui/answer/impl/res/values-ta/strings.xml
index 453781d..847936f 100644
--- a/java/com/android/incallui/answer/impl/res/values-ta/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ta/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"செய்தியுடன் நிராகரிக்க, ஐகானிலிருந்து ஸ்வைப் செய்யவும்"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"உள்வரும் அழைப்பிற்குப் பதிலளித்து, செயலில் உள்ள அழைப்பை முடிக்கும்"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"வீடியோ முடக்கப்பட்டுள்ளது"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"பதிலளிக்க, இரு விரல்களால் மேலே ஸ்வைப் செய்யவும். நிராகரிக்க, இரு விரல்களால் கீழே ஸ்வைப் செய்யவும்."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"முக்கிய அழைப்பு"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"அவசரம்"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-te/strings.xml b/java/com/android/incallui/answer/impl/res/values-te/strings.xml
index e0e5087..abc3902 100644
--- a/java/com/android/incallui/answer/impl/res/values-te/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-te/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"సందేశంతో తిరస్కరించడానికి చిహ్నం నుండి స్వైప్ చేయండి"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"సమాధానం ఇస్తుంది మరియు కొనసాగుతున్న కాల్‌ను ముగిస్తుంది"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"వీడియో ఆఫ్‌లో ఉంది"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"సమాధానం ఇవ్వడానికి రెండు వేళ్లతో పైకి స్వైప్ చేయండి. తిరస్కరించడానికి రెండు వేళ్లతో క్రిందికి స్వైప్ చేయండి."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"ముఖ్యమైనది"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"అత్యవసరం"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-th/strings.xml b/java/com/android/incallui/answer/impl/res/values-th/strings.xml
index 695da74..54069b3 100644
--- a/java/com/android/incallui/answer/impl/res/values-th/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-th/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"เลื่อนไอคอนเพื่อปฏิเสธสายด้วยข้อความ"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"รับและวางสาย"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"วิดีโอปิดอยู่"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ใช้สองนิ้วเลื่อนขึ้นเพื่อรับสายและเลื่อนลงเพื่อตัดสาย"</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"สำคัญ"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"ด่วน"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-tl/strings.xml b/java/com/android/incallui/answer/impl/res/values-tl/strings.xml
index 6128d6f..8f87b56 100644
--- a/java/com/android/incallui/answer/impl/res/values-tl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-tl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"I-swipe mula sa icon upang tanggihan gamit ang mensahe"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Sagutin at tapusin ang kasalukuyang tawag"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Naka-off ang video"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"I-swipe nang pataas gamit ang dalawang daliri upang sagutin. I-swipe nang pababa gamit ang dalawang daliri upang tanggihan."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Mahalaga"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Apurahan"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-tr/strings.xml b/java/com/android/incallui/answer/impl/res/values-tr/strings.xml
index 87583c0..53f5eb9 100644
--- a/java/com/android/incallui/answer/impl/res/values-tr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-tr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Mesajla reddetmek için, simgeden hızlıca kaydırın"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Bir çağrı cevaplanır ve devam eden çağrı sona erdirilir"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video kapalı"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Cevaplamak için iki parmağınızla hızlıca yukarı kaydırın. Reddetmek içinse iki parmağınızla hızlıca aşağı kaydırın."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Önemli"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Acil"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-uk/strings.xml b/java/com/android/incallui/answer/impl/res/values-uk/strings.xml
index 76eb2b0..a0332d3 100644
--- a/java/com/android/incallui/answer/impl/res/values-uk/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-uk/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Проведіть пальцем убік від значка, щоб відхилити з повідомленням"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Відповісти на виклик, завершивши поточний"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Відео вимкнено"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Проведіть двома пальцями вгору, щоб відповісти, або вниз, щоб відхилити дзвінок."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Важливо"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Терміново"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ur/strings.xml b/java/com/android/incallui/answer/impl/res/values-ur/strings.xml
index 2a44e90..e1813cb 100644
--- a/java/com/android/incallui/answer/impl/res/values-ur/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ur/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"پیغام کے ساتھ رد کرنے کیلئے آئیکن سے سوائپ کریں"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"جواب دیں اور جاری کال ختم کریں"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ویڈیو آف ہے"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"جواب دینے کیلئے دوانگلیوں کے ساتھ اوپر سوائپ کریں۔ مسترد کرنے کیلئے دو انگلیوں کے ساتھ نیچے سوائپ کریں۔"</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"اہم"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"ارجنٹ"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-uz/strings.xml b/java/com/android/incallui/answer/impl/res/values-uz/strings.xml
index f348a49..b83abcc 100644
--- a/java/com/android/incallui/answer/impl/res/values-uz/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-uz/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Qo‘ng‘iroqni SMS bilan rad etish uchun nishonchadan suring."</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Kiruvchi chaqiruvga javob berish va joriy qo‘ng‘iroqni tugatish"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Kamera o‘chiq"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Chaqiruvga javob berish uchun ikki barmoq bilan tepaga, rad etish uchun ikki barmoq bilan pastga suring."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Muhim qo‘ng‘iroq"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Juda muhim"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-vi/strings.xml b/java/com/android/incallui/answer/impl/res/values-vi/strings.xml
index f4dfa5b..94dd1c3 100644
--- a/java/com/android/incallui/answer/impl/res/values-vi/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-vi/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Vuốt từ biểu tượng để từ chối kèm thông báo"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Trả lời và kết thúc cuộc gọi đang diễn ra"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video đã tắt"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Vuốt hai ngón tay lên để trả lời. Vuốt hai ngón tay xuống để từ chối."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Quan trọng"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Khẩn cấp"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml b/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml
index 9698aa0..fc7ce64 100644
--- a/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"滑动图标即可拒接来电并发送信息"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"接听并结束当前通话"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"摄像头处于关闭状态"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"双指向上滑动即可接听，向下滑动则可拒接。"</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"重要"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"紧急"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml b/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml
index 81a8815..9795539 100644
--- a/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"從圖示快速滑動即可透過訊息拒絕"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"接聽及結束進行中的通話"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"視像已關閉"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"兩指向上滑動可接聽，向下滑動則可拒接。"</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"重要事項"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"緊急"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml b/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml
index 8f04992..f27e5ae 100644
--- a/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"滑動圖示即可拒接來電並傳送簡訊"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"接聽來電及結束進行中的通話"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"已關閉攝影機"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"用雙指向上滑動可接聽，向下滑動可拒接。"</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"重要"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"緊急"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-zu/strings.xml b/java/com/android/incallui/answer/impl/res/values-zu/strings.xml
index 23c988e..52f2400 100644
--- a/java/com/android/incallui/answer/impl/res/values-zu/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-zu/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swayipha isithonjana ukuze wenqabe ngomlayezo"</string>
@@ -36,5 +20,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Phendula uphinde uqede ikholi eqhubekayo"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Ividiyo ivaliwe"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swayiphela iminwe emibili phezulu ukuze uphendule. Swayiphela iminwe emibili phansi ukuze wenqabe."</string>
-    <string name="call_incoming_important" msgid="3762352743365137090">"Kubalulekile"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Okuphuthumayo"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values/strings.xml b/java/com/android/incallui/answer/impl/res/values/strings.xml
index de5ee6e..2359220 100644
--- a/java/com/android/incallui/answer/impl/res/values/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values/strings.xml
@@ -1,19 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
 <resources>
   <string name="call_incoming_swipe_to_decline_with_message">Swipe from icon to decline with message</string>
   <string name="call_incoming_swipe_to_answer_video_as_audio">Swipe from icon to answer as an audio call</string>
@@ -41,5 +26,5 @@
   <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
   <string description="The message announced to accessibility assistance on incoming call."
     name="a11y_incoming_call_swipe_gesture_prompt">Two finger swipe up to answer. Two finger swipe down to decline.</string>
-  <string name="call_incoming_important">Important</string>
+  <string name="call_incoming_important">Urgent</string>
 </resources>
diff --git a/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java b/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java
index 10a3413..9815981 100644
--- a/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java
+++ b/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java
@@ -32,10 +32,6 @@
   void onReject();
 
   void onAnswerAndReleaseCall();
-
-  void onAnswerAndReleaseButtonEnabled();
-
-  void onAnswerAndReleaseButtonDisabled();
   /**
    * Sets the window background color based on foreground call's theme and the given progress. This
    * is called from the answer UI to animate the accept and reject action.
diff --git a/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java b/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java
index fe4ae9f..24fbfc4 100644
--- a/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java
+++ b/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java
@@ -143,9 +143,6 @@
   public void onInternationalCallOnWifi() {}
 
   @Override
-  public void onEnrichedCallSessionUpdate() {}
-
-  @Override
   public void onDialerCallSessionModificationStateChange() {}
 
   @Override
diff --git a/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java b/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java
index c7a9d63..c757477 100644
--- a/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java
+++ b/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java
@@ -18,7 +18,6 @@
 
 import android.app.Dialog;
 import android.content.Context;
-import android.content.DialogInterface;
 import android.content.res.ColorStateList;
 import android.graphics.PorterDuff.Mode;
 import android.os.Bundle;
@@ -42,8 +41,6 @@
   /** Called when an audio route is picked */
   public interface AudioRouteSelectorPresenter {
     void onAudioRouteSelected(int audioRoute);
-
-    void onAudioRouteSelectorDismiss();
   }
 
   public static AudioRouteSelectorDialogFragment newInstance(CallAudioState audioState) {
@@ -94,14 +91,6 @@
     return view;
   }
 
-  @Override
-  public void onDismiss(DialogInterface dialogInterface) {
-    super.onDismiss(dialogInterface);
-    FragmentUtils.getParentUnsafe(
-            AudioRouteSelectorDialogFragment.this, AudioRouteSelectorPresenter.class)
-        .onAudioRouteSelectorDismiss();
-  }
-
   private void initItem(TextView item, final int itemRoute, CallAudioState audioState) {
     int selectedColor = getResources().getColor(R.color.dialer_theme_color);
     if ((audioState.getSupportedRouteMask() & itemRoute) == 0) {
diff --git a/java/com/android/incallui/bindings/InCallUiBindings.java b/java/com/android/incallui/bindings/InCallUiBindings.java
index 5c6aef4..d3d3a8b 100644
--- a/java/com/android/incallui/bindings/InCallUiBindings.java
+++ b/java/com/android/incallui/bindings/InCallUiBindings.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.support.annotation.Nullable;
+import com.android.dialer.common.ConfigProvider;
 
 /** This interface allows the container application to customize the in call UI. */
 public interface InCallUiBindings {
@@ -36,4 +37,12 @@
    */
   @Nullable
   Intent getCallStateButtonBroadcastIntent(Context context);
+
+  @Nullable
+  DistanceHelper newDistanceHelper(Context context, DistanceHelper.Listener listener);
+
+  @Nullable
+  ContactUtils getContactUtilsInstance(Context context);
+
+  ConfigProvider getConfigProvider();
 }
diff --git a/java/com/android/incallui/bindings/InCallUiBindingsStub.java b/java/com/android/incallui/bindings/InCallUiBindingsStub.java
index 3a005b0..7b42fb3 100644
--- a/java/com/android/incallui/bindings/InCallUiBindingsStub.java
+++ b/java/com/android/incallui/bindings/InCallUiBindingsStub.java
@@ -19,9 +19,11 @@
 import android.content.Context;
 import android.content.Intent;
 import android.support.annotation.Nullable;
+import com.android.dialer.common.ConfigProvider;
 
 /** Default implementation for InCallUi bindings. */
 public class InCallUiBindingsStub implements InCallUiBindings {
+  private ConfigProvider configProvider;
 
   @Override
   @Nullable
@@ -40,4 +42,40 @@
   public Intent getCallStateButtonBroadcastIntent(Context context) {
     return null;
   }
+
+  @Override
+  @Nullable
+  public DistanceHelper newDistanceHelper(Context context, DistanceHelper.Listener listener) {
+    return null;
+  }
+
+  @Override
+  @Nullable
+  public ContactUtils getContactUtilsInstance(Context context) {
+    return null;
+  }
+
+  @Override
+  public ConfigProvider getConfigProvider() {
+    if (configProvider == null) {
+      configProvider =
+          new ConfigProvider() {
+            @Override
+            public String getString(String key, String defaultValue) {
+              return defaultValue;
+            }
+
+            @Override
+            public long getLong(String key, long defaultValue) {
+              return defaultValue;
+            }
+
+            @Override
+            public boolean getBoolean(String key, boolean defaultValue) {
+              return defaultValue;
+            }
+          };
+    }
+    return configProvider;
+  }
 }
diff --git a/java/com/android/incallui/call/CallList.java b/java/com/android/incallui/call/CallList.java
index 3876ca6..34f0cc0 100644
--- a/java/com/android/incallui/call/CallList.java
+++ b/java/com/android/incallui/call/CallList.java
@@ -32,8 +32,6 @@
 import com.android.dialer.blocking.FilteredNumbersUtil;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.enrichedcall.EnrichedCallComponent;
-import com.android.dialer.enrichedcall.EnrichedCallManager;
 import com.android.dialer.location.GeoUtil;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
@@ -119,10 +117,6 @@
         new DialerCall(context, this, telecomCall, latencyReport, true /* registerCallback */);
     logSecondIncomingCall(context, call);
 
-    EnrichedCallManager manager = EnrichedCallComponent.get(context).getEnrichedCallManager();
-    manager.registerCapabilitiesListener(call);
-    manager.registerStateChangedListener(call);
-
     final DialerCallListenerImpl dialerCallListener = new DialerCallListenerImpl(call);
     call.addListener(dialerCallListener);
     LogUtil.d("CallList.onCallAdded", "callState=" + call.getState());
@@ -284,10 +278,6 @@
       DialerCall call = mCallByTelecomCall.get(telecomCall);
       Assert.checkArgument(!call.isExternalCall());
 
-      EnrichedCallManager manager = EnrichedCallComponent.get(context).getEnrichedCallManager();
-      manager.unregisterCapabilitiesListener(call);
-      manager.unregisterStateChangedListener(call);
-
       // Don't log an already logged call. logCall() might be called multiple times
       // for the same call due to b/24109437.
       if (call.getLogState() != null && !call.getLogState().isLogged) {
@@ -803,9 +793,6 @@
     }
 
     @Override
-    public void onEnrichedCallSessionUpdate() {}
-
-    @Override
     public void onDialerCallSessionModificationStateChange() {
       for (Listener listener : mListeners) {
         listener.onSessionModificationStateChange(mCall);
diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java
index 12edb07..acedf41 100644
--- a/java/com/android/incallui/call/DialerCall.java
+++ b/java/com/android/incallui/call/DialerCall.java
@@ -51,10 +51,6 @@
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.enrichedcall.EnrichedCallCapabilities;
 import com.android.dialer.enrichedcall.EnrichedCallComponent;
-import com.android.dialer.enrichedcall.EnrichedCallManager;
-import com.android.dialer.enrichedcall.EnrichedCallManager.CapabilitiesListener;
-import com.android.dialer.enrichedcall.EnrichedCallManager.Filter;
-import com.android.dialer.enrichedcall.EnrichedCallManager.StateChangedListener;
 import com.android.dialer.enrichedcall.Session;
 import com.android.dialer.lightbringer.LightbringerComponent;
 import com.android.dialer.logging.ContactLookupResult;
@@ -81,7 +77,7 @@
 import java.util.concurrent.TimeUnit;
 
 /** Describes a single call and its state. */
-public class DialerCall implements VideoTechListener, StateChangedListener, CapabilitiesListener {
+public class DialerCall implements VideoTechListener {
 
   public static final int CALL_HISTORY_STATUS_UNKNOWN = 0;
   public static final int CALL_HISTORY_STATUS_PRESENT = 1;
@@ -147,12 +143,6 @@
   private EnrichedCallCapabilities mEnrichedCallCapabilities;
   private Session mEnrichedCallSession;
 
-  private int answerAndReleaseButtonDisplayedTimes = 0;
-  private boolean releasedByAnsweringSecondCall = false;
-  // Times when a second call is received but AnswerAndRelease button is not shown
-  // since it's not supported.
-  private int secondCallWithoutAnswerAndReleasedButtonTimes = 0;
-
   public static String getNumberFromHandle(Uri handle) {
     return handle == null ? "" : handle.getSchemeSpecificPart();
   }
@@ -302,8 +292,6 @@
 
     mTimeAddedMs = System.currentTimeMillis();
     parseCallSpecificAppData();
-
-    updateEnrichedCallSession();
   }
 
   private static int translateState(int state) {
@@ -425,12 +413,6 @@
       for (DialerCallListener listener : mListeners) {
         listener.onDialerCallDisconnect();
       }
-      EnrichedCallComponent.get(mContext)
-          .getEnrichedCallManager()
-          .unregisterCapabilitiesListener(this);
-      EnrichedCallComponent.get(mContext)
-          .getEnrichedCallManager()
-          .unregisterCapabilitiesListener(this);
     } else {
       for (DialerCallListener listener : mListeners) {
         listener.onDialerCallUpdate();
@@ -978,30 +960,6 @@
     return mLatencyReport;
   }
 
-  public int getAnswerAndReleaseButtonDisplayedTimes() {
-    return answerAndReleaseButtonDisplayedTimes;
-  }
-
-  public void increaseAnswerAndReleaseButtonDisplayedTimes() {
-    answerAndReleaseButtonDisplayedTimes++;
-  }
-
-  public boolean getReleasedByAnsweringSecondCall() {
-    return releasedByAnsweringSecondCall;
-  }
-
-  public void setReleasedByAnsweringSecondCall(boolean releasedByAnsweringSecondCall) {
-    this.releasedByAnsweringSecondCall = releasedByAnsweringSecondCall;
-  }
-
-  public int getSecondCallWithoutAnswerAndReleasedButtonTimes() {
-    return secondCallWithoutAnswerAndReleasedButtonTimes;
-  }
-
-  public void increaseSecondCallWithoutAnswerAndReleasedButtonTimes() {
-    secondCallWithoutAnswerAndReleasedButtonTimes++;
-  }
-
   @Nullable
   public EnrichedCallCapabilities getEnrichedCallCapabilities() {
     return mEnrichedCallCapabilities;
@@ -1214,66 +1172,6 @@
     TelecomAdapter.getInstance().setAudioRoute(CallAudioState.ROUTE_SPEAKER);
   }
 
-  @Override
-  public void onCapabilitiesUpdated() {
-    if (getNumber() == null) {
-      return;
-    }
-    EnrichedCallCapabilities capabilities =
-        EnrichedCallComponent.get(mContext).getEnrichedCallManager().getCapabilities(getNumber());
-    if (capabilities != null) {
-      setEnrichedCallCapabilities(capabilities);
-      update();
-    }
-  }
-
-  @Override
-  public void onEnrichedCallStateChanged() {
-    updateEnrichedCallSession();
-  }
-
-  private void updateEnrichedCallSession() {
-    if (getNumber() == null) {
-      return;
-    }
-    if (getEnrichedCallSession() != null) {
-      // State changes to existing sessions are currently handled by the UI components (which have
-      // their own listeners). Someday instead we could remove those and just call update() here and
-      // have the usual onDialerCallUpdate update the UI.
-      dispatchOnEnrichedCallSessionUpdate();
-      return;
-    }
-
-    EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager();
-
-    Filter filter =
-        isIncoming()
-            ? manager.createIncomingCallComposerFilter()
-            : manager.createOutgoingCallComposerFilter();
-
-    Session session = manager.getSession(getUniqueCallId(), getNumber(), filter);
-    if (session == null) {
-      return;
-    }
-
-    session.setUniqueDialerCallId(getUniqueCallId());
-    setEnrichedCallSession(session);
-
-    LogUtil.i(
-        "DialerCall.updateEnrichedCallSession",
-        "setting session %d's dialer id to %s",
-        session.getSessionId(),
-        getUniqueCallId());
-
-    dispatchOnEnrichedCallSessionUpdate();
-  }
-
-  private void dispatchOnEnrichedCallSessionUpdate() {
-    for (DialerCallListener listener : mListeners) {
-      listener.onEnrichedCallSessionUpdate();
-    }
-  }
-
   /**
    * Specifies whether a number is in the call history or not. {@link #CALL_HISTORY_STATUS_UNKNOWN}
    * means there is no result.
@@ -1474,7 +1372,6 @@
 
       String phoneNumber = call.getNumber();
       phoneNumber = phoneNumber != null ? phoneNumber : "";
-      phoneNumber = phoneNumber.replaceAll("[^+0-9]", "");
 
       // Insert order here determines the priority of that video tech option
       videoTechs = new ArrayList<>();
diff --git a/java/com/android/incallui/call/DialerCallListener.java b/java/com/android/incallui/call/DialerCallListener.java
index 5d24a4d..ed321be 100644
--- a/java/com/android/incallui/call/DialerCallListener.java
+++ b/java/com/android/incallui/call/DialerCallListener.java
@@ -36,6 +36,4 @@
   void onHandoverToWifiFailure();
 
   void onInternationalCallOnWifi();
-
-  void onEnrichedCallSessionUpdate();
 }
diff --git a/java/com/android/incallui/call/TelecomAdapter.java b/java/com/android/incallui/call/TelecomAdapter.java
index 4fc9f81..ebf4ecf 100644
--- a/java/com/android/incallui/call/TelecomAdapter.java
+++ b/java/com/android/incallui/call/TelecomAdapter.java
@@ -20,13 +20,12 @@
 import android.content.Intent;
 import android.os.Looper;
 import android.support.annotation.MainThread;
-import android.support.annotation.VisibleForTesting;
 import android.telecom.InCallService;
 import com.android.dialer.common.LogUtil;
 import java.util.List;
 
 /** Wrapper around Telecom APIs. */
-public class TelecomAdapter implements InCallServiceListener {
+public final class TelecomAdapter implements InCallServiceListener {
 
   private static final String ADD_CALL_MODE_KEY = "add_call_mode";
 
@@ -46,11 +45,6 @@
     return sInstance;
   }
 
-  @VisibleForTesting(otherwise = VisibleForTesting.NONE)
-  public static void setInstanceForTesting(TelecomAdapter telecomAdapter) {
-    sInstance = telecomAdapter;
-  }
-
   @Override
   public void setInCallService(InCallService inCallService) {
     mInCallService = inCallService;
diff --git a/java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java b/java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java
index b093a1b..801b0d3 100644
--- a/java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java
+++ b/java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java
@@ -21,7 +21,6 @@
 import android.net.TrafficStats;
 import android.os.AsyncTask;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.constants.TrafficStatsTags;
 import com.android.incallui.calllocation.impl.LocationPresenter.LocationUi;
 import java.io.InputStream;
 import java.lang.ref.WeakReference;
diff --git a/java/com/android/incallui/calllocation/impl/LocationHelper.java b/java/com/android/incallui/calllocation/impl/LocationHelper.java
index 99a759b..3a14789 100644
--- a/java/com/android/incallui/calllocation/impl/LocationHelper.java
+++ b/java/com/android/incallui/calllocation/impl/LocationHelper.java
@@ -24,7 +24,6 @@
 import android.os.Handler;
 import android.support.annotation.IntDef;
 import android.support.annotation.MainThread;
-import android.support.v4.os.UserManagerCompat;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.util.PermissionsUtil;
@@ -88,12 +87,6 @@
       LogUtil.i("LocationHelper.canGetLocation", "location service is disabled.");
       return false;
     }
-
-    if (!UserManagerCompat.isUserUnlocked(context)) {
-      LogUtil.i("LocationHelper.canGetLocation", "location unavailable in FBE mode.");
-      return false;
-    }
-
     return true;
   }
 
diff --git a/java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java b/java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java
index 060ec0b..eb5957b 100644
--- a/java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java
+++ b/java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java
@@ -20,7 +20,6 @@
 import android.net.TrafficStats;
 import android.os.AsyncTask;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.constants.TrafficStatsTags;
 import com.android.incallui.calllocation.impl.LocationPresenter.LocationUi;
 import java.lang.ref.WeakReference;
 import org.json.JSONArray;
diff --git a/java/com/android/dialer/constants/TrafficStatsTags.java b/java/com/android/incallui/calllocation/impl/TrafficStatsTags.java
similarity index 61%
rename from java/com/android/dialer/constants/TrafficStatsTags.java
rename to java/com/android/incallui/calllocation/impl/TrafficStatsTags.java
index 4e61404..02cc2e0 100644
--- a/java/com/android/dialer/constants/TrafficStatsTags.java
+++ b/java/com/android/incallui/calllocation/impl/TrafficStatsTags.java
@@ -11,18 +11,19 @@
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
- * limitations under the License.
+ * limitations under the License
  */
 
-package com.android.dialer.constants;
+package com.android.incallui.calllocation.impl;
 
-/** Registry of tags for {@link android.net.TrafficStats#setThreadStatsTag(int)} */
+/** Constants used for logging */
 public class TrafficStatsTags {
-  public static final int CONTACT_PHOTO_DOWNLOAD_TAG = 0x0001;
-  public static final int NEARBY_PLACES_TAG = 0xaaaa;
-  public static final int REVERSE_LOOKUP_CONTACT_TAG = 0xbaaa;
-  public static final int REVERSE_LOOKUP_IMAGE_TAG = 0xbaab;
+
+  /**
+   * Must be greater than {@link com.android.contacts.common.util.TrafficStatsTags#TAG_MAX}, to
+   * respect the namespace of the tags in ContactsCommon.
+   */
   public static final int DOWNLOAD_LOCATION_MAP_TAG = 0xd000;
+
   public static final int REVERSE_GEOCODE_TAG = 0xd001;
-  public static final int VISUAL_VOICEMAIL_TAG = 0xd002;
 }
diff --git a/java/com/android/incallui/commontheme/res/anim/blinking.xml b/java/com/android/incallui/commontheme/res/anim/blinking.xml
new file mode 100644
index 0000000..4b921c6
--- /dev/null
+++ b/java/com/android/incallui/commontheme/res/anim/blinking.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+  <alpha
+    android:duration="800"
+    android:fromAlpha="0.26"
+    android:interpolator="@android:anim/linear_interpolator"
+    android:repeatCount="infinite"
+    android:repeatMode="reverse"
+    android:toAlpha="0.6"/>
+</set>
\ No newline at end of file
diff --git a/java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png
new file mode 100644
index 0000000..26f3fe0
--- /dev/null
+++ b/java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png
Binary files differ
diff --git a/java/com/android/incallui/commontheme/res/drawable-mdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-mdpi/ic_phone_audio_white_36dp.png
new file mode 100644
index 0000000..5b0a9d6
--- /dev/null
+++ b/java/com/android/incallui/commontheme/res/drawable-mdpi/ic_phone_audio_white_36dp.png
Binary files differ
diff --git a/java/com/android/incallui/commontheme/res/drawable-xhdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-xhdpi/ic_phone_audio_white_36dp.png
new file mode 100644
index 0000000..d595b19
--- /dev/null
+++ b/java/com/android/incallui/commontheme/res/drawable-xhdpi/ic_phone_audio_white_36dp.png
Binary files differ
diff --git a/java/com/android/incallui/commontheme/res/drawable-xxhdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-xxhdpi/ic_phone_audio_white_36dp.png
new file mode 100644
index 0000000..fb7cf16
--- /dev/null
+++ b/java/com/android/incallui/commontheme/res/drawable-xxhdpi/ic_phone_audio_white_36dp.png
Binary files differ
diff --git a/java/com/android/incallui/commontheme/res/drawable-xxxhdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-xxxhdpi/ic_phone_audio_white_36dp.png
new file mode 100644
index 0000000..4bb58d9
--- /dev/null
+++ b/java/com/android/incallui/commontheme/res/drawable-xxxhdpi/ic_phone_audio_white_36dp.png
Binary files differ
diff --git a/java/com/android/incallui/commontheme/res/values-af/strings.xml b/java/com/android/incallui/commontheme/res/values-af/strings.xml
index 0721869..0dfdbc7 100644
--- a/java/com/android/incallui/commontheme/res/values-af/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-af/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Beëindig oproep"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video aan"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video af"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Verwissel video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Luidspreker"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Klank"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-am/strings.xml b/java/com/android/incallui/commontheme/res/values-am/strings.xml
index 9d748e3..3155c39 100644
--- a/java/com/android/incallui/commontheme/res/values-am/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-am/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"ጥሪ ጨርስ"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ቪዲዮ በርቷል"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ቪዲዮ ጠፍቷል"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ቪዲዮ አገላብጥ"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"የድምጽ ማጉያ"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"ድምፅ"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ar/strings.xml b/java/com/android/incallui/commontheme/res/values-ar/strings.xml
index 693bfc5..ecb3608 100644
--- a/java/com/android/incallui/commontheme/res/values-ar/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ar/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"إنهاء المكالمة"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"الفيديو قيد التشغيل"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"الفيديو ليس قيد التشغيل"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"تبديل الفيديو"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"مكبر الصوت"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"صوت"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-az/strings.xml b/java/com/android/incallui/commontheme/res/values-az/strings.xml
index a1d88ce..d935a6c 100644
--- a/java/com/android/incallui/commontheme/res/values-az/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-az/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Zəngi sonlandırın"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video aktivdir"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video deaktivdir"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Videonu dəyişdirin"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Dinamik"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Səs"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml
index 05ae59c..36430c4 100644
--- a/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Završi poziv"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Uključi video"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Isključi video"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Zameni video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Zvučnik"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-be/strings.xml b/java/com/android/incallui/commontheme/res/values-be/strings.xml
index e772e27..9609a63 100644
--- a/java/com/android/incallui/commontheme/res/values-be/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-be/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Завяршыць выклік"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Відэа ўкл."</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Відэа выкл."</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Пераключыць відэа"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Вонк.дынамік"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Гук"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-bg/strings.xml b/java/com/android/incallui/commontheme/res/values-bg/strings.xml
index 63364f8..1a0f3e3 100644
--- a/java/com/android/incallui/commontheme/res/values-bg/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-bg/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Край на обаждането"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Видеото е включено"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Видеото е изключено"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Размяна на видеото"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Високогов."</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-bn/strings.xml b/java/com/android/incallui/commontheme/res/values-bn/strings.xml
index 9871ea4..ef2408f 100644
--- a/java/com/android/incallui/commontheme/res/values-bn/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-bn/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"কল কেটে দিন"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ভিডিও চালু আছে"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ভিডিও বন্ধ আছে"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ভিডিও অদল বদল করুন"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"স্পিকার"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"শব্দ"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-bs/strings.xml b/java/com/android/incallui/commontheme/res/values-bs/strings.xml
index 76f991d..bfaff98 100644
--- a/java/com/android/incallui/commontheme/res/values-bs/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-bs/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Prekini poziv"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Kamera je uključena"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Kamera je isključena"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Zamijeni kameru"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Zvučnik"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ca/strings.xml b/java/com/android/incallui/commontheme/res/values-ca/strings.xml
index 832027d..1b6ed44 100644
--- a/java/com/android/incallui/commontheme/res/values-ca/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ca/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Finalitza la trucada"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo activat"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desactivat"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Canvia de vídeo"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Altaveu"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"So"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-cs/strings.xml b/java/com/android/incallui/commontheme/res/values-cs/strings.xml
index 7afdcba..1f10d85 100644
--- a/java/com/android/incallui/commontheme/res/values-cs/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-cs/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Ukončit hovor"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Zapnuté video"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vypnuté video"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Přepnout video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Reproduktor"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-da/strings.xml b/java/com/android/incallui/commontheme/res/values-da/strings.xml
index bd26e90..35d01e3 100644
--- a/java/com/android/incallui/commontheme/res/values-da/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-da/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Afslut opkald"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video til"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video fra"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Byt video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Højttaler"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Lyd"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-de/strings.xml b/java/com/android/incallui/commontheme/res/values-de/strings.xml
index 3fd10f0..57a95b7 100644
--- a/java/com/android/incallui/commontheme/res/values-de/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-de/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Anruf beenden"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video an"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video aus"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Video wechseln"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Lautsprecher"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Tonausgabe"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-el/strings.xml b/java/com/android/incallui/commontheme/res/values-el/strings.xml
index 71c0be9..6bb9edc 100644
--- a/java/com/android/incallui/commontheme/res/values-el/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-el/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Τερματισμός"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Εικόνα βίντεο ενεργοποιημένη"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Εικόνα βίντεο απενεργοποιημένη"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Εναλλαγή βίντεο"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Ηχείο"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Ήχος"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml b/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml
index 4869c3f..8133185 100644
--- a/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"End call"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video on"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video off"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Swap video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Sound"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml b/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml
index 4869c3f..8133185 100644
--- a/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"End call"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video on"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video off"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Swap video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Sound"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml b/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml
index 4869c3f..8133185 100644
--- a/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"End call"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video on"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video off"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Swap video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Sound"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml b/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml
index a9596d9..45f2e2f 100644
--- a/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Finalizar llamada"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video activado"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video desactivado"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Intercambiar video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Altavoz"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Sonido"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-es/strings.xml b/java/com/android/incallui/commontheme/res/values-es/strings.xml
index aa84c62..56c8b28 100644
--- a/java/com/android/incallui/commontheme/res/values-es/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-es/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Finalizar llamada"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo activado"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desactivado"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Cambiar de vídeo"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Altavoz"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Sonido"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-et/strings.xml b/java/com/android/incallui/commontheme/res/values-et/strings.xml
index ae2e1ba..069f3b5 100644
--- a/java/com/android/incallui/commontheme/res/values-et/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-et/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Kõne lõpetamine"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video on sees"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video on väljas"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Video vahetamine"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Kõlar"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Heli"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-eu/strings.xml b/java/com/android/incallui/commontheme/res/values-eu/strings.xml
index 0dd126c..bbcf5dc 100644
--- a/java/com/android/incallui/commontheme/res/values-eu/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-eu/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Amaitu deia"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Aktibatuta dago bideoa"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Desaktibatuta dago bideoa"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Aldatu bideoa"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Bozgorailua"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Soinua"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-fa/strings.xml b/java/com/android/incallui/commontheme/res/values-fa/strings.xml
index 1996ad4..ea967bb 100644
--- a/java/com/android/incallui/commontheme/res/values-fa/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-fa/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"پایان تماس"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ویدئو فعال"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ویدئو غیرفعال"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"جابه‌جایی ویدئو"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"بلندگو"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"صدا"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-fi/strings.xml b/java/com/android/incallui/commontheme/res/values-fi/strings.xml
index 5a57981..f0da44f 100644
--- a/java/com/android/incallui/commontheme/res/values-fi/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-fi/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Päätä puhelu"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Videokuva käytössä"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Videokuva poissa käytöstä"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Vaihda videota"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Kaiutin"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Ääni"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml b/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml
index a1db306..bf74dfb 100644
--- a/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Mettre fin à l\'appel"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vidéo activée"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vidéo désactivée"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Permuter la vidéo"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Haut-parleur"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Son"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-fr/strings.xml b/java/com/android/incallui/commontheme/res/values-fr/strings.xml
index e169a3d..fb674a4 100644
--- a/java/com/android/incallui/commontheme/res/values-fr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-fr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Mettre fin à l\'appel"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vidéo activée"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vidéo désactivée"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Permuter la vidéo"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Haut-parleur"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Audio"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-gl/strings.xml b/java/com/android/incallui/commontheme/res/values-gl/strings.xml
index ba98a98..c7e2214 100644
--- a/java/com/android/incallui/commontheme/res/values-gl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-gl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Finalizar chamada"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo activado"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desactivado"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Alternar vídeo"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Altofalante"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Son"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-gu/strings.xml b/java/com/android/incallui/commontheme/res/values-gu/strings.xml
index 194590c..75584ea 100644
--- a/java/com/android/incallui/commontheme/res/values-gu/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-gu/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"કૉલ સમાપ્ત કરો"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"વિડિઓ ચાલુ"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"વિડિઓ બંધ"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"વિડિઓ સ્વેપ કરો"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"સ્પીકર"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"ધ્વનિ"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-hi/strings.xml b/java/com/android/incallui/commontheme/res/values-hi/strings.xml
index 207bbf2..f7ea68a 100644
--- a/java/com/android/incallui/commontheme/res/values-hi/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-hi/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"कॉल समाप्त करें"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"वीडियो चालू"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"वीडियो बंद"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"वीडियो स्वैप करें"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"स्‍पीकर"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"ध्वनि"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-hr/strings.xml b/java/com/android/incallui/commontheme/res/values-hr/strings.xml
index c58ab85..c30f397 100644
--- a/java/com/android/incallui/commontheme/res/values-hr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-hr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Prekid poziva"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Videopoziv uključen"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Videopoziv isključen"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Zamijeni videopoziv"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Zvučnik"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-hu/strings.xml b/java/com/android/incallui/commontheme/res/values-hu/strings.xml
index ba7fec7..9ee2300 100644
--- a/java/com/android/incallui/commontheme/res/values-hu/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-hu/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Hívás befejezése"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Videó be"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Videó ki"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Videó cseréje"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Hangszóró"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Hang"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-hy/strings.xml b/java/com/android/incallui/commontheme/res/values-hy/strings.xml
index 81262e4..96a0cab 100644
--- a/java/com/android/incallui/commontheme/res/values-hy/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-hy/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Ավարտել զանգը"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Տեսախցիկը միացած է"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Տեսախցիկն անջատած է"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Փոխարկել խցիկը"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Բարձրախոս"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Ձայն"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-in/strings.xml b/java/com/android/incallui/commontheme/res/values-in/strings.xml
index fb3fc56..4536f5d 100644
--- a/java/com/android/incallui/commontheme/res/values-in/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-in/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Akhiri panggilan"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video aktif"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video nonaktif"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Tukar Video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Suara"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-is/strings.xml b/java/com/android/incallui/commontheme/res/values-is/strings.xml
index 438b143..357f90e 100644
--- a/java/com/android/incallui/commontheme/res/values-is/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-is/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Ljúka símtali"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Kveikja á mynd"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Slökkva á mynd"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Skipta um mynd"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Hátalari"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Hljóð"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-it/strings.xml b/java/com/android/incallui/commontheme/res/values-it/strings.xml
index b7c1d3f..a63d314 100644
--- a/java/com/android/incallui/commontheme/res/values-it/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-it/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Termina chiamata"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video attivo"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video non attivo"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Scambia video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Altoparlante"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Suono"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-iw/strings.xml b/java/com/android/incallui/commontheme/res/values-iw/strings.xml
index cbd6d75..1e2b7f2 100644
--- a/java/com/android/incallui/commontheme/res/values-iw/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-iw/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"סיים שיחה"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"הווידאו מופעל"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"הווידאו מושבת"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"החלף וידאו"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"רמקול"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"קול"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ja/strings.xml b/java/com/android/incallui/commontheme/res/values-ja/strings.xml
index 4ea9495..658b513 100644
--- a/java/com/android/incallui/commontheme/res/values-ja/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ja/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"通話を終了"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ビデオが ON になっています"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ビデオが OFF になっています"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ビデオを切り替える"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"スピーカー"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"音声"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ka/strings.xml b/java/com/android/incallui/commontheme/res/values-ka/strings.xml
index 3163476..ffba7ce 100644
--- a/java/com/android/incallui/commontheme/res/values-ka/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ka/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"ზარის დასრულება"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ვიდეო ჩართულია"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ვიდეო გამორთულია"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ვიდეოს შენაცვლება"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"სპიკერი"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"ხმა"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-kk/strings.xml b/java/com/android/incallui/commontheme/res/values-kk/strings.xml
index 23b3a2a..ace83ec 100644
--- a/java/com/android/incallui/commontheme/res/values-kk/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-kk/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Қоңырауды аяқтау"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Бейне қосулы"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Бейне өшірулі"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Бейнені ауыстыру"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Динамик"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Дыбыс"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-km/strings.xml b/java/com/android/incallui/commontheme/res/values-km/strings.xml
index 55cfa0a..e28f120 100644
--- a/java/com/android/incallui/commontheme/res/values-km/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-km/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"បញ្ចប់​ការ​ហៅ"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"បើក​វីដេអូ​"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"បិទ​វីដេអូ"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ប្ដូរ​វីដេអូ"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"ឧបករណ៍​បំពង​សំឡេង"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"សំឡេង"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-kn/strings.xml b/java/com/android/incallui/commontheme/res/values-kn/strings.xml
index 685ef64..59186e0 100644
--- a/java/com/android/incallui/commontheme/res/values-kn/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-kn/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"ಕರೆ ಅಂತ್ಯಗೊಳಿಸಿ"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ವೀಡಿಯೊ ಆನ್"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ವೀಡಿಯೊ ಆಫ್"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ವೀಡಿಯೊ ಬದಲಾಯಿಸಿ"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"ಸ್ಪೀಕರ್‌"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"ಶಬ್ದ"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ko/strings.xml b/java/com/android/incallui/commontheme/res/values-ko/strings.xml
index 088746d..0a0e3c9 100644
--- a/java/com/android/incallui/commontheme/res/values-ko/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ko/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"통화 종료"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"동영상 켜짐"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"동영상 꺼짐"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"동영상 전환"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"스피커"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"소리"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ky/strings.xml b/java/com/android/incallui/commontheme/res/values-ky/strings.xml
index 5dd4d0c..ac697e4 100644
--- a/java/com/android/incallui/commontheme/res/values-ky/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ky/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Чалууну бүтүрүү"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Видео күйүк"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Видео өчүк"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Видеону иштетүү/өчүрүү"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Катуу сүйлөткүч"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Добуш"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-lo/strings.xml b/java/com/android/incallui/commontheme/res/values-lo/strings.xml
index 2f0b94b..da2050a 100644
--- a/java/com/android/incallui/commontheme/res/values-lo/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-lo/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"ວາງສາຍ"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ວິດີໂອເປີດ"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ວິດີໂອປິດ"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ສະຫຼັບວິດີໂອ"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"ລຳໂພງ"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"ສຽງ"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-lt/strings.xml b/java/com/android/incallui/commontheme/res/values-lt/strings.xml
index d0a5e0d..bda53d6 100644
--- a/java/com/android/incallui/commontheme/res/values-lt/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-lt/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Baigti skambutį"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vaizdas įjungtas"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vaizdas išjungtas"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Sukeisti vaizdą"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Garsiakalbis"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Garsas"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-lv/strings.xml b/java/com/android/incallui/commontheme/res/values-lv/strings.xml
index 443ac5e..beaf35c 100644
--- a/java/com/android/incallui/commontheme/res/values-lv/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-lv/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Beigt zvanu"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video ieslēgts"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video izslēgts"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Mainīt video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Skaļrunis"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Skaņa"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-mk/strings.xml b/java/com/android/incallui/commontheme/res/values-mk/strings.xml
index d9a339e..5b4f6d0 100644
--- a/java/com/android/incallui/commontheme/res/values-mk/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-mk/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Завршете го повикот"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Видеото е вклучено"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Видеото е исклучено"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Заменете го видеото"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Звучник"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ml/strings.xml b/java/com/android/incallui/commontheme/res/values-ml/strings.xml
index 0f2d889..0242667 100644
--- a/java/com/android/incallui/commontheme/res/values-ml/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ml/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"കോള്‍ അവസാനിപ്പിക്കൂ"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"വീഡിയോ ഓണാണ്"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"വീഡിയോ ഓഫാണ്"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"വീഡിയോ സ്വാപ്പുചെയ്യുക"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"സ്പീക്കർ"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"ശബ്‌ദം"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-mn/strings.xml b/java/com/android/incallui/commontheme/res/values-mn/strings.xml
index 3665fcf..cd286ed 100644
--- a/java/com/android/incallui/commontheme/res/values-mn/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-mn/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Дуудлагыг таслах"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Видео идэвхтэй"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Видео идэвхгүй"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Видеог солих"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Чанга яригч"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Дуу"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-mr/strings.xml b/java/com/android/incallui/commontheme/res/values-mr/strings.xml
index f749809..2c626ed 100644
--- a/java/com/android/incallui/commontheme/res/values-mr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-mr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"कॉल समाप्त करा"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"व्हिडिओ चालू"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"व्हिडिओ बंद"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"व्हिडिओ बदला"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"स्पीकर"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"ध्वनी"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ms/strings.xml b/java/com/android/incallui/commontheme/res/values-ms/strings.xml
index fb38fa9d..f6c358d 100644
--- a/java/com/android/incallui/commontheme/res/values-ms/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ms/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Tamatkan panggilan"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video dihidupkan"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video dimatikan"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Silih video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Pmbsr suara"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Bunyi"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-my/strings.xml b/java/com/android/incallui/commontheme/res/values-my/strings.xml
index 5b396be..6b6614c 100644
--- a/java/com/android/incallui/commontheme/res/values-my/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-my/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"ခေါ်ဆိုမှုအပြီးသတ်ရန်"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ဗီဒီယိုဖွင့်ထားသည်"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ဗီဒီယိုပိတ်ထားသည်"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ဗီဒီယိုဖလှယ်ရန်"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"စပီကာ"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"အသံ"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-nb/strings.xml b/java/com/android/incallui/commontheme/res/values-nb/strings.xml
index 506b15e..4974411 100644
--- a/java/com/android/incallui/commontheme/res/values-nb/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-nb/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Avslutt samtalen"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video på"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video av"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Bytt video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Høyttaler"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Lyd"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ne/strings.xml b/java/com/android/incallui/commontheme/res/values-ne/strings.xml
index fa9d87f..5cd91b3 100644
--- a/java/com/android/incallui/commontheme/res/values-ne/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ne/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"कल अन्त्य गर्नुहोस्"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"सक्रिय भिडियो"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"निष्क्रिय भिडियो"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"भिडियो साट्नुहोस्"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"स्पिकर"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"आवाज"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-nl/strings.xml b/java/com/android/incallui/commontheme/res/values-nl/strings.xml
index 192c47b..d33d600 100644
--- a/java/com/android/incallui/commontheme/res/values-nl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-nl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Oproep beëindigen"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video aan"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video uit"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Video wisselen"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Luidspreker"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Geluid"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-no/strings.xml b/java/com/android/incallui/commontheme/res/values-no/strings.xml
index 506b15e..4974411 100644
--- a/java/com/android/incallui/commontheme/res/values-no/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-no/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Avslutt samtalen"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video på"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video av"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Bytt video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Høyttaler"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Lyd"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-pa/strings.xml b/java/com/android/incallui/commontheme/res/values-pa/strings.xml
index 77ceb25..7e59e61 100644
--- a/java/com/android/incallui/commontheme/res/values-pa/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-pa/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"ਕਾਲ ਸਮਾਪਤ ਕਰੋ"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ਵੀਡੀਓ ਚਾਲੂ"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ਵੀਡੀਓ ਬੰਦ"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ਵੀਡੀਓ ਦੀ ਅਦਲਾ ਬਦਲੀ ਕਰੋ"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"ਸਪੀਕਰ"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"ਧੁਨੀ"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-pl/strings.xml b/java/com/android/incallui/commontheme/res/values-pl/strings.xml
index d9b037e..4ab1d24 100644
--- a/java/com/android/incallui/commontheme/res/values-pl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-pl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Zakończ połączenie"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Wideo włączone"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Wideo wyłączone"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Przełącz wideo"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Głośnik"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Dźwięk"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml b/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml
index 2c1834e..67f3674 100644
--- a/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Encerrar chamada"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo ativado"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desativado"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Trocar vídeo"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Alto-falante"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Som"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml b/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml
index f0c14d0..27c5649 100644
--- a/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Terminar chamada"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo ativado"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desativado"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Alternar vídeo"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Altifalante"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Som"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-pt/strings.xml b/java/com/android/incallui/commontheme/res/values-pt/strings.xml
index 2c1834e..67f3674 100644
--- a/java/com/android/incallui/commontheme/res/values-pt/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-pt/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Encerrar chamada"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo ativado"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desativado"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Trocar vídeo"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Alto-falante"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Som"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ro/strings.xml b/java/com/android/incallui/commontheme/res/values-ro/strings.xml
index f7c8f72..b7fec9a 100644
--- a/java/com/android/incallui/commontheme/res/values-ro/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ro/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Încheiați apelul"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Imaginea video este activată"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Imaginea video este dezactivată"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Schimbați imaginea video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Difuzor"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Sunet"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ru/strings.xml b/java/com/android/incallui/commontheme/res/values-ru/strings.xml
index 1853ad2..5d1807f 100644
--- a/java/com/android/incallui/commontheme/res/values-ru/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ru/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Завершить вызов"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Камера включена"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Камера выключена"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Включить/выключить камеру"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Динамик"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-si/strings.xml b/java/com/android/incallui/commontheme/res/values-si/strings.xml
index ae13cc4..0a0f35c 100644
--- a/java/com/android/incallui/commontheme/res/values-si/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-si/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"ඇමතුම අවසන් කරන්න"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"වීඩියෝව ක්‍රියාත්මකයි"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"වීඩියෝව ක්‍රියාවිරහිතයි"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"වීඩියෝව මාරු කරන්න"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"ස්පීකරය"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"හඬ"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-sk/strings.xml b/java/com/android/incallui/commontheme/res/values-sk/strings.xml
index cd9aa99..97eabeb 100644
--- a/java/com/android/incallui/commontheme/res/values-sk/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sk/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Ukončiť hovor"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video je zapnuté"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video je vypnuté"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Zameniť video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Reproduktor"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-sl/strings.xml b/java/com/android/incallui/commontheme/res/values-sl/strings.xml
index 0aa6e69..46cf2e8 100644
--- a/java/com/android/incallui/commontheme/res/values-sl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Končaj klic"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vklopi video"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Izklopi video"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Zamenjaj video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Zvočnik"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Zvok"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-sq/strings.xml b/java/com/android/incallui/commontheme/res/values-sq/strings.xml
index b9c97d1..17ec081 100644
--- a/java/com/android/incallui/commontheme/res/values-sq/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sq/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Mbylle telefonatën"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Videoja aktive"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Videoja joaktive"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Shkëmbe video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Altoparlanti"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Tingulli"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-sr/strings.xml b/java/com/android/incallui/commontheme/res/values-sr/strings.xml
index 67586b7..2928bc9 100644
--- a/java/com/android/incallui/commontheme/res/values-sr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Заврши позив"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Укључи видео"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Искључи видео"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Замени видео"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Звучник"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-sv/strings.xml b/java/com/android/incallui/commontheme/res/values-sv/strings.xml
index 957a2f8..17b5d37 100644
--- a/java/com/android/incallui/commontheme/res/values-sv/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sv/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Avsluta samtal"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video på"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video av"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Byt video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Högtalare"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Ljud"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-sw/strings.xml b/java/com/android/incallui/commontheme/res/values-sw/strings.xml
index 8752c2d..165d576 100644
--- a/java/com/android/incallui/commontheme/res/values-sw/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sw/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Kata simu"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Washa video"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Zima video"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Badilisha video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Spika"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Sauti"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ta/strings.xml b/java/com/android/incallui/commontheme/res/values-ta/strings.xml
index 69258d2..fa2dfb2 100644
--- a/java/com/android/incallui/commontheme/res/values-ta/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ta/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"அழைப்பைத் துண்டிக்கும்"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"வீடியோ இயக்கப்பட்டது"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"வீடியோ முடக்கப்பட்டது"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"வீடியோவிற்கு மாற்றும்"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"ஸ்பீக்கர்"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"ஒலி"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-te/strings.xml b/java/com/android/incallui/commontheme/res/values-te/strings.xml
index 9454e15..3ce431c 100644
--- a/java/com/android/incallui/commontheme/res/values-te/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-te/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"కాల్‌ను ముగిస్తుంది"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"వీడియో ఆన్‌లో ఉంది"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"వీడియో ఆఫ్‌లో ఉంది"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"వీడియోను మారుస్తుంది"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"స్పీకర్"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"ధ్వని"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-th/strings.xml b/java/com/android/incallui/commontheme/res/values-th/strings.xml
index 8235310..1fa145c 100644
--- a/java/com/android/incallui/commontheme/res/values-th/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-th/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"วางสาย"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"เปิดวิดีโอ"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ปิดวิดีโอ"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"สลับวิดีโอ"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"ลำโพง"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"เสียง"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-tl/strings.xml b/java/com/android/incallui/commontheme/res/values-tl/strings.xml
index f368e3a..a53e11c 100644
--- a/java/com/android/incallui/commontheme/res/values-tl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-tl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Tapusin ang tawag"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Naka-on ang video"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Naka-off ang video"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Pagpalitin ang video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Tunog"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-tr/strings.xml b/java/com/android/incallui/commontheme/res/values-tr/strings.xml
index cbf5502..0955273 100644
--- a/java/com/android/incallui/commontheme/res/values-tr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-tr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Çağrıyı sonlandırın"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video açık"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video kapalı"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Videoyu değiştirin"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Hoparlör"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Ses"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-uk/strings.xml b/java/com/android/incallui/commontheme/res/values-uk/strings.xml
index 2bcd04c..e17e781 100644
--- a/java/com/android/incallui/commontheme/res/values-uk/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-uk/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Завершити виклик"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Відео ввімкнено"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Відео вимкнено"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Поміняти відео"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Динамік"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ur/strings.xml b/java/com/android/incallui/commontheme/res/values-ur/strings.xml
index bd8cf68..5082e9d 100644
--- a/java/com/android/incallui/commontheme/res/values-ur/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ur/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"کال ختم کریں"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ویڈیو آن ہے"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ویڈیو آف ہے"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ویڈیو کا تبادلہ کریں"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"اسپیکر"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"آواز"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-uz/strings.xml b/java/com/android/incallui/commontheme/res/values-uz/strings.xml
index 9bc995d..d349d3f 100644
--- a/java/com/android/incallui/commontheme/res/values-uz/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-uz/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Qo‘ng‘iroqni tugatish"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video yoniq"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video o‘chiq"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Videoni yoqish/ochirish"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Karnay"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Tovush"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-vi/strings.xml b/java/com/android/incallui/commontheme/res/values-vi/strings.xml
index caf8f34..3bd39ae 100644
--- a/java/com/android/incallui/commontheme/res/values-vi/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-vi/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Kết thúc cuộc gọi"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Bật video"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Tắt video"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Hoán đổi video"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Loa"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Âm báo"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml b/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml
index 4d8bda6..0f57120 100644
--- a/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"结束通话"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"视频已开启"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"视频已关闭"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"切换视频"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"免提"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"音频路径"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml b/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml
index 175b3e6..a3809eb 100644
--- a/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"結束通話"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"視像已開啟"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"視像已關閉"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"切換視像"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"喇叭"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"音效"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml b/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml
index dee1b9c..983dddd 100644
--- a/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"結束通話"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"開啟視訊畫面"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"關閉視訊畫面"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"切換視訊畫面"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"擴音"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"音訊"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-zu/strings.xml b/java/com/android/incallui/commontheme/res/values-zu/strings.xml
index 9535962..2dd2c89 100644
--- a/java/com/android/incallui/commontheme/res/values-zu/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-zu/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Qeda ikholi"</string>
@@ -31,6 +15,4 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Ividiyo ivuliwe"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Ividiyo ivaliwe"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Shintsha ividiyo"</string>
-    <string name="incall_label_speaker" msgid="1814254833253409394">"Isipikha"</string>
-    <string name="incall_label_audio" msgid="5923781170533336820">"Umsindo"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values/strings.xml b/java/com/android/incallui/commontheme/res/values/strings.xml
index 94a8c90..6f346a3 100644
--- a/java/com/android/incallui/commontheme/res/values/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values/strings.xml
@@ -1,19 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
 <resources>
 
   <string name="incall_content_description_end_call">End call</string>
@@ -47,11 +32,4 @@
 
   <string name="incall_content_description_swap_video">Swap video</string>
 
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <string name="incall_label_speaker">Speaker</string>
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-  <string name="incall_label_audio">Sound</string>
-
 </resources>
diff --git a/java/com/android/incallui/contactgrid/BottomRow.java b/java/com/android/incallui/contactgrid/BottomRow.java
index d0ff192..228c786 100644
--- a/java/com/android/incallui/contactgrid/BottomRow.java
+++ b/java/com/android/incallui/contactgrid/BottomRow.java
@@ -22,6 +22,7 @@
 import android.text.BidiFormatter;
 import android.text.TextDirectionHeuristics;
 import android.text.TextUtils;
+import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
 import com.android.incallui.call.DialerCall.State;
 import com.android.incallui.incall.protocol.PrimaryCallState;
 import com.android.incallui.incall.protocol.PrimaryInfo;
@@ -136,7 +137,7 @@
   }
 
   private static CharSequence spanDisplayNumber(String displayNumber) {
-    return PhoneNumberUtils.createTtsSpannable(
+    return PhoneNumberUtilsCompat.createTtsSpannable(
         BidiFormatter.getInstance().unicodeWrap(displayNumber, TextDirectionHeuristics.LTR));
   }
 
diff --git a/java/com/android/incallui/contactgrid/ContactGridManager.java b/java/com/android/incallui/contactgrid/ContactGridManager.java
index 502cc52..1322d58 100644
--- a/java/com/android/incallui/contactgrid/ContactGridManager.java
+++ b/java/com/android/incallui/contactgrid/ContactGridManager.java
@@ -20,8 +20,10 @@
 import android.graphics.drawable.Animatable;
 import android.graphics.drawable.Drawable;
 import android.os.SystemClock;
+import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.support.v4.view.ViewCompat;
+import android.telecom.TelecomManager;
 import android.text.TextUtils;
 import android.view.View;
 import android.view.accessibility.AccessibilityEvent;
@@ -76,7 +78,6 @@
   private boolean hideAvatar;
   private boolean showAnonymousAvatar;
   private boolean middleRowVisible = true;
-  private boolean isTimerStarted;
 
   private PrimaryInfo primaryInfo = PrimaryInfo.createEmptyPrimaryInfo();
   private PrimaryCallState primaryCallState = PrimaryCallState.createEmptyPrimaryCallState();
@@ -104,7 +105,6 @@
 
     contactGridLayout = (View) contactNameTextView.getParent();
     letterTile = new LetterTileDrawable(context.getResources());
-    isTimerStarted = false;
   }
 
   public void show() {
@@ -213,7 +213,7 @@
    * </ul>
    */
   private void updateTopRow() {
-    TopRow.Info info = TopRow.getInfo(context, primaryCallState, primaryInfo);
+    TopRow.Info info = TopRow.getInfo(context, primaryCallState);
     if (TextUtils.isEmpty(info.label)) {
       // Use INVISIBLE here to prevent the rows below this one from moving up and down.
       statusTextView.setVisibility(View.INVISIBLE);
@@ -233,6 +233,26 @@
   }
 
   /**
+   * Returns the appropriate LetterTileDrawable.TYPE_ based on a given call state.
+   *
+   * <p>If no special state is detected, yields TYPE_DEFAULT.
+   */
+  private static @LetterTileDrawable.ContactType int getContactTypeForPrimaryCallState(
+      @NonNull PrimaryCallState callState, @NonNull PrimaryInfo primaryInfo) {
+    if (callState.isVoiceMailNumber) {
+      return LetterTileDrawable.TYPE_VOICEMAIL;
+    } else if (callState.isBusinessNumber) {
+      return LetterTileDrawable.TYPE_BUSINESS;
+    } else if (primaryInfo.numberPresentation == TelecomManager.PRESENTATION_RESTRICTED) {
+      return LetterTileDrawable.TYPE_GENERIC_AVATAR;
+    } else if (callState.isConference) {
+      return LetterTileDrawable.TYPE_CONFERENCE;
+    } else {
+      return LetterTileDrawable.TYPE_DEFAULT;
+    }
+  }
+
+  /**
    * Updates row 1. For example:
    *
    * <ul>
@@ -275,12 +295,8 @@
               primaryInfo.name,
               primaryInfo.contactInfoLookupKey,
               LetterTileDrawable.SHAPE_CIRCLE,
-              LetterTileDrawable.getContactTypeFromPrimitives(
-                  primaryCallState.isVoiceMailNumber,
-                  primaryInfo.isSpam,
-                  primaryCallState.isBusinessNumber,
-                  primaryInfo.numberPresentation,
-                  primaryCallState.isConference));
+              getContactTypeForPrimaryCallState(primaryCallState, primaryInfo));
+
           // By invalidating the avatarImageView we force a redraw of the letter tile.
           // This is required to properly display the updated letter tile iconography based on the
           // contact type, because the background drawable reference cached in the view, and the
@@ -347,19 +363,15 @@
     }
 
     if (info.isTimerVisible) {
-      if (!isTimerStarted) {
-        bottomTextSwitcher.setDisplayedChild(1);
-        bottomTimerView.setBase(
-            primaryCallState.connectTimeMillis
-                - System.currentTimeMillis()
-                + SystemClock.elapsedRealtime());
-        bottomTimerView.start();
-        isTimerStarted = true;
-      }
+      bottomTextSwitcher.setDisplayedChild(1);
+      bottomTimerView.setBase(
+          primaryCallState.connectTimeMillis
+              - System.currentTimeMillis()
+              + SystemClock.elapsedRealtime());
+      bottomTimerView.start();
     } else {
       bottomTextSwitcher.setDisplayedChild(0);
       bottomTimerView.stop();
-      isTimerStarted = false;
     }
   }
 }
diff --git a/java/com/android/incallui/contactgrid/TopRow.java b/java/com/android/incallui/contactgrid/TopRow.java
index ab00357..8c3d6b0 100644
--- a/java/com/android/incallui/contactgrid/TopRow.java
+++ b/java/com/android/incallui/contactgrid/TopRow.java
@@ -19,14 +19,10 @@
 import android.content.Context;
 import android.graphics.drawable.Drawable;
 import android.support.annotation.Nullable;
-import android.telephony.PhoneNumberUtils;
-import android.text.BidiFormatter;
-import android.text.TextDirectionHeuristics;
 import android.text.TextUtils;
 import com.android.dialer.common.Assert;
 import com.android.incallui.call.DialerCall.State;
 import com.android.incallui.incall.protocol.PrimaryCallState;
-import com.android.incallui.incall.protocol.PrimaryInfo;
 import com.android.incallui.videotech.utils.SessionModificationState;
 import com.android.incallui.videotech.utils.VideoUtils;
 
@@ -59,7 +55,7 @@
 
   private TopRow() {}
 
-  public static Info getInfo(Context context, PrimaryCallState state, PrimaryInfo primaryInfo) {
+  public static Info getInfo(Context context, PrimaryCallState state) {
     CharSequence label = null;
     Drawable icon = state.connectionIcon;
     boolean labelIsSingleLine = true;
@@ -77,11 +73,6 @@
         labelIsSingleLine = false;
       } else {
         label = getLabelForIncoming(context, state);
-        // Show phone number if it's not displayed in name (center row) or location field (bottom
-        // row).
-        if (shouldShowNumber(primaryInfo)) {
-          label = TextUtils.concat(label, " ", spanDisplayNumber(primaryInfo.number));
-        }
       }
     } else if (VideoUtils.hasSentVideoUpgradeRequest(state.sessionModificationState)
         || VideoUtils.hasReceivedVideoUpgradeRequest(state.sessionModificationState)) {
@@ -94,8 +85,6 @@
       label = getLabelForDialing(context, state);
     } else if (state.state == State.ACTIVE && state.isRemotelyHeld) {
       label = context.getString(R.string.incall_remotely_held);
-    } else if (state.state == State.ACTIVE && shouldShowNumber(primaryInfo)) {
-      label = spanDisplayNumber(primaryInfo.number);
     } else {
       // Video calling...
       // [Wi-Fi icon] Starbucks Wi-Fi
@@ -105,27 +94,9 @@
     return new Info(label, icon, labelIsSingleLine);
   }
 
-  private static CharSequence spanDisplayNumber(String displayNumber) {
-    return PhoneNumberUtils.createTtsSpannable(
-        BidiFormatter.getInstance().unicodeWrap(displayNumber, TextDirectionHeuristics.LTR));
-  }
-
-  private static boolean shouldShowNumber(PrimaryInfo primaryInfo) {
-    if (primaryInfo.nameIsNumber) {
-      return false;
-    }
-    if (primaryInfo.location == null) {
-      return false;
-    }
-    if (TextUtils.isEmpty(primaryInfo.number)) {
-      return false;
-    }
-    return true;
-  }
-
   private static CharSequence getLabelForIncoming(Context context, PrimaryCallState state) {
     if (state.isVideoCall) {
-      return getLabelForIncomingVideo(context, state.sessionModificationState, state.isWifi);
+      return getLabelForIncomingVideo(context, state.isWifi);
     } else if (state.isWifi && !TextUtils.isEmpty(state.connectionLabel)) {
       return state.connectionLabel;
     } else if (isAccount(state)) {
@@ -137,20 +108,11 @@
     }
   }
 
-  private static CharSequence getLabelForIncomingVideo(
-      Context context, @SessionModificationState int sessionModificationState, boolean isWifi) {
-    if (sessionModificationState == SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) {
-      if (isWifi) {
-        return context.getString(R.string.contact_grid_incoming_wifi_video_request);
-      } else {
-        return context.getString(R.string.contact_grid_incoming_video_request);
-      }
+  private static CharSequence getLabelForIncomingVideo(Context context, boolean isWifi) {
+    if (isWifi) {
+      return context.getString(R.string.contact_grid_incoming_wifi_video_call);
     } else {
-      if (isWifi) {
-        return context.getString(R.string.contact_grid_incoming_wifi_video_call);
-      } else {
-        return context.getString(R.string.contact_grid_incoming_video_call);
-      }
+      return context.getString(R.string.contact_grid_incoming_video_call);
     }
   }
 
@@ -192,7 +154,7 @@
       case SessionModificationState.UPGRADE_TO_VIDEO_REQUEST_TIMED_OUT:
         return context.getString(R.string.incall_video_call_request_timed_out);
       case SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST:
-        return getLabelForIncomingVideo(context, state.sessionModificationState, state.isWifi);
+        return getLabelForIncomingVideo(context, state.isWifi);
       case SessionModificationState.NO_REQUEST:
       default:
         Assert.fail();
diff --git a/java/com/android/incallui/contactgrid/res/values-af/strings.xml b/java/com/android/incallui/contactgrid/res/values-af/strings.xml
index 75a8bf3..95ec39b 100644
--- a/java/com/android/incallui/contactgrid/res/values-af/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-af/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Bel via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Hou aan"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video-oproep vanaf"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-video-oproep vanaf"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Versoekvorm vir video-opgradering"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Versoekvorm vir Wi-Fi-video-opgradering"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Oproep vanaf"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Werkoproep vanaf"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Inkomend via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-am/strings.xml b/java/com/android/incallui/contactgrid/res/values-am/strings.xml
index 3d11f73..d8060c9 100644
--- a/java/com/android/incallui/contactgrid/res/values-am/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-am/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"በ<xliff:g id="PROVIDER_NAME">%s</xliff:g> በኩል በመደወል ላይ"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"ያዝና ቆይ"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ቪዲዮ ጥሪ ከ"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi ቪዲዮ ጥሪ ከ"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"የቪዲዮ ማሻሻል ጥያቄ ከ"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"የWi-Fi ቪዲዮ ማሻሻል ጥያቄ ከ"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ጥሪ ከ"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"የሥራ ጥሪ ከ"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"በ<xliff:g id="PROVIDER_NAME">%s</xliff:g> በኩል የገባ"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ar/strings.xml b/java/com/android/incallui/contactgrid/res/values-ar/strings.xml
index cddd1ec..30fd32c 100644
--- a/java/com/android/incallui/contactgrid/res/values-ar/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ar/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"الاتصال عبر <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"معلقة"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"مكالمة فيديو من"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"‏مكالمة فيديو عبر Wi-Fi من"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"طلب ترقية الفيديو من"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"‏طلب ترقية فيديو Wi-Fi من"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"اتصال من"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"مكالمة عمل من"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"واردة عبر <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-az/strings.xml b/java/com/android/incallui/contactgrid/res/values-az/strings.xml
index 8c1993d..4fe79ee 100644
--- a/java/com/android/incallui/contactgrid/res/values-az/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-az/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> vasitəsilə zəng edilir"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Gözləmədə"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video zəng edən"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video zəng edən"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video təkmilləşdirilməsi üçün təklif"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video təkmilləşdirilməsi üçün təklif"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Zəng edən"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"İş zəngi edən"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> vasitəsilə gələn"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml
index caa61bd..f1a938e 100644
--- a/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Pozivamo preko <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Na čekanju"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video poziv od"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video poziv od"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Zahtev za prelazak na video poziv od"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Zahtev za prelazak na video poziv preko Wi-Fi-ja od"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Poziv od"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Poslovni poziv od"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Dolazni poziv preko <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-be/strings.xml b/java/com/android/incallui/contactgrid/res/values-be/strings.xml
index 51f7ea9..aec3a31 100644
--- a/java/com/android/incallui/contactgrid/res/values-be/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-be/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Званкі праз <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"На ўтрыманні"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Відэавыклік ад"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Відэавыклік праз Wi-Fi ад"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Запыт на абнаўленне да відэавыкліка ад"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Запыт на абнаўленне да відэавыкліка па Wi-Fi ад"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Выклік ад"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Рабочы выклік ад"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Уваходны выклік праз <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-bg/strings.xml b/java/com/android/incallui/contactgrid/res/values-bg/strings.xml
index 4e313d4..f162e4c 100644
--- a/java/com/android/incallui/contactgrid/res/values-bg/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-bg/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Обаждане чрез <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Задържано"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видеообаждане от"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Видеообаждане по Wi-Fi от"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Заявка за преминаване към видеообаждане от"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Заявка за преминаване към видеообаждане през Wi-Fi от"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Обаждане от"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Служебно обаждане от"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Входящо обаждане чрез <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-bn/strings.xml b/java/com/android/incallui/contactgrid/res/values-bn/strings.xml
index 8fce2e4..6d3a50c 100644
--- a/java/com/android/incallui/contactgrid/res/values-bn/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-bn/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> এর মাধ্যমে কল করা হচ্ছে"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"হোল্ডে রয়েছে"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"এর থেকে আগত ভিডিও কল"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"এর থেকে আগত Wi-Fi ভিডিও কল"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"এর থেকে ভিডিও আপগ্রেড করার অনুরোধ"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"এর থেকে ওয়াই-ফাই ভিডিও আপগ্রেড করার অনুরোধ"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"এর থেকে আগত কল"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"এর থেকে আগত কর্মক্ষেত্রের কল"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> এর মাধ্যমে আগত কল"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-bs/strings.xml b/java/com/android/incallui/contactgrid/res/values-bs/strings.xml
index 0d4dfb3..2587992 100644
--- a/java/com/android/incallui/contactgrid/res/values-bs/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-bs/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Pozivanje putem mreže <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Na čekanju"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videopoziv od"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi videopoziv od"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Zahtjev za nadogradnju na videozapis od pozivaoca"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Zahtjev za nadogradnju na Wi-Fi videozapis od pozivaoca"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Poziv od"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Poslovni poziv od"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Dolazni poziv putem <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ca/strings.xml b/java/com/android/incallui/contactgrid/res/values-ca/strings.xml
index b4aa2dd..07598a2 100644
--- a/java/com/android/incallui/contactgrid/res/values-ca/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ca/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"S\'està trucant amb <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"En espera"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videotrucada de"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videotrucada per Wi-Fi de"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Sol·licitud d\'actualització a videotrucada procedent de:"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Sol·licitud d\'actualització a videotrucada per Wi-Fi procedent de:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Trucada de"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Trucada de feina de"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Entrant via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-cs/strings.xml b/java/com/android/incallui/contactgrid/res/values-cs/strings.xml
index b8698f0..d27a028 100644
--- a/java/com/android/incallui/contactgrid/res/values-cs/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-cs/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Volání přes poskytovatele <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Podrženo"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Příchozí videohovor:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Příchozí videohovor přes Wi-Fi:"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Žádost o upgrade na videohovor od uživatele"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Žádost o upgrade na videohovor přes Wi-Fi od uživatele"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Příchozí hovor:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Příchozí pracovní hovor:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Příchozí hovor přes poskytovatele <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-da/strings.xml b/java/com/android/incallui/contactgrid/res/values-da/strings.xml
index 71a651f..555a2ac 100644
--- a/java/com/android/incallui/contactgrid/res/values-da/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-da/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Ringer via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"I venteposition"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoopkald fra"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videoopkald fra"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Anmodning om opgradering til et videoopkald fra"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Anmodning om opgradering til et Wi-Fi-videoopkald fra"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Opkald fra"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Arbejdsopkald fra"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Indgående opkald via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-de/strings.xml b/java/com/android/incallui/contactgrid/res/values-de/strings.xml
index d69e0f6..3d3838c 100644
--- a/java/com/android/incallui/contactgrid/res/values-de/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-de/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Anruf über <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Anruf wird gehalten"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoanruf von"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"WLAN-Videoanruf von"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Anfrage für Upgrade auf Videoanruf von"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Anfrage für Upgrade auf Videoanruf über WLAN von"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Anruf von"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Geschäftlicher Anruf von"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Eingehender Anruf über <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-el/strings.xml b/java/com/android/incallui/contactgrid/res/values-el/strings.xml
index 954e7b7..337da7b 100644
--- a/java/com/android/incallui/contactgrid/res/values-el/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-el/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Κλήση μέσω <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Σε αναμονή"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Βιντεοκλήση από"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Βιντεοκλήση μέσω Wi-Fi από"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Αίτημα αναβάθμισης βίντεο από"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Αίτημα αναβάθμισης βίντεο Wi-Fi από"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Κλήση από"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Κλήση από το γραφείο από"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Εισερχόμενη κλήση μέσω <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml b/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml
index a1402ff..3748db2 100644
--- a/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Calling via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"On hold"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call from"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video call from"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video upgrade request from"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video upgrade request from"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Call from"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Work call from"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Incoming via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml b/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml
index a1402ff..3748db2 100644
--- a/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Calling via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"On hold"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call from"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video call from"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video upgrade request from"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video upgrade request from"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Call from"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Work call from"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Incoming via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml b/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml
index a1402ff..3748db2 100644
--- a/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Calling via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"On hold"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call from"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video call from"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video upgrade request from"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video upgrade request from"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Call from"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Work call from"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Incoming via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml b/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml
index abb2b01..fa56849 100644
--- a/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Llamada por medio de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"En espera"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videollamada de"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videollamada con Wi-Fi de"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Actualización a video solicitada por"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Actualización a video con Wi-Fi solicitada por"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Llamada de"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Llamada laboral de"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Entrante por medio de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-es/strings.xml b/java/com/android/incallui/contactgrid/res/values-es/strings.xml
index ef7c457..1d57f9c 100644
--- a/java/com/android/incallui/contactgrid/res/values-es/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-es/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Llamada a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"En espera"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videollamada de"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videollamada por Wi-Fi de"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitud de actualización de videollamada de"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitud de actualización de videollamada por Wi-Fi de"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Llamada de"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Llamada de trabajo de"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Recibida a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-et/strings.xml b/java/com/android/incallui/contactgrid/res/values-et/strings.xml
index b91f073..2d81062 100644
--- a/java/com/android/incallui/contactgrid/res/values-et/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-et/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Kõne edastab <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Ootel"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videokõne kontaktilt"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"WiFi-videokõne kontaktilt"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video täiendamise taotlus:"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"WiFi kaudu video täiendamise taotlus:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Kõne kontaktilt"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Töökõne kontaktilt"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Sissetulev kõne teenusepakkuja <xliff:g id="PROVIDER_NAME">%s</xliff:g> kaudu"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-eu/strings.xml b/java/com/android/incallui/contactgrid/res/values-eu/strings.xml
index ba7995a..f08347b 100644
--- a/java/com/android/incallui/contactgrid/res/values-eu/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-eu/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> bidez deitzen"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Zain"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Bideo-deia:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi bidezko bideo-deia:"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Bideo-dei bat egiteko eskaera bidali dizu erabiltzaile honek:"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi bidezko bideo-dei bat egiteko eskaera bidali dizu erabiltzaile honek:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Deia:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Laneko deia:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> bidez jasotzen"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-fa/strings.xml b/java/com/android/incallui/contactgrid/res/values-fa/strings.xml
index 40873ca..0dfc0f4 100644
--- a/java/com/android/incallui/contactgrid/res/values-fa/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-fa/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"تماس از طریق <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"درانتظار"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"تماس ویدئویی از"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"‏تماس ویدئویی Wi-Fi از"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"درخواست ارتقای تماس ویدیویی از"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"‏در خواست ارتقای تماس ویدیویی Wi-Fi از"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"تماس از"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"تماس کاری از"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"تماس‌های ورودی ازطریق <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-fi/strings.xml b/java/com/android/incallui/contactgrid/res/values-fi/strings.xml
index 241fef5..00503bf 100644
--- a/java/com/android/incallui/contactgrid/res/values-fi/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-fi/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Käytetään operaattoria <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Pidossa"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videopuhelu henkilöltä"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videopuhelu henkilöltä"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Videoon siirtymispyyntö, jonka lähettäjä on"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi-videopuheluun siirtymispyyntö, jonka lähettäjän on"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Puhelu henkilöltä"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Työpuhelu henkilöltä"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Saapuva puhelu (<xliff:g id="PROVIDER_NAME">%s</xliff:g>)"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml b/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml
index 3ffc1e9..ee0196d 100644
--- a/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Appel par <xliff:g id="PROVIDER_NAME">%s</xliff:g> en cours…"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"En attente"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Appel vidéo de"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Appel vidéo Wi-Fi de"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Demande de mise à niveau vidéo de"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Demande de mise à niveau vidéo Wi-Fi de"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Appel de"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Appel professionnel de"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Appel entrant par <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-fr/strings.xml b/java/com/android/incallui/contactgrid/res/values-fr/strings.xml
index 0db6ae0..9849ad6 100644
--- a/java/com/android/incallui/contactgrid/res/values-fr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-fr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Appel via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"En attente"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Appel vidéo de"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Appel vidéo Wi-Fi de"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Demande de passage en mode vidéo par"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Demande de passage en mode vidéo Wi-Fi par"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Appel de"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Appel professionnel de"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Appel entrant via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-gl/strings.xml b/java/com/android/incallui/contactgrid/res/values-gl/strings.xml
index 2970014..c85f336 100644
--- a/java/com/android/incallui/contactgrid/res/values-gl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-gl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Chamando a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"En espera"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochamada de"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochamada por wifi de"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitude de actualización a videochamada de"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitude de actualización a videochamada por wifi de"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chamada de"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chamada de traballo de"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Chamada entrante a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-gu/strings.xml b/java/com/android/incallui/contactgrid/res/values-gu/strings.xml
index 220bebe..5179cc0 100644
--- a/java/com/android/incallui/contactgrid/res/values-gu/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-gu/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> મારફતે કૉલ કરી રહ્યાં છે"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"હોલ્ડ પર"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"આમના તરફથી વિડિઓ કૉલ"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"આમના તરફથી Wi-Fi વિડિઓ કૉલ"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"આમના તરફથી વિડિઓ અપગ્રેડની વિનંતી"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"આમના તરફથી Wi-Fi વિડિઓ અપગ્રેડની વિનંતી"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"આમના તરફથી કૉલ"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"આમના તરફથી કાર્ય કૉલ"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> મારફતે ઇનકમિંગ"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-hi/strings.xml b/java/com/android/incallui/contactgrid/res/values-hi/strings.xml
index da128b6..dec7b62 100644
--- a/java/com/android/incallui/contactgrid/res/values-hi/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-hi/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> के माध्यम से कॉल किया जा रहा है"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"होल्ड पर"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"इससे वीडियो कॉल"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"इससे वाई-फ़ाई वीडियो कॉल"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"इसकी ओर से वीडियो में अपग्रेड करने का अनुरोध"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"इसकी ओर से वाई-फ़ाई वीडियो में अपग्रेड करने का अनुरोध"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"इससे कॉल"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"इससे कार्य संबंधी कॉल"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> की ओर से इनकमिंग"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-hr/strings.xml b/java/com/android/incallui/contactgrid/res/values-hr/strings.xml
index 24429a2..d7023ac 100644
--- a/java/com/android/incallui/contactgrid/res/values-hr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-hr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Pozivanje putem operatera <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Na čekanju"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videopoziv s broja"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videopoziv putem Wi-Fi veze s broja"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video upgrade request from"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video upgrade request from"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Poziv s broja"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Poslovni poziv s broja"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Dolazni pozivi putem davatelja <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-hu/strings.xml b/java/com/android/incallui/contactgrid/res/values-hu/strings.xml
index 600b69f..f7da923 100644
--- a/java/com/android/incallui/contactgrid/res/values-hu/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-hu/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Hívás a(z) <xliff:g id="PROVIDER_NAME">%s</xliff:g> szolgáltatón keresztül"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Várakoztatva"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videohívás a következőtől:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videohívás a következőtől:"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Videófrissítési kérelem a következőtől"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi-videófrissítési kérelem a következőtől"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Hívás a következőtől:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Munkahelyi hívás a következőről:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Bejövő hívás a következőn keresztül: <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-hy/strings.xml b/java/com/android/incallui/contactgrid/res/values-hy/strings.xml
index 88a49eb..6384fa9 100644
--- a/java/com/android/incallui/contactgrid/res/values-hy/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-hy/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Զանգում է <xliff:g id="PROVIDER_NAME">%s</xliff:g>-ի միջոցով"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Սպասում"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Տեսազանգ հետևյալ բաժանորդից՝"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi տեսազանգ հետևյալ բաժանորդից՝"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Տեսազանգին անցնելու խնդրանք հետևյալ օգտատիրոջից՝"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi-ի միջոցով տեսազանգին անցնելու խնդրանք հետևյալ օգտատիրոջից՝"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Զանգ հետևյալ բաժանորդից՝"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Գործնական զանգ հետևյալ բաժանորդից՝"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Մուտքային զանգ <xliff:g id="PROVIDER_NAME">%s</xliff:g> ցանցից"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-in/strings.xml b/java/com/android/incallui/contactgrid/res/values-in/strings.xml
index f673583..7556838 100644
--- a/java/com/android/incallui/contactgrid/res/values-in/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-in/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Menelepon melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Ditangguhkan"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call dari"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Video call Wi-Fi dari"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Permintaan upgrade video dari"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Permintaan upgrade video Wi-Fi dari"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Telepon dari"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Panggilan telepon kerja dari"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Masuk melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-is/strings.xml b/java/com/android/incallui/contactgrid/res/values-is/strings.xml
index 9e83031..86d577c 100644
--- a/java/com/android/incallui/contactgrid/res/values-is/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-is/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Hringt í gegnum <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Í bið"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Myndsímtal berst frá"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi myndsímtal berst frá"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Beiðni um að uppfæra í myndsímtal frá"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Beiðni um að uppfæra í Wi-Fi myndsímtal frá"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Símtal berst frá"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Vinnusímtal berst frá"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Berst í gegnum <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-it/strings.xml b/java/com/android/incallui/contactgrid/res/values-it/strings.xml
index 76958cf..9576a6d 100644
--- a/java/com/android/incallui/contactgrid/res/values-it/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-it/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Chiamate tramite <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"In attesa"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochiamata da"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochiamata Wi-Fi da"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Upgrade della videochiamata richiesto da"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Upgrade della videochiamata Wi-Fi richiesto da"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chiamata da"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chiamata di lavoro da"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"In arrivo tramite <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-iw/strings.xml b/java/com/android/incallui/contactgrid/res/values-iw/strings.xml
index b06c321..62771d1 100644
--- a/java/com/android/incallui/contactgrid/res/values-iw/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-iw/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"שיחה באמצעות <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"בהמתנה"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"שיחת וידאו מאת"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"‏שיחת וידאו ב-Wi-Fi מאת"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"בקשה לשדרוג לשיחת וידאו מאת"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"‏בקשת לשדרוג לשיחת וידאו ברשת Wi-Fi מאת"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"שיחה מאת"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"שיחת עבודה מאת"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"שיחה נכנסת באמצעות <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ja/strings.xml b/java/com/android/incallui/contactgrid/res/values-ja/strings.xml
index a2fce09..a5d958c 100644
--- a/java/com/android/incallui/contactgrid/res/values-ja/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ja/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> で発信中"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"保留中"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ビデオハングアウトの着信"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi ビデオハングアウトの着信"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ビデオハングアウトへの変更リクエスト"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi ビデオハングアウトへの変更リクエスト"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"着信"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"仕事の通話の着信"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> から着信"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ka/strings.xml b/java/com/android/incallui/contactgrid/res/values-ka/strings.xml
index cb0094d..7848f59 100644
--- a/java/com/android/incallui/contactgrid/res/values-ka/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ka/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"მიმდინარეობს დარეკვა <xliff:g id="PROVIDER_NAME">%s</xliff:g>-ის მეშვეობით"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"მოცდის რეჟიმში"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ვიდეოზარი აბონენტისგან"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi ვიდეოზარი აბონენტისგან"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ვიდეოზარზე გადასვლის მოთხოვნა კონტაქტისგან:"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi ვიდეოზარზე გადასვლის მოთხოვნა კონტაქტისგან:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ზარი აბონენტისგან"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"სამსახურებრივი ზარი აბონენტისგან"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"შემომავალი, <xliff:g id="PROVIDER_NAME">%s</xliff:g>-იდან"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-kk/strings.xml b/java/com/android/incallui/contactgrid/res/values-kk/strings.xml
index 3fc68c2..aaf260b 100644
--- a/java/com/android/incallui/contactgrid/res/values-kk/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-kk/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> арқылы қоңырау шалу"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Күтуде"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Бейне қоңырау шалушы:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi бейне қоңырау шалушы:"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Бейне қоңырауға ауысу өтініші:"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi арқылы бейне қоңырауға ауысу өтініші:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Қоңырау шалушы:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Жұмыстан қоңырау шалушы:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> арқылы кіріс"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-km/strings.xml b/java/com/android/incallui/contactgrid/res/values-km/strings.xml
index 7ee21ba..b2bfc96 100644
--- a/java/com/android/incallui/contactgrid/res/values-km/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-km/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"កំពុង​ហៅតាម <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"កំពុង​រង់ចាំ"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ការ​ហៅ​ជា​វីដេអូ​ពី"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"ការ​ហៅ​ជា​វីដេអូ​តាម Wi-Fi ពី"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ស្នើ​ដំឡើង​កំណែ​វីដេអូ​ពី"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ស្នើ​ដំឡើង​កំណែ​វីដេអូតាម Wi-Fi ពី"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ការ​ហៅ​ពី"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"ការ​ហៅ​ការងារ​ពី"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"ការ​ហៅ​ចូល​តាម <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-kn/strings.xml b/java/com/android/incallui/contactgrid/res/values-kn/strings.xml
index e90bd6b..0ee73ba 100644
--- a/java/com/android/incallui/contactgrid/res/values-kn/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-kn/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ಮೂಲಕ ಕರೆ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"ಹೋಲ್ಡ್‌ ಮಾಡಲಾಗಿದೆ"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ಇವರಿಂದ ವೀಡಿಯೊ ಕರೆ"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"ಇವರಿಂದ ವೈ-ಫೈ ವೀಡಿಯೊ ಕರೆ"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ಇದರಿಂದ ವೀಡಿಯೊ ಅಪ್‌ಗ್ರೇಡ್ ವಿನಂತಿ"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ಇದರಿಂದ ವೈಫೈ ವೀಡಿಯೊ ಅಪ್‌ಗ್ರೇಡ್ ವಿನಂತಿ"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ಇವರಿಂದ ಕರೆ"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"ಇವರಿಂದ ಕೆಲಸದ ಕರೆ"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ಮೂಲಕ ಒಳಬರುತ್ತಿರುವ ಕರೆ"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ko/strings.xml b/java/com/android/incallui/contactgrid/res/values-ko/strings.xml
index 85dd613..a5a34e3 100644
--- a/java/com/android/incallui/contactgrid/res/values-ko/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ko/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>을(를) 통해 거는 전화"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"대기 중"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"화상 통화 발신:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi 화상 통화 발신:"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"화상 통화로의 업그레이드를 요청한 사용자:"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi 화상 통화로의 업그레이드를 요청한 사용자:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"통화 발신:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"업무 통화 발신:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>을(를) 통해 걸려온 전화"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ky/strings.xml b/java/com/android/incallui/contactgrid/res/values-ky/strings.xml
index 6028022..a020e70 100644
--- a/java/com/android/incallui/contactgrid/res/values-ky/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ky/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> аркылуу чалуу"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Күтүү режиминде"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видео чалуу"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi аркылуу видео чалуу:"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Видеону кийинки версияга көтөрүү сурамы:"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi аркылуу видеомаектешүү сурамы:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Чалып жатат:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Иш боюнча чалып жатат:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> аркылуу чалып жатат"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-lo/strings.xml b/java/com/android/incallui/contactgrid/res/values-lo/strings.xml
index 6ad1178..96c1dcf 100644
--- a/java/com/android/incallui/contactgrid/res/values-lo/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-lo/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"ກຳລັງໂທຜ່ານ <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"ຖືສາຍລໍຖ້າ"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ການໂທວິດີໂອຈາກ"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video call from"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ຄຳຮ້ອງອັບເກຣດວິດີໂອຈາກ"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ຄຳຮ້ອງອັບເກຣດວິດີໂອ Wi-Fi ຈາກ"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ການໂທຈາກ"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Work call from"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"ສາຍໂທເຂົ້າ​ຈາກ <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-lt/strings.xml b/java/com/android/incallui/contactgrid/res/values-lt/strings.xml
index 3cca55c..e8e42fc 100644
--- a/java/com/android/incallui/contactgrid/res/values-lt/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-lt/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Skambinama naudojantis „<xliff:g id="PROVIDER_NAME">%s</xliff:g>“ paslaugomis"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Sulaikytas"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Vaizdo skambutis nuo"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"„Wi-Fi“ vaizdo skambutis nuo"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Vaizdo skambučio naujovinimo užklausa nuo"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"„Wi-Fi“ vaizdo skambučio naujovinimo užklausa nuo"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Skambutis nuo"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Darbo skambutis nuo"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Gaunama per „<xliff:g id="PROVIDER_NAME">%s</xliff:g>“"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-lv/strings.xml b/java/com/android/incallui/contactgrid/res/values-lv/strings.xml
index 87e5c90..1b3823f 100644
--- a/java/com/android/incallui/contactgrid/res/values-lv/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-lv/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Zvanu nodrošina <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Aizturēts"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videozvans no:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi videozvans no:"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Videozvana jaunināšanas pieprasījums no:"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi videozvana jaunināšanas pieprasījums no:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Zvans no:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Darba zvans no:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Ienākošie zvani, ko nodrošina <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-mk/strings.xml b/java/com/android/incallui/contactgrid/res/values-mk/strings.xml
index fcab8f4..1044683 100644
--- a/java/com/android/incallui/contactgrid/res/values-mk/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-mk/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Повикување преку <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"На чекање"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видеоповик од"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Видеоповик преку Wi-Fi од"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Барање за надградба на видеоповик од"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Барање за надградба на видеоповик преку Wi-Fi од"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Повик од"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Работен повик од"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Дојдовни повици преку <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ml/strings.xml b/java/com/android/incallui/contactgrid/res/values-ml/strings.xml
index 1dfb46a..519e9f4 100644
--- a/java/com/android/incallui/contactgrid/res/values-ml/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ml/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> മുഖേന വിളിക്കുന്നു"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"ഹോള്‍ഡിലാണ്"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ഈ വ്യക്തിയിൽ നിന്നുള്ള വീഡിയോ കോൾ"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"ഈ വ്യക്തിയിൽ നിന്നുള്ള Wi-Fi വീഡിയോ കോൾ"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ഇനിപ്പറയുന്നതിൽ നിന്നുള്ള വീഡിയോ അപ്‌ഗ്രേഡ് അഭ്യർത്ഥന"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ഇനിപ്പറയുന്നതിൽ നിന്നുള്ള Wi-Fi വീഡിയോ അപ്‌ഗ്രേഡ് അഭ്യർത്ഥന"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ഈ വ്യക്തിയിൽ നിന്നുള്ള കോൾ"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"ഈ വ്യക്തിയിൽ നിന്നുള്ള ഔദ്യോഗിക കോൾ"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> മുഖേനയുള്ള ഇൻകമിംഗ്"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-mn/strings.xml b/java/com/android/incallui/contactgrid/res/values-mn/strings.xml
index c93bd46..c87e071 100644
--- a/java/com/android/incallui/contactgrid/res/values-mn/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-mn/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>-р залгаж байна"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Хүлээлгэнд байгаа"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видео дуудлага"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi видео дуудлага"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Видеог сайжруулах хүсэлт"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi видеог сайжруулах хүсэлт"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Дуудлага"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Ажлын дуудлага"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>-р ирж байна"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-mr/strings.xml b/java/com/android/incallui/contactgrid/res/values-mr/strings.xml
index 81d76dd..6a01817 100644
--- a/java/com/android/incallui/contactgrid/res/values-mr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-mr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> द्वारे कॉल करीत आहे"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"होल्ड वर"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"यावरून व्हिडिओ कॉल"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi व्हिडिओ कॉल"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"याकडून व्हिडिओ श्रेणीसुधारणेची विनंती"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"याकडून Wi-Fi व्हिडिओ श्रेणीसुधारणेची विनंती"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"यावरील कॉल"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"कडून कार्य कॉल"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> द्वारे येणारे"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ms/strings.xml b/java/com/android/incallui/contactgrid/res/values-ms/strings.xml
index 815df79..17ca753 100644
--- a/java/com/android/incallui/contactgrid/res/values-ms/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ms/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Memanggil melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Panggilan ditahan"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Panggilan video daripada"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Panggilan video Wi-Fi daripada"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Permintaan peningkatan video daripada"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Permintaan peningkatan video Wi-Fi daripada"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Panggilan daripada"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Panggilan kerja daripada"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Panggilan masuk melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-my/strings.xml b/java/com/android/incallui/contactgrid/res/values-my/strings.xml
index 3c8a88e..14770cf 100644
--- a/java/com/android/incallui/contactgrid/res/values-my/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-my/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> မှတစ်ဆင့် ခေါ်ဆိုနေသည်"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"ဖုန်းကိုင်ထားသည်"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"အောက်ပါထံမှ ဗီဒီယိုခေါ်ဆိုမှု"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"အောက်ပါထံမှ Wi-Fi ဗီဒီယိုခေါ်ဆိုမှု"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"အောက်ပါထံမှ ဗီဒီယိုအဆင့်မြှင့်ခြင်းတောင်းဆိုချက်"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"အောက်ပါထံမှ Wi-Fi ဗီဒီယိုအဆင့်မြှင့်ခြင်းတောင်းဆိုချက်"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"အောက်ပါထံမှ ခေါ်ဆိုမှု"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"အောက်ပါထံမှ အလုပ်ခေါ်ဆိုမှု"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> မှတစ်ဆင့် အဝင်ခေါ်ဆိုမှု"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-nb/strings.xml b/java/com/android/incallui/contactgrid/res/values-nb/strings.xml
index 9ad8d0d..fbf9895 100644
--- a/java/com/android/incallui/contactgrid/res/values-nb/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-nb/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Ringer via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"På vent"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoanrop fra"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videoanrop fra"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Forespørsel om videooppdatering fra"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Forespørsel om Wi-Fi-videooppdatering fra"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Anrop fra"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Jobbrelatert anrop fra"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Innkommende via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ne/strings.xml b/java/com/android/incallui/contactgrid/res/values-ne/strings.xml
index e6e65c5..d618af4 100644
--- a/java/com/android/incallui/contactgrid/res/values-ne/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ne/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> मार्फत कल गर्दै"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"होल्डमा छ"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"निम्नबाट भिडियो कल आएको छ"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"निम्नबाट Wi-Fi मार्फत गरिएको भिडियो कल आएको छ"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"निम्नबाट आएको भिडियो अपग्रेडसम्बन्धी अनुरोध"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"निम्नबाट आएको Wi-Fi मार्फत भिडियो अपग्रेडसम्बन्धी अनुरोध"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"निम्नबाट कल आएको छ"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"निम्नबाट कार्य सम्बन्धी कल आएको छ"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> मार्फत गरिएको आगमन कल"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-nl/strings.xml b/java/com/android/incallui/contactgrid/res/values-nl/strings.xml
index 828a7a2..10dcd13 100644
--- a/java/com/android/incallui/contactgrid/res/values-nl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-nl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Bellen via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"In de wacht"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videogesprek van"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wifi-videogesprek van"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Upgradeverzoek voor videogesprek van"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Upgradeverzoek voor wifi-videogesprek van"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Oproep van"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Zakelijke oproep van"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Inkomend via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-no/strings.xml b/java/com/android/incallui/contactgrid/res/values-no/strings.xml
index 9ad8d0d..fbf9895 100644
--- a/java/com/android/incallui/contactgrid/res/values-no/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-no/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Ringer via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"På vent"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoanrop fra"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videoanrop fra"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Forespørsel om videooppdatering fra"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Forespørsel om Wi-Fi-videooppdatering fra"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Anrop fra"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Jobbrelatert anrop fra"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Innkommende via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-pa/strings.xml b/java/com/android/incallui/contactgrid/res/values-pa/strings.xml
index 1d4801c..fb261d6 100644
--- a/java/com/android/incallui/contactgrid/res/values-pa/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-pa/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ਰਾਹੀਂ ਕਾਲ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"ਰੋਕ ਕੇ ਰੱਖੀ ਗਈ"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ਇਸ ਤੋਂ ਵੀਡੀਓ ਕਾਲ"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"ਇਸ ਤੋਂ Wi-Fi ਵੀਡੀਓ ਕਾਲ"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ਇਸ ਤੋਂ ਵੀਡੀਓ ਅੱਪਗ੍ਰੇਡ ਬੇਨਤੀ"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ਇਸ ਤੋਂ Wi-Fi ਵੀਡੀਓ ਅੱਪਗ੍ਰੇਡ ਬੇਨਤੀ"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ਇਸ ਤੋਂ ਕਾਲ"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"ਇਸ ਤੋਂ ਕੰਮ ਸਬੰਧੀ ਕਾਲ"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ਰਾਹੀਂ ਇਨਕਮਿੰਗ"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-pl/strings.xml b/java/com/android/incallui/contactgrid/res/values-pl/strings.xml
index 586f39e..998e49e 100644
--- a/java/com/android/incallui/contactgrid/res/values-pl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-pl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Dzwonię przez <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Oczekujące"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Rozmowa wideo z:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Rozmowa wideo przez Wi-Fi z:"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Prośba o przejście na rozmowę wideo wysłana przez:"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Prośba o przejście na rozmowę wideo przez Wi-Fi wysłana przez:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Połączenie z:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Połączenie służbowe z:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Przychodzące z sieci <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml b/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml
index a445cdf..4365cba 100644
--- a/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Ligando via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Em espera"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochamada de"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochamada via Wi-Fi de"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitação de upgrade de vídeo de"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitação de upgrade de vídeo por Wi-Fi de"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chamada de"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chamada de trabalho de"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Chamada de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml b/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml
index ca07b3f..55d3c26 100644
--- a/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"A telefonar através de <xliff:g id="PROVIDER_NAME">%s</xliff:g>…"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Em espera"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochamada de"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochamada a partir de rede Wi-Fi de"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Pedido de atualização para videochamada de"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Pedido de atualização para videochamada por Wi-Fi de"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chamada de"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chamada de trabalho de"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Chamada recebida através de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-pt/strings.xml b/java/com/android/incallui/contactgrid/res/values-pt/strings.xml
index a445cdf..4365cba 100644
--- a/java/com/android/incallui/contactgrid/res/values-pt/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-pt/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Ligando via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Em espera"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochamada de"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochamada via Wi-Fi de"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitação de upgrade de vídeo de"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitação de upgrade de vídeo por Wi-Fi de"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chamada de"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chamada de trabalho de"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Chamada de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ro/strings.xml b/java/com/android/incallui/contactgrid/res/values-ro/strings.xml
index 180a01f..f8d1c9b 100644
--- a/java/com/android/incallui/contactgrid/res/values-ro/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ro/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Se apelează prin <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"În așteptare"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Apel video de la"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Apel video prin Wi-Fi de la"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitare de upgrade la apel video de la"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitare de upgrade la apel video prin Wi-Fi de la"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Apel primit de la"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Apel de serviciu de la"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Primite prin <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ru/strings.xml b/java/com/android/incallui/contactgrid/res/values-ru/strings.xml
index e0a6351..dfbc088 100644
--- a/java/com/android/incallui/contactgrid/res/values-ru/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ru/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Вызов через <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"На удержании"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видеовызов от"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Видеовызов по Wi-Fi от"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Запрос на переход к видеовстрече от:"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Запрос на переход к видеовстрече через Wi-Fi от:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Вызов от"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Рабочий вызов от"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Входящий вызов (оператор: <xliff:g id="PROVIDER_NAME">%s</xliff:g>)"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-si/strings.xml b/java/com/android/incallui/contactgrid/res/values-si/strings.xml
index 451dc39..00ca2aa 100644
--- a/java/com/android/incallui/contactgrid/res/values-si/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-si/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> හරහා අමතමින්"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"රඳවා ගත්"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"වෙතින් වීඩියෝ ඇමතුම"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"වෙතින් Wi-Fi වීඩියෝ ඇමතුම"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"වෙතින් වීඩියෝ උත්ශ්‍රේණි කිරීමේ ඉල්ලීම"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"වෙතින් Wi-Fi වීඩියෝ උත්ශ්‍රේණි කිරීමේ ඉල්ලීම"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"වෙතින් ඇමතුම"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"වෙතින් කාර්යාල ඇමතුම"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> හරහා එන"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-sk/strings.xml b/java/com/android/incallui/contactgrid/res/values-sk/strings.xml
index ae21ec8..40039ee 100644
--- a/java/com/android/incallui/contactgrid/res/values-sk/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sk/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Voláte prostredníctvom poskytovateľa <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Podržané"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videohovor od:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videohovor cez Wi-Fi od:"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Žiadosť o inováciu na videohovor od používateľa"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Žiadosť o inováciu na videohovor cez Wi-Fi od používateľa"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Hovor od:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Pracovný hovor od:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Prichádzajúci hovor prostredníctvom poskytovateľa <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-sl/strings.xml b/java/com/android/incallui/contactgrid/res/values-sl/strings.xml
index 1d93d21..f76b5cd 100644
--- a/java/com/android/incallui/contactgrid/res/values-sl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Klicanje prek ponudnika <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Zadržano"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoklic osebe"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videoklic prek omrežja Wi-Fi osebe"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Zahteva za nadgradnjo v video – zahteva osebe"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Zahteva za nadgradnjo v video prek omrežja Wi-Fi – zahteva osebe"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Klic osebe"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Delovni klic osebe"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Dohodni klic prek storitve <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-sq/strings.xml b/java/com/android/incallui/contactgrid/res/values-sq/strings.xml
index 8c28eb7..34ec2d1 100644
--- a/java/com/android/incallui/contactgrid/res/values-sq/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sq/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Telefonatë nëpërmjet <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Në pritje"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Telefonatë me video nga"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Telefonatë me video në Wi-Fi nga"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Kërkesë për përmirësimin me video nga"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Kërkesë për përmirësimin me video me Wi-Fi nga"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Telefonatë nga"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Telefonatë pune nga"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Telefonatë hyrëse nëpërmjet <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-sr/strings.xml b/java/com/android/incallui/contactgrid/res/values-sr/strings.xml
index 66ea45d..9ad1499 100644
--- a/java/com/android/incallui/contactgrid/res/values-sr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Позивамо преко <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"На чекању"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видео позив од"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi видео позив од"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Захтев за прелазак на видео позив од"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Захтев за прелазак на видео позив преко Wi-Fi-ја од"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Позив од"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Пословни позив од"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Долазни позив преко <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-sv/strings.xml b/java/com/android/incallui/contactgrid/res/values-sv/strings.xml
index 931d9c9..d5dd159 100644
--- a/java/com/android/incallui/contactgrid/res/values-sv/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sv/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Ringer med <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Parkerat"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videosamtal från"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videosamtal från"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Begäran om videouppgradering från"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Begäran om uppgradering av Wi-Fi-video från"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Samtal från"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Jobbsamtal från"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Inkommande via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-sw/strings.xml b/java/com/android/incallui/contactgrid/res/values-sw/strings.xml
index 581d797..72bc26f 100644
--- a/java/com/android/incallui/contactgrid/res/values-sw/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sw/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Inapiga simu kupitia <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Imesitishwa"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Simu ya video kutoka kwa"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Simu ya video kupitia Wi-Fi kutoka kwa"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Umetumiwa ombi ili ubadilishe utumie simu ya video na"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Umetumiwa ombi ili ubadilishe utumie simu ya video kwenye Wi-Fi na"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Simu kutoka kwa"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Simu ya kazi kutoka kwa"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Simu zinazoingia kupitia <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ta/strings.xml b/java/com/android/incallui/contactgrid/res/values-ta/strings.xml
index 37ff876..2f5b1b8 100644
--- a/java/com/android/incallui/contactgrid/res/values-ta/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ta/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> வழியாக அழைக்கிறது"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"ஹோல்டில் உள்ளது"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"வீடியோ அழைப்பு:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"வைஃபை வீடியோ அழைப்பு:"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"வீடியோவை மேம்படுத்துவதற்கான கோரிக்கை:"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"வைஃபையில் வீடியோவை மேம்படுத்துவதற்கான கோரிக்கை:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"அழைப்பு:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"அழைப்பு (பணி) :"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> மூலம் உள்வரும் அழைப்பு"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-te/strings.xml b/java/com/android/incallui/contactgrid/res/values-te/strings.xml
index 913c944..52038db 100644
--- a/java/com/android/incallui/contactgrid/res/values-te/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-te/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ద్వారా కాల్ చేస్తోంది"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"హోల్డ్‌లో ఉంది"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"వీరి నుండి వీడియో కాల్:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"వీరి నుండి Wi-Fi వీడియో కాల్:"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"వీరి నుండి వీడియో అప్‌గ్రేడ్ అభ్యర్థన"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"వీరి నుండి Wi-Fi వీడియో అప్‌గ్రేడ్ అభ్యర్థన"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"వీరి నుండి కాల్:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"వీరి నుండి కార్యాలయ కాల్:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ద్వారా ఇన్‌కమింగ్ కాల్"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-th/strings.xml b/java/com/android/incallui/contactgrid/res/values-th/strings.xml
index 6503959..419db19 100644
--- a/java/com/android/incallui/contactgrid/res/values-th/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-th/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"โทรผ่าน <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"พักสาย"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"แฮงเอาท์วิดีโอจาก"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"แฮงเอาท์วิดีโอผ่าน Wi-Fi จาก"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"คำขออัปเกรดวิดีโอจาก"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"คำขออัปเกรดวิดีโอผ่าน Wi-Fi จาก"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"โทรจาก"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"โทรเรื่องงานจาก"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"สายเรียกเข้าผ่าน <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-tl/strings.xml b/java/com/android/incallui/contactgrid/res/values-tl/strings.xml
index 7fa063b..282ec10 100644
--- a/java/com/android/incallui/contactgrid/res/values-tl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-tl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Tumatawag sa pamamagitan ng <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Naka-hold"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call mula kay"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi na video call mula kay"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Kahilingan upang i-upgrade ang video mula kay"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Kahilingan upang i-upgrade ang video gamit ang Wi-Fi mula kay"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Tawag mula kay"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Tawag sa trabaho mula kay"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Papasok sa pamamagitan ng <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-tr/strings.xml b/java/com/android/incallui/contactgrid/res/values-tr/strings.xml
index 1ce565d..5ecbf35 100644
--- a/java/com/android/incallui/contactgrid/res/values-tr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-tr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> üzerinden çağrı yapılıyor"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Beklemede"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Gelen video görüşmesi isteği:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Gelen kablosuz video görüşmesi isteği:"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Görüntülü görüşmeye geçme isteği alındı:"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Kablosuz görüntülü görüşmeye geçme isteği alındı:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Gelen çağrı:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Gelen iş çağrısı:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> adlı sağlayıcı üzerinden gelen çağrı"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-uk/strings.xml b/java/com/android/incallui/contactgrid/res/values-uk/strings.xml
index 0d4a595..7b84fb6 100644
--- a/java/com/android/incallui/contactgrid/res/values-uk/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-uk/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Виклик здійснюється через оператора <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Утримується"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Відеодзвінок від:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Відеодзвінок через Wi-Fi від:"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Запит на відеодзвінок від користувача"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Запит на відеодзвінок через Wi-Fi від користувача"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Виклик від:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Виклик на робочий телефон від:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Вхідні виклики через оператора <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ur/strings.xml b/java/com/android/incallui/contactgrid/res/values-ur/strings.xml
index 793e487..6584181 100644
--- a/java/com/android/incallui/contactgrid/res/values-ur/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ur/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"کالنگ بذریعہ <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"ہولڈ پر ہے"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ویڈیو کال منجانب"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"‏Wi-Fi ویڈیو کال منجانب"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ویڈیو اپ گریڈ کی درخواست منجانب"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"‏Wi-Fi ویڈیو اپ گریڈ کی درخواست منجانب"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"کال منجانب"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"دفتری کال منجانب"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> کے ذریعے آنے والی کال"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-uz/strings.xml b/java/com/android/incallui/contactgrid/res/values-uz/strings.xml
index a5ce1ca..db11a18 100644
--- a/java/com/android/incallui/contactgrid/res/values-uz/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-uz/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> orqali qo‘ng‘rioq qilinmoqda"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Kutish rejimida"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Kimdan video qo‘ng‘iroq:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi orqali kimdan video qo‘ng‘iroq:"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Bu foydalanuvchi video suhbatga o‘tishni so‘ramoqda:"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Bu foydalanuvchi Wi-Fi orqali video suhbatga o‘tishni so‘ramoqda:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Kimdan qo‘ng‘iroq:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Ish telefoniga kimdan qo‘ng‘iroq:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Kiruvchi qo‘ng‘iroq (operator: <xliff:g id="PROVIDER_NAME">%s</xliff:g>)"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-vi/strings.xml b/java/com/android/incallui/contactgrid/res/values-vi/strings.xml
index 9ce0f18..340a115 100644
--- a/java/com/android/incallui/contactgrid/res/values-vi/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-vi/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Đang gọi điện qua <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Đang chờ"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Cuộc gọi điện video từ"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Cuộc gọi điện video qua Wi-Fi từ"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Yêu cầu nâng cấp video từ"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Yêu cầu nâng cấp video Wi-Fi từ"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Cuộc gọi từ"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Cuộc gọi về công việc từ"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Cuộc gọi đến qua <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml b/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml
index af5008a..16031b8 100644
--- a/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"正在通过<xliff:g id="PROVIDER_NAME">%s</xliff:g>进行通话"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"保持"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"视频通话来自："</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"WLAN 视频通话来自："</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"视频通话升级请求来自："</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"WLAN 视频通话升级请求来自："</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"通话来自："</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"工作通话来自："</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"有人通过 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 来电"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml b/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml
index 9f47481..14a4441 100644
--- a/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"正在透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 撥號"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"保留"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"視像通話來自"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi 視像通話來自"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"視像升級要求來自"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi 視像升級要求來自"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"通話來自"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"工作通話來自"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 的來電"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml b/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml
index 563bb28..bdee41e 100644
--- a/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"正在透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 撥號"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"保留中"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"視訊通話來電："</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi 視訊通話來電："</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"視訊升級要求，來自："</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi 視訊升級要求，來自："</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"語音來電："</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"公司來電："</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"有人透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 來電"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-zu/strings.xml b/java/com/android/incallui/contactgrid/res/values-zu/strings.xml
index 19951cc..150d5cc 100644
--- a/java/com/android/incallui/contactgrid/res/values-zu/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-zu/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Ishaya ucingo nge-<xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -30,8 +14,6 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Ibambile"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Ikholi yevidiyo kusukela ku-"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Ikholi yevidiyo ye-Wi-Fi kusukela ku-"</string>
-    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Isicelo sokuthuthukiswa kwevidiyo kusukela"</string>
-    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Isicelo sokuthuthukiswa kwevidiyo ye-Wi-Fi kusukela"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Ikholi esuka ku-"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Ikholi yomsebenzi kusukela ku-"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Ingena nge-<xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values/strings.xml b/java/com/android/incallui/contactgrid/res/values/strings.xml
index 5a9272c..385f843 100644
--- a/java/com/android/incallui/contactgrid/res/values/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values/strings.xml
@@ -1,19 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
 
   <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
@@ -65,12 +50,6 @@
   <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
   <string name="contact_grid_incoming_wifi_video_call">Wi-Fi video call from</string>
 
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <string name="contact_grid_incoming_video_request">Video upgrade request from</string>
-
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <string name="contact_grid_incoming_wifi_video_request">Wi-Fi video upgrade request from</string>
-
   <!-- Displayed in the answer call screen for incoming voice calls. -->
   <string name="contact_grid_incoming_voice_call">Call from</string>
 
diff --git a/java/com/android/incallui/incall/impl/ButtonChooserFactory.java b/java/com/android/incallui/incall/impl/ButtonChooserFactory.java
index 99364e2..0dcfdb5 100644
--- a/java/com/android/incallui/incall/impl/ButtonChooserFactory.java
+++ b/java/com/android/incallui/incall/impl/ButtonChooserFactory.java
@@ -83,18 +83,11 @@
     mapping.put(
         InCallButtonIds.BUTTON_SWITCH_TO_SECONDARY, MappingInfo.builder(4).setSlotOrder(0).build());
     mapping.put(
-        InCallButtonIds.BUTTON_UPGRADE_TO_VIDEO, MappingInfo.builder(4).setSlotOrder(10).build());
-
-    /*
-     * Unlike the other configurations, MANAGE_VOICE_CONFERENCE shares a spot with HOLD for GSM.
-     * On GSM, pressing hold while there's a background call just swaps to the background call. It
-     * doesn't make sense to show both SWITCH_TO_SECONDARY and HOLD when they do the same thing, so
-     * we show MANAGE_VOICE_CONFERENCE instead. Previously MANAGE_VOICE_CONFERENCE would not show.
-     */
-    mapping.put(
         InCallButtonIds.BUTTON_MANAGE_VOICE_CONFERENCE,
-        MappingInfo.builder(5).setSlotOrder(0).build());
-    mapping.put(InCallButtonIds.BUTTON_HOLD, MappingInfo.builder(5).setSlotOrder(5).build());
+        MappingInfo.builder(4).setSlotOrder(5).build());
+    mapping.put(
+        InCallButtonIds.BUTTON_UPGRADE_TO_VIDEO, MappingInfo.builder(4).setSlotOrder(10).build());
+    mapping.put(InCallButtonIds.BUTTON_HOLD, MappingInfo.builder(5).setSlotOrder(0).build());
 
     return new ButtonChooser(new MappedButtonConfig(mapping));
   }
diff --git a/java/com/android/incallui/incall/impl/ButtonController.java b/java/com/android/incallui/incall/impl/ButtonController.java
index b7a47f0..8c11364 100644
--- a/java/com/android/incallui/incall/impl/ButtonController.java
+++ b/java/com/android/incallui/incall/impl/ButtonController.java
@@ -29,8 +29,6 @@
 import com.android.incallui.incall.protocol.InCallButtonIds;
 import com.android.incallui.incall.protocol.InCallButtonUiDelegate;
 import com.android.incallui.incall.protocol.InCallScreenDelegate;
-import com.android.incallui.speakerbuttonlogic.SpeakerButtonInfo;
-import com.android.incallui.speakerbuttonlogic.SpeakerButtonInfo.IconSize;
 
 /** Manages a single button. */
 interface ButtonController {
@@ -378,13 +376,36 @@
     }
 
     public void setAudioState(CallAudioState audioState) {
-      SpeakerButtonInfo info = new SpeakerButtonInfo(audioState, IconSize.SIZE_36_DP);
+      @StringRes int contentDescriptionResId;
+      if ((audioState.getSupportedRouteMask() & CallAudioState.ROUTE_BLUETOOTH)
+          == CallAudioState.ROUTE_BLUETOOTH) {
+        checkable = false;
+        isChecked = false;
+        label = R.string.incall_label_audio;
 
-      checkable = info.checkable;
-      isChecked = info.isChecked;
-      label = info.label;
-      icon = info.icon;
-      @StringRes int contentDescriptionResId = info.contentDescription;
+        if ((audioState.getRoute() & CallAudioState.ROUTE_BLUETOOTH)
+            == CallAudioState.ROUTE_BLUETOOTH) {
+          icon = R.drawable.quantum_ic_bluetooth_audio_white_36;
+          contentDescriptionResId = R.string.incall_content_description_bluetooth;
+        } else if ((audioState.getRoute() & CallAudioState.ROUTE_SPEAKER)
+            == CallAudioState.ROUTE_SPEAKER) {
+          icon = R.drawable.quantum_ic_volume_up_white_36;
+          contentDescriptionResId = R.string.incall_content_description_speaker;
+        } else if ((audioState.getRoute() & CallAudioState.ROUTE_WIRED_HEADSET)
+            == CallAudioState.ROUTE_WIRED_HEADSET) {
+          icon = R.drawable.quantum_ic_headset_white_36;
+          contentDescriptionResId = R.string.incall_content_description_headset;
+        } else {
+          icon = R.drawable.ic_phone_audio_white_36dp;
+          contentDescriptionResId = R.string.incall_content_description_earpiece;
+        }
+      } else {
+        checkable = true;
+        isChecked = audioState.getRoute() == CallAudioState.ROUTE_SPEAKER;
+        label = R.string.incall_label_speaker;
+        icon = R.drawable.quantum_ic_volume_up_white_36;
+        contentDescriptionResId = R.string.incall_content_description_speaker;
+      }
 
       contentDescription = delegate.getContext().getText(contentDescriptionResId);
       checkedContentDescription =
diff --git a/java/com/android/incallui/incall/impl/InCallFragment.java b/java/com/android/incallui/incall/impl/InCallFragment.java
index d329dc9..c5d7532 100644
--- a/java/com/android/incallui/incall/impl/InCallFragment.java
+++ b/java/com/android/incallui/incall/impl/InCallFragment.java
@@ -473,9 +473,6 @@
     inCallButtonUiDelegate.setAudioRoute(audioRoute);
   }
 
-  @Override
-  public void onAudioRouteSelectorDismiss() {}
-
   @NonNull
   @Override
   public ButtonController getButtonController(@InCallButtonIds int id) {
diff --git a/java/com/android/incallui/incall/impl/InCallPagerAdapter.java b/java/com/android/incallui/incall/impl/InCallPagerAdapter.java
index bc0c616..0b1088d 100644
--- a/java/com/android/incallui/incall/impl/InCallPagerAdapter.java
+++ b/java/com/android/incallui/incall/impl/InCallPagerAdapter.java
@@ -21,6 +21,7 @@
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentStatePagerAdapter;
 import android.support.v4.view.PagerAdapter;
+import android.text.TextUtils;
 import com.android.dialer.multimedia.MultimediaData;
 import com.android.incallui.sessiondata.MultimediaFragment;
 
@@ -46,7 +47,8 @@
 
   @Override
   public int getCount() {
-    if (attachments != null && attachments.hasData()) {
+    if (attachments != null
+        && (!TextUtils.isEmpty(attachments.getText()) || attachments.hasImageData())) {
       return 2;
     }
     return 1;
diff --git a/java/com/android/incallui/incall/impl/res/values-af/strings.xml b/java/com/android/incallui/incall/impl/res/values-af/strings.xml
index 64529a5..fd632fb 100644
--- a/java/com/android/incallui/incall/impl/res/values-af/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-af/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video-oproep"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Hou aan"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Voeg oproep by"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Demp"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Beëindig oproep"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Sleutelblok"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Luidspreker"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is aan"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is af"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Voeg saam"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Bestuur"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Bestuur bellers"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Verwissel"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Klank"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Nota is gestuur"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-am/strings.xml b/java/com/android/incallui/incall/impl/res/values-am/strings.xml
index 66a3868..9dfd0e6 100644
--- a/java/com/android/incallui/incall/impl/res/values-am/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-am/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"የቪዲዮ ጥሪ"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"ይዘህ ቆይ"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"ጥሪ ያክሉ"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"ድምፀ-ከል አድርግ"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"ጥሪ ጨርስ"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"ቁልፍ ሰሌዳ"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"የድምጽ ማጉያ"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"፣ በርቷል"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"፣ ጠፍቷል"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"አዋህድ"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"አስተዳድር"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ደዋዮችን ያስተዳድሩ"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"አገላብጥ"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"ድምፅ"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"ማስታወሻ ተልኳል"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ar/strings.xml b/java/com/android/incallui/incall/impl/res/values-ar/strings.xml
index e4dbfe4..a5f448a 100644
--- a/java/com/android/incallui/incall/impl/res/values-ar/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ar/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"مكالمة فيديو"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"انتظار"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"إضافة مكالمة"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"كتم"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"إنهاء المكالمة"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"لوحة مفاتيح"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"مكبر الصوت"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"، مشغل"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"، غير مشغل"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"دمج"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"إدارة"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"إدارة المتصلين"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"تبديل"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"الصوت"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"تم إرسال الملاحظة"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-az/strings.xml b/java/com/android/incallui/incall/impl/res/values-az/strings.xml
index 9a1f7f8..5f1f8cb 100644
--- a/java/com/android/incallui/incall/impl/res/values-az/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-az/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video zəng"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Xətdə axlayın"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Zəng əlavə edin"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Susdurun"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Zəngi bitirin"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Klaviatura"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Dinamik"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", aktivdir"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", deaktivdir"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Birləşdir"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"İdarə edin"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Zəng edənləri idarə edin"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Dəyişdirin"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Səs"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Qeyd göndərildi"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml
index 02d6b7c..bff7ed0 100644
--- a/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video poziv"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Na čekanje"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj poziv"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Isključi zvuk"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Završi poziv"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatura"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Zvučnik"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", uključen"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", isključen"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Objedini"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Upravljaj"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Upravljajte pozivaocima"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Zameni"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Beleška je poslata"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-be/strings.xml b/java/com/android/incallui/incall/impl/res/values-be/strings.xml
index 45e1e10..394c7c8 100644
--- a/java/com/android/incallui/incall/impl/res/values-be/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-be/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Відэавыклік"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Утрымліваць"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Дадаць выклік"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Адключыць мікрафон"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Сконч. выкл."</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Клавіятура"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Вонк.дынамік"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", уключана"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", выключана"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Аб\'яднаць"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Кіраваць"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Кіраваць выклікаючымі абанентамі"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Пераключыць"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Гук"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Нататка адпраўлена"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-bg/strings.xml b/java/com/android/incallui/incall/impl/res/values-bg/strings.xml
index c339d3b..4f5933b 100644
--- a/java/com/android/incallui/incall/impl/res/values-bg/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-bg/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Видеообажд."</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Задържане"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Ново обажд."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Без звук"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Затваряне"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Клавиатура"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Високоговорител"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"е включено"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"е изключено"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Обединяване"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Управление"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Управление на обаждащите се"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Размяна"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Бележката е изпратена"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-bn/strings.xml b/java/com/android/incallui/incall/impl/res/values-bn/strings.xml
index ca5837b..9453e14 100644
--- a/java/com/android/incallui/incall/impl/res/values-bn/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-bn/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"ভিডিও কল"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"ধরে থাকুন"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"কল যোগ করুন"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"নিঃশব্দ করুন"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"কল শেষ করুন"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"কীপ্যাড"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"স্পিকার"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", চালু রয়েছে"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", বন্ধ রয়েছে"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"মার্জ করুন"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"পরিচালনা করুন"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"কলারদের পরিচালনা করুন"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"অদল বদল করুন"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"শব্দ"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"নোট পাঠানো হয়েছে"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-bs/strings.xml b/java/com/android/incallui/incall/impl/res/values-bs/strings.xml
index 26b44ea..4b47964 100644
--- a/java/com/android/incallui/incall/impl/res/values-bs/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-bs/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videopoziv"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Na čekanju"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj poziv"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Isključi"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Prekini poziv"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Telefonska tastatura"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Zvučnik"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", uključen"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", isključen"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Spoji"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Upravljaj"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Upravljanje pozivaocima"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Zamijeni"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Bilješka je poslana"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ca/strings.xml b/java/com/android/incallui/incall/impl/res/values-ca/strings.xml
index 9c76a3a..e10b7bd 100644
--- a/java/com/android/incallui/incall/impl/res/values-ca/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ca/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videotrucada"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Posa en espera"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Afeg. trucada"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Silencia"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Penja"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclat"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Altaveu"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activat"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desactivat"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Combina"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Gestiona"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gestiona les persones que truquen"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Canvia"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"So"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"La nota s\'ha enviat"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-cs/strings.xml b/java/com/android/incallui/incall/impl/res/values-cs/strings.xml
index 69f3e53..a00c105 100644
--- a/java/com/android/incallui/incall/impl/res/values-cs/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-cs/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videohovor"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Podržet"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Přidat hovor"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Vyp. mikrof."</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Zavěsit"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Klávesnice"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Reproduktor"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"– zapnuto"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"– vypnuto"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Sloučit"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Spravovat"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Spravovat volající"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Přepnout"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Poznámka byla odeslána"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-da/strings.xml b/java/com/android/incallui/incall/impl/res/values-da/strings.xml
index d9328af..08b5cbb 100644
--- a/java/com/android/incallui/incall/impl/res/values-da/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-da/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videoopkald"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Parkér"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Tilføj opkald"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Slå lyden fra"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Slut opkald"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatur"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Højttaler"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", er til"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", er fra"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Flet"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Administrer"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Administrer opkaldere"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Byt"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Lyd"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Noten blev sendt"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-de/strings.xml b/java/com/android/incallui/incall/impl/res/values-de/strings.xml
index 30eae96..5f3f8c1 100644
--- a/java/com/android/incallui/incall/impl/res/values-de/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-de/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videoanruf"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Halten"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Hinzufügen"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Stumm"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Beenden"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Wähltasten"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Lautsprecher"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ist an"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ist aus"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Zusammenf."</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Verwalten"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Anrufer verwalten"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Wechseln"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Audio"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Notiz gesendet"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-el/strings.xml b/java/com/android/incallui/incall/impl/res/values-el/strings.xml
index b45314f..0f5a142 100644
--- a/java/com/android/incallui/incall/impl/res/values-el/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-el/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Βιντεοκλήση"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Αναμονή"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Προσθ. κλήσ."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Σίγαση"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Τερματισμός"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Πληκτρολόγιο"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Ηχείο"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ενεργό"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ανενεργό"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Συγχώνευση"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Διαχείριση"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Διαχείριση καλούντων"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Ανταλλαγή"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Ήχος"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Η σημείωση εστάλη"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml b/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml
index 34323f5..89b72df 100644
--- a/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Hold"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Add call"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Mute"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"End call"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is on"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is off"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Merge"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Manage"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Manage callers"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Swap"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Sound"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Note sent"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml b/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml
index 34323f5..89b72df 100644
--- a/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Hold"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Add call"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Mute"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"End call"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is on"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is off"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Merge"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Manage"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Manage callers"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Swap"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Sound"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Note sent"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml b/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml
index 34323f5..89b72df 100644
--- a/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Hold"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Add call"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Mute"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"End call"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is on"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is off"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Merge"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Manage"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Manage callers"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Swap"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Sound"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Note sent"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml b/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml
index d39cf2f..fe9374c 100644
--- a/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videollamada"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Retener"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Agregar llamada"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Silenciar"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Finalizar"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Altavoz"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activado"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desactivado"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Combinar"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Administrar"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Administrar números"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Cambiar"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Sonido"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Se envió la nota"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-es/strings.xml b/java/com/android/incallui/incall/impl/res/values-es/strings.xml
index db5a7e6..f2dd09b 100644
--- a/java/com/android/incallui/incall/impl/res/values-es/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-es/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videollamada"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Retener"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Añadir"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Silenciar"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Finalizar"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Altavoz"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activado"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desactivado"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Combinar"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Gestionar"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Administrar llamadas"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Cambiar"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Sonido"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Nota enviada"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-et/strings.xml b/java/com/android/incallui/incall/impl/res/values-et/strings.xml
index f4587ad..03fa7de 100644
--- a/java/com/android/incallui/incall/impl/res/values-et/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-et/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videokõne"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Ootele"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Lisa kõne"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Vaigista"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Lõpeta kõne"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Klaviatuur"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Kõlar"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", on sees"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", on väljas"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Ühenda"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Halda"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Helistajate haldamine"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Vaheta"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Heli"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Märge on saadetud"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-eu/strings.xml b/java/com/android/incallui/incall/impl/res/values-eu/strings.xml
index 28d78a7..51d300e 100644
--- a/java/com/android/incallui/incall/impl/res/values-eu/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-eu/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Bideo-deia"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Utzi zain"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Gehitu deia"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Des. audioa"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Amaitu deia"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Teklatua"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Bozgorailua"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", aktibatuta"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desaktib."</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Bateratu"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Kudeatu"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Kudeatu deitzaileak"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Aldatu"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Soinua"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Bidali da oharra"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-fa/strings.xml b/java/com/android/incallui/incall/impl/res/values-fa/strings.xml
index a26ac75..a070116 100644
--- a/java/com/android/incallui/incall/impl/res/values-fa/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-fa/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"تماس ویدئویی"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"درحال انتظار"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"افزودن تماس"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"بی‌صدا کردن"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"پایان تماس"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"صفحه کلید"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"بلندگو"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"، فعال است"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"، غیرفعال است"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"ادغام"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"مدیریت"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"مدیریت تماس‌گیرندگان"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"جابه‌جایی"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"صدا"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"یادداشت ارسال شد"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-fi/strings.xml b/java/com/android/incallui/incall/impl/res/values-fi/strings.xml
index 9ae5348..d81bfbf 100644
--- a/java/com/android/incallui/incall/impl/res/values-fi/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-fi/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videopuhelu"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Pitoon"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Lisää puhelu"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Mykistä"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Päätä puhelu"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Näppäimistö"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Kaiutin"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", käytössä"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ei käytössä"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Yhdistä"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Hallinnoi"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Hallinnoi soittajia"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Vaihda"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Ääni"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Muistiinpano lähetettiin."</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml b/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml
index cff6745..1278bce 100644
--- a/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Appel vidéo"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"En attente"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Autre appel"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Couper son"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Raccrocher"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Clavier"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Haut-parleur"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activé"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", désactivé"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Fusionner"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Gérer"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gérer les appels"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Permuter"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Son"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Note envoyée"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-fr/strings.xml b/java/com/android/incallui/incall/impl/res/values-fr/strings.xml
index 14e92be..5532032 100644
--- a/java/com/android/incallui/incall/impl/res/values-fr/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-fr/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Appel vidéo"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"En attente"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Autre appel"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Couper micro"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Raccrocher"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Clavier"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Haut-parleur"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activé"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", désactivé"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Fusionner"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Gérer"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gérer les appelants"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Permuter"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Son"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Note envoyée"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-gl/strings.xml b/java/com/android/incallui/incall/impl/res/values-gl/strings.xml
index 4b399f4..ec99b7c 100644
--- a/java/com/android/incallui/incall/impl/res/values-gl/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-gl/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videochamada"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"En espera"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Eng. chamada"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Ignorar"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Finalizar chamada"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Altofalante"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"activado"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"desactivado"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Combinar"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Xestionar"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Xestionar emisores de chamadas"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Cambiar"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Son"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Enviouse a nota"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-gu/strings.xml b/java/com/android/incallui/incall/impl/res/values-gu/strings.xml
index 438f0f3..fb3999c 100644
--- a/java/com/android/incallui/incall/impl/res/values-gu/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-gu/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"વિડિઓ કૉલ"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"હોલ્ડ કરો"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"કૉલ ઉમેરો"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"મ્યૂટ કરો"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"કૉલ સમાપ્ત કરો"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"કીપેડ"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"સ્પીકર"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ચાલુ છે"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", બંધ છે"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"મર્જ કરો"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"સંચાલિત કરો"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"કૉલર્સને સંચાલિત કરો"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"સ્વેપ કરો"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"ધ્વનિ"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"નોંધ મોકલી"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml
new file mode 100644
index 0000000..1f37cd5
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <dimen name="incall_avatar_size">88dp</dimen>
+</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-h650dp/styles.xml b/java/com/android/incallui/incall/impl/res/values-h580dp/styles.xml
similarity index 100%
rename from java/com/android/incallui/incall/impl/res/values-h650dp/styles.xml
rename to java/com/android/incallui/incall/impl/res/values-h580dp/styles.xml
diff --git a/java/com/android/incallui/incall/impl/res/values-hi/strings.xml b/java/com/android/incallui/incall/impl/res/values-hi/strings.xml
index 39e6e6b..6a7538d 100644
--- a/java/com/android/incallui/incall/impl/res/values-hi/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-hi/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"वीडियो कॉल"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"होल्ड करें"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"कॉल जोड़ें"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"म्यूट करें"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"कॉल समाप्त करें"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"कीपैड"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"स्‍पीकर"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", चालू है"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", बंद है"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"एक बनाएं"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"प्रबंधित करें"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"कॉलर प्रबंधित करें"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"स्वैप करें"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"ध्वनि"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"नोट भेज दिया गया है"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-hr/strings.xml b/java/com/android/incallui/incall/impl/res/values-hr/strings.xml
index e440028..fc431b3 100644
--- a/java/com/android/incallui/incall/impl/res/values-hr/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-hr/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videopoziv"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Pauziraj"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj poziv"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Isklj. zvuk"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Prekini poziv"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Tipkovnica"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Zvučnik"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", uključeno"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", isključeno"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Spoji"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Upravljanje"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Upravljaj pozivateljima"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Zamijeni"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Bilješka je poslana"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-hu/strings.xml b/java/com/android/incallui/incall/impl/res/values-hu/strings.xml
index e63ce59..194c348 100644
--- a/java/com/android/incallui/incall/impl/res/values-hu/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-hu/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videohívás"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Várakoztatás"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Hívás felv."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Némítás"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Hívás vége"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Billentyűzet"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Hangszóró"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", be"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ki"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Egyesítés"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Kezelés"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Hívók kezelése"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Csere"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Hang"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Üzenet elküldve"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-hy/strings.xml b/java/com/android/incallui/incall/impl/res/values-hy/strings.xml
index ce395e7..0e8054e 100644
--- a/java/com/android/incallui/incall/impl/res/values-hy/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-hy/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Տեսազանգ"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Պահել զանգը"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Ավելացնել զանգ"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Անջատել"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Ավարտել զանգը"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Ստեղնաշար"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Բարձրախոս"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", միացած է"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", անջատած է"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Միավորել"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Կառավարել"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Զանգողների կառավարում"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Փոխարկել"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Ձայն"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Գրառումն ուղարկվեց"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-in/strings.xml b/java/com/android/incallui/incall/impl/res/values-in/strings.xml
index e9d738a..f429cb4 100644
--- a/java/com/android/incallui/incall/impl/res/values-in/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-in/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Tahan"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Tambahkan panggilan"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Bisukan"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Akhiri panggilan"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", aktif"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", Nonaktif"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Gabungkan"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Kelola"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Kelola penelepon"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Tukar"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Suara"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Catatan telah dikirim"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-is/strings.xml b/java/com/android/incallui/incall/impl/res/values-is/strings.xml
index f262e3f..9c3bf89 100644
--- a/java/com/android/incallui/incall/impl/res/values-is/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-is/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Myndsímtal"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Setja í bið"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Bæta við"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Hljóð af"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Ljúka"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Talnaborð"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Hátalari"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", kveikt"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", slökkt"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Sameina"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Stjórna"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Hafa umsjón með hringjendum"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Skipta milli"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Hljóð"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Glósa send"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-it/strings.xml b/java/com/android/incallui/incall/impl/res/values-it/strings.xml
index f29a702..1cfb0be 100644
--- a/java/com/android/incallui/incall/impl/res/values-it/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-it/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videochiamata"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"In attesa"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Aggiungi chiamata"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Disattiva"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Termina chiamata"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Tastierino"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Altoparlante"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", attivo"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", non attivo"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Unisci"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Gestisci"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gestisci chiamanti"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Scambia"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Audio"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Nota inviata"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-iw/strings.xml b/java/com/android/incallui/incall/impl/res/values-iw/strings.xml
index bf08e3b..2426fc8 100644
--- a/java/com/android/incallui/incall/impl/res/values-iw/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-iw/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"שיחת וידאו"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"המתנה"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"הוסף שיחה"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"השתק"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"סיום השיחה"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"לוח חיוג"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"רמקול"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", מופעל"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", מושבת"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"מזג"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"נהל"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ניהול המתקשרים"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"החלף"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"צלילים"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"ההערה נשלחה"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ja/strings.xml b/java/com/android/incallui/incall/impl/res/values-ja/strings.xml
index b78ee20..9e313a0 100644
--- a/java/com/android/incallui/incall/impl/res/values-ja/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ja/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"ビデオ通話"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"保留"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"通話を追加"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"ミュート"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"通話を終了"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"キーパッド"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"スピーカー"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"がオンです"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"がオフです"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"統合"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"管理"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"発信者を管理"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"切り替え"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"音声"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"メモを送信しました"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ka/strings.xml b/java/com/android/incallui/incall/impl/res/values-ka/strings.xml
index f6926f3..d33af5a 100644
--- a/java/com/android/incallui/incall/impl/res/values-ka/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ka/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"ვიდეოზარი"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"შეყოვნება"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"ზარის დამატ."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"დადუმება"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"ზარის დასრ."</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"კლავიატურა"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"სპიკერი"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ჩართულია"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", გამორთულია"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"გაერთიანება"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"მართვა"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"აბონენტების მართვა"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"შენაცვლება"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"ხმა"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"ჩანიშვნა გაიგზავნა"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-kk/strings.xml b/java/com/android/incallui/incall/impl/res/values-kk/strings.xml
index 8da9982..db9c4f6 100644
--- a/java/com/android/incallui/incall/impl/res/values-kk/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-kk/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Бейне қоңырау"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Күттіру"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Қоңырау қосу"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Дыбысын өшіру"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Қоңырауды аяқтау"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Пернетақта"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Динамик"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", қосулы"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", өшірулі"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Біріктіру"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Басқару"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Қоңырау шалушыларды басқару"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Ауыстыру"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Дыбыс"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Ескертпе жіберілді"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-km/strings.xml b/java/com/android/incallui/incall/impl/res/values-km/strings.xml
index 88e356a..6596bdf 100644
--- a/java/com/android/incallui/incall/impl/res/values-km/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-km/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"ហៅ​ជា​វីដេអូ"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"រង់ចាំ"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"បន្ថែម​ការ​ហៅ"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"បិទ​សំឡេង"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"បញ្ចប់​ការ​ហៅ"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"បន្ទះ​​ចុច​លេខ"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"ឧបករណ៍​បំពង​សំឡេង"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", បាន​បើក"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", បានបិទ"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"បញ្ចូលគ្នា"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"គ្រប់គ្រង"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"គ្រប់គ្រងអ្នក​ហៅ"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"ប្ដូរ"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"សំឡេង"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"បានផ្ញើចំណាំ"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-kn/strings.xml b/java/com/android/incallui/incall/impl/res/values-kn/strings.xml
index ad29b6d..c03ec09 100644
--- a/java/com/android/incallui/incall/impl/res/values-kn/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-kn/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"ವೀಡಿಯೊ ಕರೆ"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"ಹೋಲ್ಡ್‌‌ ಮಾಡು"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"ಕರೆಯನ್ನು ಸೇರಿಸಿ"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"ಮ್ಯೂಟ್ ಮಾಡಿ"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"ಕರೆ ಅಂತ್ಯಗೊಳಿಸಿ"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"ಕೀಪ್ಯಾಡ್‌"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"ಸ್ಪೀಕರ್‌"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ಆನ್ ಆಗಿದೆ"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ಆಫ್ ಆಗಿದೆ"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"ವಿಲೀನಗೊಳಿಸು"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"ನಿರ್ವಹಿಸು"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ಕರೆದಾತರನ್ನು ನಿರ್ವಹಿಸಿ"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"ಸ್ವ್ಯಾಪ್‌ ಮಾಡು"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"ಧ್ವನಿ"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"ಟಿಪ್ಪಣಿ ಕಳುಹಿಸಲಾಗಿದೆ"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ko/strings.xml b/java/com/android/incallui/incall/impl/res/values-ko/strings.xml
index f9bb20f..e701e77 100644
--- a/java/com/android/incallui/incall/impl/res/values-ko/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ko/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"화상 통화"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"대기"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"통화 추가"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"음소거"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"통화 종료"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"키패드"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"스피커"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", 켜짐"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", 꺼짐"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"병합"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"관리"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"발신자 관리"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"전환"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"소리"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"메모가 전송되었습니다."</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ky/strings.xml b/java/com/android/incallui/incall/impl/res/values-ky/strings.xml
index f00264d..e51d4c5 100644
--- a/java/com/android/incallui/incall/impl/res/values-ky/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ky/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Видео чалуу"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Күттүрүү"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Чалууну кошуу"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Үнүн өчүрүү"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Чалууну бүтүрүү"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Ном. тергич"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Катуу сүйлөткүч"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", күйүк"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", өчүк"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Бириктирүү"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Башкаруу"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Чалуучуларды башкаруу"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Алмаштыруу"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Добуш"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Билдирүү жөнөтүлдү"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-lo/strings.xml b/java/com/android/incallui/incall/impl/res/values-lo/strings.xml
index 2382f32..52de3ff 100644
--- a/java/com/android/incallui/incall/impl/res/values-lo/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-lo/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"ໂທດ້ວຍວິດີໂອ"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"ພັກສາຍຊົ່ວຄາວ"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"ເພີ່ມການໂທ"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"ປີດສຽງ"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"ວາງສາຍ"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"ແປ້ນກົດ"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"ລຳໂພງ"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ເປີດຢູ່"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ປິດຢູ່"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"ຮວມສາຍ"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"ຈັດການ"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ຈັດການຜູ້ໂທ"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"ສະຫຼັບສາຍ"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"ສຽງ"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"ສົ່ງບັນທຶກແລ້ວ"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-lt/strings.xml b/java/com/android/incallui/incall/impl/res/values-lt/strings.xml
index 1a10884..4cd0356 100644
--- a/java/com/android/incallui/incall/impl/res/values-lt/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-lt/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Vaizdo skambutis"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Sulaikyti"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Pr. skambutį"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Nutildyti"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Baig. skamb."</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Klaviatūra"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Garsiakalbis"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", įjungtas"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", išjungtas"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Sujungti"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Tvarkyti"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Tvarkyti skambintojus"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Sukeisti"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Garsas"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Užrašas išsiųstas"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-lv/strings.xml b/java/com/android/incallui/incall/impl/res/values-lv/strings.xml
index c19e7c0..48f9ae0 100644
--- a/java/com/android/incallui/incall/impl/res/values-lv/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-lv/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videozvans"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Aizturēt"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Pievienot zvanu"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Izslēgt"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Beigt zvanu"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Cipartast."</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Skaļrunis"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ieslēgts"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", izslēgts"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Apvienot"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Pārvaldīt"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Pārvaldīt zvanītājus"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Pārslēgt"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Skaņa"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Piezīme nosūtīta"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-mk/strings.xml b/java/com/android/incallui/incall/impl/res/values-mk/strings.xml
index 610a308..5a61de5 100644
--- a/java/com/android/incallui/incall/impl/res/values-mk/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-mk/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Видеоповик"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"На чекање"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Додај повик"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Исклучи звук"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Заврши повик"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Тастатура"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Звучник"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", е вклучен"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", е исклучен"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Спои"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Управувај"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Управувајте со повикувачите"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Замени"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Белешката е испратена"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ml/strings.xml b/java/com/android/incallui/incall/impl/res/values-ml/strings.xml
index 83c2989..00586ff 100644
--- a/java/com/android/incallui/incall/impl/res/values-ml/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ml/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"വീഡിയോ കോള്‍"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"ഹോള്‍ഡുചെയ്യുക"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"കോൾ ചേർക്കുക"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"മ്യൂട്ടുചെയ്യുക"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"കോള്‍ അവസാനിപ്പിക്കൂ"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"കീപാഡ്"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"സ്പീക്കർ"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ഓണാണ്"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ഓഫാണ്"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"ലയിപ്പിക്കുക"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"മാനേജുചെയ്യുക"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"കോൾ ചെയ്യുന്നവരെ മാനേജുചെയ്യുക"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"സ്വാപ്പുചെയ്യുക"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"ശബ്‌ദം"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"കുറിപ്പ് അയച്ചു"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-mn/strings.xml b/java/com/android/incallui/incall/impl/res/values-mn/strings.xml
index 9427d86..085a405 100644
--- a/java/com/android/incallui/incall/impl/res/values-mn/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-mn/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Видео хурал"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Саатуулах"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Дуудлага нэмэх"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Дууг хаах"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Дуудлагыг таслах"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Товчлуур"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Чанга яригч"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", асаатай"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", унтраатай"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Нэгтгэх"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Удирдах"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Залгагчдыг удирдах"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Солих"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Дуу"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Тэмдэглэлийг илгээсэн"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-mr/strings.xml b/java/com/android/incallui/incall/impl/res/values-mr/strings.xml
index 194c192..8419233 100644
--- a/java/com/android/incallui/incall/impl/res/values-mr/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-mr/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"व्हिडिओ कॉल"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"होल्ड करा"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"कॉल जोडा"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"नि:शब्द करा"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"कॉल समाप्त करा"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"कीपॅड"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"स्पीकर"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", सुरू आहे"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", बंद आहे"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"विलीन करा"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"व्यवस्थापित करा"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"कॉलर व्यवस्थापित करा"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"अदलाबदल करा"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"ध्वनी"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"टीप पाठविली"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ms/strings.xml b/java/com/android/incallui/incall/impl/res/values-ms/strings.xml
index a918ded..c9db832 100644
--- a/java/com/android/incallui/incall/impl/res/values-ms/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ms/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Pgln video"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Tunda"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Tambah pgln"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Redam"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Tamatkn pgln"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Pad kekunci"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Pmbsr suara"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", dihidupkan"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", Dimatikan"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Gabung"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Urus"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Urus pemanggil"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Silih"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Bunyi"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Nota dihantar"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-my/strings.xml b/java/com/android/incallui/incall/impl/res/values-my/strings.xml
index 8007029..e0bfb8c 100644
--- a/java/com/android/incallui/incall/impl/res/values-my/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-my/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"ဗီဒီယိုခေါ်ဆိုမှု"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"ခဏရပ်ထားရန်"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"ထပ်ခေါ်ရန်"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"အသံပိတ်ရန်"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"ဖုန်းချရန်"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"ခလုတ်ခုံ"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"စပီကာ"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"၊ ပွင့်နေသည်"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"၊ ပိတ်နေသည်"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"ပေါင်းရန်"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"စီမံရန်"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ခေါ်ဆိုသူများကို စီမံခန့်ခွဲရန်"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"ဖလှယ်ရန်"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"အသံ"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"မှတ်စုပို့ပြီးပါပြီ"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-nb/strings.xml b/java/com/android/incallui/incall/impl/res/values-nb/strings.xml
index 704384e..7520086 100644
--- a/java/com/android/incallui/incall/impl/res/values-nb/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-nb/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videosamtale"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Sett på vent"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Nytt anrop"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Ignorer"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Avslutt samtalen"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatur"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Høyttaler"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"er på"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"er av"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Slå sammen"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Administrer"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Håndter innringere"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Bytt"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Lyd"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Notatet er sendt"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ne/strings.xml b/java/com/android/incallui/incall/impl/res/values-ne/strings.xml
index beffa3e..6bcfb6d 100644
--- a/java/com/android/incallui/incall/impl/res/values-ne/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ne/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"भिडियो कल"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"होल्ड गर्ने"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"कल थप्नुहोस्"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"म्यूट गर्ने"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"कल अन्त्य गर्ने"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"किप्याड"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"स्पिकर"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", खुला छ"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", बन्द छ"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"मर्ज गर्ने"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"प्रबन्ध गर्ने"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"कल गर्ने व्यक्तिहरूलाई व्यवस्थित गर्नुहोस्"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"साट्नुहोस्"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"आवाज"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"टिपोट पठाइयो"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-nl/strings.xml b/java/com/android/incallui/incall/impl/res/values-nl/strings.xml
index e3c919e..63f1ebd 100644
--- a/java/com/android/incallui/incall/impl/res/values-nl/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-nl/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videogespr."</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"In wacht"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Oproep toev."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Dempen"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Oproep beëindigen"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Toetsenblok"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Luidspreker"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is aan"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is uit"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Samenvoegen"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Beheren"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Bellers beheren"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Wisselen"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Geluid"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Notitie verzonden"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-no/strings.xml b/java/com/android/incallui/incall/impl/res/values-no/strings.xml
index 704384e..7520086 100644
--- a/java/com/android/incallui/incall/impl/res/values-no/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-no/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videosamtale"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Sett på vent"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Nytt anrop"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Ignorer"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Avslutt samtalen"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatur"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Høyttaler"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"er på"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"er av"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Slå sammen"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Administrer"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Håndter innringere"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Bytt"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Lyd"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Notatet er sendt"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-pa/strings.xml b/java/com/android/incallui/incall/impl/res/values-pa/strings.xml
index d7e74ed..10a2865 100644
--- a/java/com/android/incallui/incall/impl/res/values-pa/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-pa/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"ਵੀਡੀਓ ਕਾਲ"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"ਰੋਕ ਕੇ ਰੱਖੋ"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"ਕਾਲ ਸ਼ਾਮਲ ਕਰੋ"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"ਮਿਊਟ ਕਰੋ"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"ਕਾਲ ਖਤਮ ਕਰੋ"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"ਕੀਪੈਡ"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"ਸਪੀਕਰ"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ਚਾਲੂ ਹੈ"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ਬੰਦ ਹੈ"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"ਰਲਗੱਡ ਕਰੋ"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ਕਾਲਰਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"ਅਦਲੋ-ਬਦਲੋ"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"ਧੁਨੀ"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"ਨੋਟ-ਕਥਨ ਭੇਜਿਆ ਗਿਆ"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-pl/strings.xml b/java/com/android/incallui/incall/impl/res/values-pl/strings.xml
index 9971d75..4bf6a58 100644
--- a/java/com/android/incallui/incall/impl/res/values-pl/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-pl/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Rozmowa wid."</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Wstrzymaj"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj poł."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Wycisz"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Zakończ"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Klawiatura"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Głośnik"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"– włączony"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"– wyłączony"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Scal"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Zarządzaj"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Zarządzaj rozmówcami"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Przełącz"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Dźwięk"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Notatka wysłana"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml b/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml
index 538c20c..7ca6b6b 100644
--- a/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videocham."</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Em espera"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Adic chamada"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Desativar"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Encerrar"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Alto-falante"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"ativado"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"desativado"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Mesclar"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Gerenciar"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gerenciar os autores das chamadas"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Trocar"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Som"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Nota enviada"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml b/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml
index 376ee84..750e57e 100644
--- a/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videochamada"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Em espera"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Adic. cham."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Desativ. som"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Term. cham."</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Altifalante"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ativado"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desativado"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Unir"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Gerir"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gerir autores das chamadas"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Alternar"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Som"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Nota enviada"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-pt/strings.xml b/java/com/android/incallui/incall/impl/res/values-pt/strings.xml
index 538c20c..7ca6b6b 100644
--- a/java/com/android/incallui/incall/impl/res/values-pt/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-pt/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videocham."</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Em espera"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Adic chamada"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Desativar"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Encerrar"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Alto-falante"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"ativado"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"desativado"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Mesclar"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Gerenciar"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gerenciar os autores das chamadas"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Trocar"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Som"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Nota enviada"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ro/strings.xml b/java/com/android/incallui/incall/impl/res/values-ro/strings.xml
index 81dcdf3..1f93da9 100644
--- a/java/com/android/incallui/incall/impl/res/values-ro/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ro/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Apel video"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"În așteptare"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Încă un apel"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Dezactivați"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Încheiați"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatură"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Difuzor"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", e activat"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", dezactivat"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Îmbinați"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Gestionați"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gestionați apelanții"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Schimbați"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Sunet"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Nota a fost trimisă"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ru/strings.xml b/java/com/android/incallui/incall/impl/res/values-ru/strings.xml
index 274f8ff..89192c3 100644
--- a/java/com/android/incallui/incall/impl/res/values-ru/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ru/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Видеовызов"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Удерживать"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Добавить вызов"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Выкл. звук"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Завершить вызов"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Клавиатура"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Динамик"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", включен"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", отключен"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Объединить"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Управление"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Управление абонентами"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Переключить"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Сообщение отправлено"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-si/strings.xml b/java/com/android/incallui/incall/impl/res/values-si/strings.xml
index a600c21..209bb77 100644
--- a/java/com/android/incallui/incall/impl/res/values-si/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-si/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"වීඩියෝ ඇමතුම"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"රඳවා ගන්න"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"ඇමතුම එක් ක."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"නිහඬ කරන්න"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"ඇමතුම නිම ක."</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"යතුරු පුවරුව"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"ස්පීකරය"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", සක්‍රියයි"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", අක්‍රියයි"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"ඒකාබද්ධ කර."</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"කළමනාකරණය ක."</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"අමතන්නන් කළමනාකරණය කරන්න"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"මාරු කරන්න"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"හඬ"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"සටහන යවන ලදී"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-sk/strings.xml b/java/com/android/incallui/incall/impl/res/values-sk/strings.xml
index d74d19e..4e06aee 100644
--- a/java/com/android/incallui/incall/impl/res/values-sk/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-sk/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videohovor"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Podržať"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Pridať hovor"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Vypnúť zvuk"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Ukonč. hovor"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Klávesnica"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Reproduktor"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", je zapnutý"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", je vypnutý"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Zlúčiť"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Spravovať"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Spravovať volajúcich"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Zameniť"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Poznámka bola odoslaná"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-sl/strings.xml b/java/com/android/incallui/incall/impl/res/values-sl/strings.xml
index 782ce44..7cdb6c8 100644
--- a/java/com/android/incallui/incall/impl/res/values-sl/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-sl/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videoklic"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Zadrži"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj klic"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Izklopi zvok"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Končaj klic"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Tipkovnica"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Zvočnik"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", vklopljen"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", izklopljen"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Združi"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Upravljanje"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Upravljanje klicateljev"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Zamenjaj"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Zvok"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Opomba je poslana"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-sq/strings.xml b/java/com/android/incallui/incall/impl/res/values-sq/strings.xml
index a0fca36..9ba18b5 100644
--- a/java/com/android/incallui/incall/impl/res/values-sq/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-sq/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video tel."</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Në pritje"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Shto telef."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Hiqi zërin"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Mbyll tel."</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Blloku i tasteve"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Altoparlant"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", është aktiv"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", është joaktiv"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Shkri"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Menaxho"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Menaxho telefonuesit"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Shkëmbe"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Tingulli"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Shënimi u dërgua"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-sr/strings.xml b/java/com/android/incallui/incall/impl/res/values-sr/strings.xml
index ec70451..56a9684 100644
--- a/java/com/android/incallui/incall/impl/res/values-sr/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-sr/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Видео позив"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"На чекање"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Додај позив"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Искључи звук"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Заврши позив"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Тастатура"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Звучник"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", укључен"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", искључен"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Обједини"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Управљај"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Управљајте позиваоцима"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Замени"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Белешка је послата"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-sv/strings.xml b/java/com/android/incallui/incall/impl/res/values-sv/strings.xml
index ded4522..27d83b7 100644
--- a/java/com/android/incallui/incall/impl/res/values-sv/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-sv/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videosamtal"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Parkera"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Lägg t samt."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Ljud av"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Avsl. samtal"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Knappsats"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Högtalare"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", är på"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", är av"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Sammanfoga"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Hantera"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Hantera uppringare"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Växla"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Ljud"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Anteckning skickad"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-sw/strings.xml b/java/com/android/incallui/incall/impl/res/values-sw/strings.xml
index df634f4..136fe17 100644
--- a/java/com/android/incallui/incall/impl/res/values-sw/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-sw/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Hangout ya video"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Shikilia"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Ongeza simu"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Zima maikrofoni"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Kata simu"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Vitufe vya Simu"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Spika"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", kimewashwa"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", kimezimwa"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Unganisha"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Dhibiti"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Dhibiti wanaopiga simu"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Badili"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Sauti"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Dokezo limetumwa"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ta/strings.xml b/java/com/android/incallui/incall/impl/res/values-ta/strings.xml
index 5c94abf..342f8d0 100644
--- a/java/com/android/incallui/incall/impl/res/values-ta/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ta/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"வீடியோ கால்"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"ஹோல்டில் வை"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"அழைப்பை சேர்"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"முடக்கு"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"அழைப்பை முடி"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"விசைத்தளம்"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"ஸ்பீக்கர்"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ஆன்"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ஆஃப்"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"இணை"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"நிர்வகி"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"அழைப்பாளர்களை நிர்வகிக்கும்"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"மாற்று"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"ஒலி"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"குறிப்பு அனுப்பப்பட்டது"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-te/strings.xml b/java/com/android/incallui/incall/impl/res/values-te/strings.xml
index 0cb3fb8..0048956 100644
--- a/java/com/android/incallui/incall/impl/res/values-te/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-te/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"వీడియో కాల్"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"హోల్డ్ చేయి"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"కాల్ జోడించు"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"మ్యూట్ చేయి"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"కాల్ ముగించు"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"కీప్యాడ్"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"స్పీకర్"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ఆన్‌లో ఉంది"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ఆఫ్‌లో ఉంది"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"విలీనం చేయి"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"నిర్వహించు"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"కాలర్‌లను నిర్వహిస్తుంది"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"మార్చు"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"శబ్దం"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"గమనిక పంపబడింది"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-th/strings.xml b/java/com/android/incallui/incall/impl/res/values-th/strings.xml
index 0929cfc..a740288 100644
--- a/java/com/android/incallui/incall/impl/res/values-th/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-th/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"แฮงเอาท์วิดีโอ"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"พักสาย"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"เพิ่มการโทร"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"ปิดเสียง"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"วางสาย"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"ปุ่มกด"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"ลำโพง"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"เปิดอยู่"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"ปิดอยู่"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"รวม"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"จัดการ"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"จัดการผู้โทร"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"สลับ"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"เสียง"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"ส่งโน้ตแล้ว"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-tl/strings.xml b/java/com/android/incallui/incall/impl/res/values-tl/strings.xml
index 1ac2ef8..46ff797 100644
--- a/java/com/android/incallui/incall/impl/res/values-tl/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-tl/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"I-hold"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Mag-add: tawag"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"I-mute"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Tapusin ang tawag"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">",ay On"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ay Off"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"I-merge"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Pamahalaan"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Pamahalaan ang mga tumatawag"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Pagpalitin"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Tunog"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Naipadala ang tala"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-tr/strings.xml b/java/com/android/incallui/incall/impl/res/values-tr/strings.xml
index 241b694..89ca330 100644
--- a/java/com/android/incallui/incall/impl/res/values-tr/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-tr/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Görü. görüş."</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Beklemeye al"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Çağrı ekle"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Sesi kapat"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Çğryı sonldr"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Tuş takımı"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Hoparlör"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", Açık"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", Kapalı"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Birleştir"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Yönet"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Arayanları yönetin"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Değiştir"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Ses"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Not gönderildi"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-uk/strings.xml b/java/com/android/incallui/incall/impl/res/values-uk/strings.xml
index 1821556..516bcb7 100644
--- a/java/com/android/incallui/incall/impl/res/values-uk/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-uk/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Відеодзвінок"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Утримувати"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Дод. виклик"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Без звуку"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Завер. викл."</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Клавіатура"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Динамік"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", увімкнено"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", вимкнено"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Об’єднати"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Керувати"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Керувати абонентами"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Поміняти"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Нотатку надіслано"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ur/strings.xml b/java/com/android/incallui/incall/impl/res/values-ur/strings.xml
index fed0af6..53ba190 100644
--- a/java/com/android/incallui/incall/impl/res/values-ur/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ur/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"ویڈیو کال"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"ہولڈ کریں"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"کال شامل کریں"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"خاموش کریں"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"کال ختم کریں"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"کی پیڈ"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"اسپیکر"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"، آن ہے"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"، آف ہے"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"ضم کریں"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"نظم کریں"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"کالرز کا نظم کریں"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"تبادلہ کریں"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"آواز"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"نوٹ بھیج دیا گیا"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-uz/strings.xml b/java/com/android/incallui/incall/impl/res/values-uz/strings.xml
index 7d6af27..8818489 100644
--- a/java/com/android/incallui/incall/impl/res/values-uz/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-uz/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video qo‘n."</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Pauza"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Chaqiruv"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Ovozsiz"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Tugatish"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Klaviatura"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Karnay"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", yoniq"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", o‘chiq"</string>
-    <string name="incall_label_merge" msgid="720076442985913175">"Birlashtirish"</string>
+    <string name="incall_label_merge" msgid="720076442985913175">"Birlashtir."</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Boshqarish"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Qo‘ng‘iroq qiluvchilarni boshqarish"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Almashish"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Ovoz"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Qayd yuborildi"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-vi/strings.xml b/java/com/android/incallui/incall/impl/res/values-vi/strings.xml
index 42e320a..29f85ef 100644
--- a/java/com/android/incallui/incall/impl/res/values-vi/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-vi/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Gọi điện video"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Giữ"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Thêm cuộc gọi"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Tắt tiếng"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Kết thúc cuộc gọi"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Bàn phím"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Loa"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", đang bật"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", đang tắt"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Hợp nhất"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Quản lý"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Quản lý người gọi"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Hoán đổi"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Âm thanh"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Đã gửi ghi chú"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml
new file mode 100644
index 0000000..e73eb93
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <dimen name="incall_button_horizontal_padding">16dp</dimen>
+  <dimen name="incall_button_vertical_padding">16dp</dimen>
+  <dimen name="incall_labeled_button_size">64dp</dimen>
+  <dimen name="tools_button_height">92dp</dimen>
+</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml
deleted file mode 100644
index 834ea2f..0000000
--- a/java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<resources>
-  <dimen name="incall_button_horizontal_padding">16dp</dimen>
-  <dimen name="incall_button_vertical_padding">16dp</dimen>
-  <dimen name="incall_labeled_button_size">64dp</dimen>
-  <dimen name="tools_button_height">92dp</dimen>
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml
new file mode 100644
index 0000000..502ae72
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <dimen name="incall_button_horizontal_padding">32dp</dimen>
+  <dimen name="incall_button_vertical_padding">32dp</dimen>
+</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml
deleted file mode 100644
index c7ac35e..0000000
--- a/java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<resources>
-  <dimen name="incall_button_horizontal_padding">32dp</dimen>
-  <dimen name="incall_button_vertical_padding">32dp</dimen>
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-zh-rCN/strings.xml b/java/com/android/incallui/incall/impl/res/values-zh-rCN/strings.xml
index f0cca90..ec64045 100644
--- a/java/com/android/incallui/incall/impl/res/values-zh-rCN/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-zh-rCN/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"视频通话"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"保持"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"添加通话"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"静音"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"结束通话"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"拨号键盘"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"免提"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"，已开启"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"，已关闭"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"合并"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"管理"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"管理来电者"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"切换"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"声音"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"已发送备注"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml b/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml
index c38ef35..63cd6d8 100644
--- a/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"視像通話"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"保留"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"新增通話"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"靜音"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"結束通話"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"小鍵盤"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"揚聲器"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"，已開啟"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"，已關閉"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"合併"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"管理"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"管理來電者"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"切換"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"音效"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"已傳送筆記"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml b/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml
index c04b830..be3103b 100644
--- a/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"視訊通話"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"保留"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"新增通話"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"靜音"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"結束通話"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"撥號鍵盤"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"擴音模式"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"，已開啟"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"，已關閉"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"合併"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"管理"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"管理來電者"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"切換"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"音訊"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"備註已送出"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-zu/strings.xml b/java/com/android/incallui/incall/impl/res/values-zu/strings.xml
index a23a1d5..df3f794 100644
--- a/java/com/android/incallui/incall/impl/res/values-zu/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-zu/strings.xml
@@ -1,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-   -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Ikholi yevidiyo ye-Hangout"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Bamba"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Engeza ikholi"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Thulisa"</string>
-    <string name="incall_label_end_call" msgid="5434079261446614887">"Qeda ikholi"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Ikhiphedi"</string>
+    <string name="incall_label_speaker" msgid="8100402799687856933">"Isipikha"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ivuliwe"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ivaliwe"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Hlanganisa"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Phatha"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Phatha abashayi"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Shintsha"</string>
+    <string name="incall_label_audio" msgid="8616473242030174797">"Umsindo"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Inothi lithunyelwe"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values/strings.xml b/java/com/android/incallui/incall/impl/res/values/strings.xml
index 2b30dfa..054ca96 100644
--- a/java/com/android/incallui/incall/impl/res/values/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values/strings.xml
@@ -1,19 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
 <resources>
 
   <!-- Button shown during a phone call to upgrade to video.
@@ -32,14 +17,14 @@
      [CHAR LIMIT=12] -->
   <string name="incall_label_mute">Mute</string>
 
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <string name="incall_label_end_call">End call</string>
-
   <!-- Button shown during a phone call to show the dialpad.
      [CHAR LIMIT=12] -->
   <string name="incall_label_dialpad">Keypad</string>
 
+  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
+     [CHAR LIMIT=12] -->
+  <string name="incall_label_speaker">Speaker</string>
+
   <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
   <string name="incall_talkback_speaker_on">, is on</string>
 
@@ -60,9 +45,12 @@
      [CHAR LIMIT=12] -->
   <string name="incall_label_swap">Swap</string>
 
+  <!-- Button shown during a phone to switch the audio route.
+     [CHAR LIMIT=12] -->
+  <string name="incall_label_audio">Sound</string>
 
   <!-- Used to inform the user that the note associated with an outgoing call has been sent.
        [CHAR LIMIT=32] -->
   <string name="incall_note_sent">Note sent</string>
 
-</resources>
+</resources>
\ No newline at end of file
diff --git a/java/com/android/incallui/incall/protocol/PrimaryCallState.java b/java/com/android/incallui/incall/protocol/PrimaryCallState.java
index 26dd388..2ae6a18 100644
--- a/java/com/android/incallui/incall/protocol/PrimaryCallState.java
+++ b/java/com/android/incallui/incall/protocol/PrimaryCallState.java
@@ -44,7 +44,6 @@
   public final boolean isVoiceMailNumber;
   public final boolean isRemotelyHeld;
   public final boolean isBusinessNumber;
-  public final boolean supportsCallOnHold;
 
   // TODO: Convert to autovalue. b/34502119
   public static PrimaryCallState createEmptyPrimaryCallState() {
@@ -68,8 +67,7 @@
         0,
         false /* isVoiceMailNumber */,
         false /* isRemotelyHeld */,
-        false /* isBusinessNumber */,
-        true /* supportsCallOnHold */);
+        false /* isBusinessNumber */);
   }
 
   public PrimaryCallState(
@@ -92,8 +90,7 @@
       long connectTimeMillis,
       boolean isVoiceMailNumber,
       boolean isRemotelyHeld,
-      boolean isBusinessNumber,
-      boolean supportsCallOnHold) {
+      boolean isBusinessNumber) {
     this.state = state;
     this.isVideoCall = isVideoCall;
     this.sessionModificationState = sessionModificationState;
@@ -114,7 +111,6 @@
     this.isVoiceMailNumber = isVoiceMailNumber;
     this.isRemotelyHeld = isRemotelyHeld;
     this.isBusinessNumber = isBusinessNumber;
-    this.supportsCallOnHold = supportsCallOnHold;
   }
 
   @Override
diff --git a/java/com/android/incallui/res/drawable-hdpi/img_conference.png b/java/com/android/incallui/res/drawable-hdpi/img_conference.png
new file mode 100644
index 0000000..3d9f683
--- /dev/null
+++ b/java/com/android/incallui/res/drawable-hdpi/img_conference.png
Binary files differ
diff --git a/java/com/android/incallui/res/drawable-mdpi/img_conference.png b/java/com/android/incallui/res/drawable-mdpi/img_conference.png
new file mode 100644
index 0000000..0694dbd
--- /dev/null
+++ b/java/com/android/incallui/res/drawable-mdpi/img_conference.png
Binary files differ
diff --git a/java/com/android/incallui/res/drawable-xhdpi/img_conference.png b/java/com/android/incallui/res/drawable-xhdpi/img_conference.png
new file mode 100644
index 0000000..b0dbcc2
--- /dev/null
+++ b/java/com/android/incallui/res/drawable-xhdpi/img_conference.png
Binary files differ
diff --git a/java/com/android/incallui/res/drawable-xxhdpi/img_conference.png b/java/com/android/incallui/res/drawable-xxhdpi/img_conference.png
new file mode 100644
index 0000000..a8dba5e
--- /dev/null
+++ b/java/com/android/incallui/res/drawable-xxhdpi/img_conference.png
Binary files differ
diff --git a/java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png b/java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png
new file mode 100644
index 0000000..eb42b55
--- /dev/null
+++ b/java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png
Binary files differ
diff --git a/java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml b/java/com/android/incallui/res/drawable/img_conference_automirrored.xml
similarity index 75%
rename from java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml
rename to java/com/android/incallui/res/drawable/img_conference_automirrored.xml
index 904aed2..78b2876 100644
--- a/java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml
+++ b/java/com/android/incallui/res/drawable/img_conference_automirrored.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
+
 <!--
-  ~ Copyright (C) 2016 The Android Open Source Project
+  ~ Copyright (C) 2014 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -15,6 +16,6 @@
   ~ limitations under the License
   -->
 
-<resources>
-  <dimen name="incall_avatar_size">88dp</dimen>
-</resources>
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+  android:autoMirrored="true"
+  android:src="@drawable/img_conference"/>
\ No newline at end of file
diff --git a/java/com/android/incallui/res/values-ca/strings.xml b/java/com/android/incallui/res/values-ca/strings.xml
index ad34b00..5148db5 100644
--- a/java/com/android/incallui/res/values-ca/strings.xml
+++ b/java/com/android/incallui/res/values-ca/strings.xml
@@ -136,6 +136,6 @@
     <string name="generic_conference_call_name" msgid="1546941472424243894">"En una trucada"</string>
     <string name="video_call_wifi_to_lte_handover_toast" msgid="2495974172657183700">"S\'està continuant la trucada mitjançant dades mòbils…"</string>
     <string name="video_call_lte_to_wifi_failed_title" msgid="2793524281399509056">"No s\'ha pogut canviar a la xarxa Wi-Fi"</string>
-    <string name="video_call_lte_to_wifi_failed_message" msgid="5950700221126447109">"La videotrucada es mantindrà a la xarxa mòbil. És possible que s\'hi apliquin càrrecs de dades estàndard."</string>
+    <string name="video_call_lte_to_wifi_failed_message" msgid="5950700221126447109">"La videotrucada es mantindrà a la xarxa mòbil. És possible que s\'apliquin càrrecs de dades estàndard."</string>
     <string name="video_call_lte_to_wifi_failed_do_not_show" msgid="7609115874511223150">"No ho tornis a mostrar"</string>
 </resources>
diff --git a/java/com/android/incallui/res/values-mcc262-mnc01/strings.xml b/java/com/android/incallui/res/values-mcc262-mnc01/strings.xml
deleted file mode 100644
index 2679653..0000000
--- a/java/com/android/incallui/res/values-mcc262-mnc01/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<resources>
-  <!-- This is customization of wifi call notification only for DTAG of Germany. -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <string name="notification_ongoing_call_wifi">Ongoing WLAN Call</string>
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <string name="notification_ongoing_work_call_wifi">Ongoing WLAN work call</string>
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <string name="notification_incoming_call_wifi">Incoming WLAN Call</string>
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <string name="notification_incoming_work_call_wifi">Incoming WLAN work call</string>
-</resources>
\ No newline at end of file
diff --git a/java/com/android/incallui/res/values-uz/strings.xml b/java/com/android/incallui/res/values-uz/strings.xml
index b04972f..3828501 100644
--- a/java/com/android/incallui/res/values-uz/strings.xml
+++ b/java/com/android/incallui/res/values-uz/strings.xml
@@ -36,7 +36,7 @@
     <string name="notification_ongoing_call_wifi" msgid="297183051021070949">"Chiquvchi Wi-Fi qo‘ng‘irog‘i"</string>
     <string name="notification_ongoing_work_call_wifi" msgid="6769311641293583197">"Chiquvchi Wi-Fi ishchi qo‘ng‘irog‘i"</string>
     <string name="notification_on_hold" msgid="7141827443379205682">"Kutmoqda"</string>
-    <string name="notification_incoming_call" msgid="7520580807513849283">"Kiruvchi chaqiruv"</string>
+    <string name="notification_incoming_call" msgid="7520580807513849283">"Kiruvchi qo‘ng‘iroq"</string>
     <string name="notification_incoming_call_with_photo" msgid="4360505044807517422">"Suratga ega kiruvchi chaqiruv"</string>
     <string name="notification_incoming_call_with_message" msgid="5608687985694956601">"Xabarga ega kiruvchi chaqiruv"</string>
     <string name="notification_incoming_call_with_location" msgid="4519498445081598767">"Joylashuv axborotiga ega kiruvchi chaqiruv"</string>
diff --git a/java/com/android/incallui/res/values/dimens.xml b/java/com/android/incallui/res/values/dimens.xml
index fb4934d..18816f6 100644
--- a/java/com/android/incallui/res/values/dimens.xml
+++ b/java/com/android/incallui/res/values/dimens.xml
@@ -38,7 +38,7 @@
   <dimen name="incall_dialpad_zero_key_number_margin_bottom">0dp</dimen>
   <dimen name="incall_dialpad_digits_adjustable_text_size">20sp</dimen>
   <dimen name="incall_dialpad_digits_adjustable_height">50dp</dimen>
-  <dimen name="incall_dialpad_key_numbers_size">36dp</dimen>
+  <dimen name="incall_dialpad_key_numbers_size">36sp</dimen>
 
   <!-- Dimensions for OTA Call Card -->
   <dimen name="otaactivate_layout_marginTop">10dp</dimen>
diff --git a/java/com/android/incallui/res/values/styles.xml b/java/com/android/incallui/res/values/styles.xml
index 3c036c9..68a38f0 100644
--- a/java/com/android/incallui/res/values/styles.xml
+++ b/java/com/android/incallui/res/values/styles.xml
@@ -78,13 +78,4 @@
     <item name="android:colorAccent">@color/dialer_theme_color</item>
   </style>
 
-  <style name="Theme.Incall.DialogHolder" parent="Theme.AppCompat.Translucent">
-    <item name="android:windowBackground">@android:color/transparent</item>
-    <item name="android:windowActivityTransitions">false</item>
-
-    <item name="android:statusBarColor">@android:color/transparent</item>
-    <item name="android:navigationBarColor">@android:color/transparent</item>
-    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
-  </style>
-
 </resources>
diff --git a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml
index 3b3327d..ed29e78 100644
--- a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml
+++ b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml
@@ -24,8 +24,8 @@
 
   <ImageView
       android:id="@id/answer_message_image"
-      android:layout_width="wrap_content"
-      android:layout_height="match_parent"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
       android:layout_marginTop="@dimen/answer_message_contents_margin_top"
       android:layout_marginBottom="4dp"
       android:layout_centerInParent="true"
@@ -34,7 +34,7 @@
       android:background="@drawable/answer_data_background"
       android:elevation="@dimen/answer_data_elevation"
       android:adjustViewBounds="true"
-      android:scaleType="centerCrop"/>
+      android:scaleType="fitCenter"/>
 
   <ProgressBar
       android:layout_width="wrap_content"
diff --git a/java/com/android/incallui/speakerbuttonlogic/AndroidManifest.xml b/java/com/android/incallui/speakerbuttonlogic/AndroidManifest.xml
deleted file mode 100644
index 9557d03..0000000
--- a/java/com/android/incallui/speakerbuttonlogic/AndroidManifest.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<manifest
-    package="com.android.incallui.speakerbuttonlogic">
-</manifest>
diff --git a/java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java b/java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java
deleted file mode 100644
index 5ab821b..0000000
--- a/java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.incallui.speakerbuttonlogic;
-
-import android.support.annotation.DrawableRes;
-import android.support.annotation.IntDef;
-import android.support.annotation.StringRes;
-import android.telecom.CallAudioState;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/** Info about how a "Speaker" button should be displayed */
-public class SpeakerButtonInfo {
-
-  // Testing note: most of this is exercised in ReturnToCallTest.java
-
-  /** Preferred size for icons */
-  @Retention(RetentionPolicy.SOURCE)
-  @IntDef({IconSize.SIZE_24_DP, IconSize.SIZE_36_DP})
-  public @interface IconSize {
-    int SIZE_24_DP = 1;
-    int SIZE_36_DP = 2;
-  }
-
-  @DrawableRes public final int icon;
-  @StringRes public final int contentDescription;
-  @StringRes public final int label;
-  public final boolean checkable;
-  public final boolean isChecked;
-
-  public SpeakerButtonInfo(CallAudioState audioState, @IconSize int iconSize) {
-    if ((audioState.getSupportedRouteMask() & CallAudioState.ROUTE_BLUETOOTH)
-        == CallAudioState.ROUTE_BLUETOOTH) {
-      checkable = false;
-      isChecked = false;
-      label = R.string.incall_label_audio;
-
-      if ((audioState.getRoute() & CallAudioState.ROUTE_BLUETOOTH)
-          == CallAudioState.ROUTE_BLUETOOTH) {
-        icon =
-            iconSize == IconSize.SIZE_36_DP
-                ? R.drawable.quantum_ic_bluetooth_audio_white_36
-                : R.drawable.quantum_ic_bluetooth_audio_white_24;
-        contentDescription = R.string.incall_content_description_bluetooth;
-      } else if ((audioState.getRoute() & CallAudioState.ROUTE_SPEAKER)
-          == CallAudioState.ROUTE_SPEAKER) {
-        icon =
-            iconSize == IconSize.SIZE_36_DP
-                ? R.drawable.quantum_ic_volume_up_white_36
-                : R.drawable.quantum_ic_volume_up_white_24;
-        contentDescription = R.string.incall_content_description_speaker;
-      } else if ((audioState.getRoute() & CallAudioState.ROUTE_WIRED_HEADSET)
-          == CallAudioState.ROUTE_WIRED_HEADSET) {
-        icon =
-            iconSize == IconSize.SIZE_36_DP
-                ? R.drawable.quantum_ic_headset_white_36
-                : R.drawable.quantum_ic_headset_white_24;
-        contentDescription = R.string.incall_content_description_headset;
-      } else {
-        icon =
-            iconSize == IconSize.SIZE_36_DP
-                ? R.drawable.quantum_ic_phone_in_talk_white_36
-                : R.drawable.quantum_ic_phone_in_talk_white_24;
-        contentDescription = R.string.incall_content_description_earpiece;
-      }
-    } else {
-      checkable = true;
-      isChecked = audioState.getRoute() == CallAudioState.ROUTE_SPEAKER;
-      label = R.string.incall_label_speaker;
-      icon =
-          iconSize == IconSize.SIZE_36_DP
-              ? R.drawable.quantum_ic_volume_up_white_36
-              : R.drawable.quantum_ic_volume_up_white_24;
-      contentDescription = R.string.incall_content_description_speaker;
-    }
-  }
-}
diff --git a/java/com/android/incallui/video/impl/SpeakerButtonController.java b/java/com/android/incallui/video/impl/SpeakerButtonController.java
index d98545f..e12032a 100644
--- a/java/com/android/incallui/video/impl/SpeakerButtonController.java
+++ b/java/com/android/incallui/video/impl/SpeakerButtonController.java
@@ -88,7 +88,7 @@
         icon = R.drawable.quantum_ic_headset_white_36;
         contentDescriptionResId = R.string.incall_content_description_headset;
       } else {
-        icon = R.drawable.quantum_ic_phone_in_talk_white_36;
+        icon = R.drawable.ic_phone_audio_white_36dp;
         contentDescriptionResId = R.string.incall_content_description_earpiece;
       }
     } else {
diff --git a/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java b/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java
index 489f72b..b7a960e 100644
--- a/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java
+++ b/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java
@@ -495,7 +495,7 @@
   }
 
   private View[] getAllPreviewRelatedViews() {
-    return new View[] {previewRoot, mutePreviewOverlay};
+    return new View[] {previewRoot};
   }
 
   private int getOffsetTop(View view) {
@@ -644,6 +644,12 @@
     updateVideoOffViews();
   }
 
+  /**
+   * This method scales the video feed inside the texture view, it doesn't change the texture view's
+   * size. In the old UI we would change the view size to match the aspect ratio of the video. In
+   * the new UI the view is always square (with the circular clip) so we have to do additional work
+   * to make sure the non-square video doesn't look squished.
+   */
   @Override
   public void onLocalVideoDimensionsChanged() {
     LogUtil.i("SurfaceViewVideoCallFragment.onLocalVideoDimensionsChanged", null);
@@ -828,9 +834,6 @@
   }
 
   @Override
-  public void onAudioRouteSelectorDismiss() {}
-
-  @Override
   public void setPrimary(@NonNull PrimaryInfo primaryInfo) {
     LogUtil.i("SurfaceViewVideoCallFragment.setPrimary", primaryInfo.toString());
     contactGridManager.setPrimary(primaryInfo);
diff --git a/java/com/android/incallui/video/impl/VideoCallFragment.java b/java/com/android/incallui/video/impl/VideoCallFragment.java
index 6e45f92..8e2f5ae 100644
--- a/java/com/android/incallui/video/impl/VideoCallFragment.java
+++ b/java/com/android/incallui/video/impl/VideoCallFragment.java
@@ -59,7 +59,6 @@
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.FragmentUtils;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.common.concurrent.ThreadUtil;
 import com.android.dialer.compat.ActivityCompat;
 import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment;
 import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment.AudioRouteSelectorPresenter;
@@ -666,14 +665,22 @@
     updateRemoteVideoScaling();
   }
 
+  /**
+   * This method scales the video feed inside the texture view, it doesn't change the texture view's
+   * size. In the old UI we would change the view size to match the aspect ratio of the video. In
+   * the new UI the view is always square (with the circular clip) so we have to do additional work
+   * to make sure the non-square video doesn't look squished.
+   */
   @Override
   public void onLocalVideoDimensionsChanged() {
     LogUtil.i("VideoCallFragment.onLocalVideoDimensionsChanged", null);
+    updatePreviewVideoScaling();
   }
 
   @Override
   public void onLocalVideoOrientationChanged() {
     LogUtil.i("VideoCallFragment.onLocalVideoOrientationChanged", null);
+    updatePreviewVideoScaling();
   }
 
   /** Called when the remote video's dimensions change. */
@@ -846,9 +853,6 @@
   }
 
   @Override
-  public void onAudioRouteSelectorDismiss() {}
-
-  @Override
   public void setPrimary(@NonNull PrimaryInfo primaryInfo) {
     LogUtil.i("VideoCallFragment.setPrimary", primaryInfo.toString());
     contactGridManager.setPrimary(primaryInfo);
@@ -1041,6 +1045,7 @@
     params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
     previewTextureView.setLayoutParams(params);
     previewTextureView.setOutlineProvider(circleOutlineProvider);
+    updatePreviewVideoScaling();
     updateOverlayBackground();
     contactGridManager.setIsMiddleRowVisible(false);
     updateMutePreviewOverlayVisibility();
@@ -1048,9 +1053,6 @@
     previewOffBlurredImageView.setLayoutParams(params);
     previewOffBlurredImageView.setOutlineProvider(circleOutlineProvider);
     previewOffBlurredImageView.setClipToOutline(true);
-
-    // Wait until the layout pass has finished before updating the scaling
-    ThreadUtil.postOnUiThread(this::updatePreviewVideoScaling);
   }
 
   private void updateVideoOffViews() {
diff --git a/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml b/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml
index 1a2bc24..c672466 100644
--- a/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml
+++ b/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml
@@ -14,7 +14,7 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License
   -->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
@@ -32,7 +32,7 @@
     android:id="@+id/videocall_remote_video_off"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
-    android:layout_centerInParent="true"
+    android:layout_gravity="center"
     android:accessibilityTraversalBefore="@+id/videocall_speaker_button"
     android:drawablePadding="8dp"
     android:drawableTop="@drawable/quantum_ic_videocam_off_white_36"
@@ -71,22 +71,19 @@
       android:visibility="gone"
       android:importantForAccessibility="no"
       tools:visibility="visible"/>
-  </FrameLayout>
 
-  <ImageView
-    android:id="@+id/videocall_video_preview_mute_overlay"
-    android:layout_width="32dp"
-    android:layout_height="32dp"
-    android:layout_alignBottom="@id/videocall_preview_root"
-    android:layout_alignEnd="@id/videocall_preview_root"
-    android:layout_marginBottom="-8dp"
-    android:layout_marginEnd="-8dp"
-    android:background="@drawable/videocall_background_circle_white"
-    android:contentDescription="@string/incall_content_description_muted"
-    android:scaleType="center"
-    android:src="@drawable/quantum_ic_mic_off_black_24"
-    android:visibility="gone"
-    tools:visibility="visible"/>
+    <ImageView
+      android:id="@+id/videocall_video_preview_mute_overlay"
+      android:layout_width="32dp"
+      android:layout_height="32dp"
+      android:layout_gravity="center"
+      android:background="@drawable/videocall_background_circle_white"
+      android:contentDescription="@string/incall_content_description_muted"
+      android:scaleType="center"
+      android:src="@drawable/quantum_ic_mic_off_black_24"
+      android:visibility="gone"
+      tools:visibility="visible"/>
+  </FrameLayout>
 
   <View
     android:id="@+id/videocall_green_screen_background"
@@ -105,4 +102,4 @@
     android:layout_height="wrap_content"
     android:layout_gravity="top"/>
 
-</RelativeLayout>
+</FrameLayout>
diff --git a/java/com/android/incallui/video/impl/res/values-h580dp/dimens.xml b/java/com/android/incallui/video/impl/res/values-h580dp/dimens.xml
index e9e7f9e..a53fb64 100644
--- a/java/com/android/incallui/video/impl/res/values-h580dp/dimens.xml
+++ b/java/com/android/incallui/video/impl/res/values-h580dp/dimens.xml
@@ -19,5 +19,5 @@
   <dimen name="videocall_button_size">72dp</dimen>
   <dimen name="videocall_preview_width">88dp</dimen>
   <dimen name="videocall_preview_height">88dp</dimen>
-  <dimen name="videocall_preview_long">116dp</dimen>
+  <dimen name="videocall_preview_long">104dp</dimen>
 </resources>
diff --git a/java/com/android/incallui/video/impl/res/values-land/dimens.xml b/java/com/android/incallui/video/impl/res/values-land/dimens.xml
index d0a5e40..6485735 100644
--- a/java/com/android/incallui/video/impl/res/values-land/dimens.xml
+++ b/java/com/android/incallui/video/impl/res/values-land/dimens.xml
@@ -15,5 +15,5 @@
   ~ limitations under the License
   -->
 <resources>
-  <dimen name="videocall_preview_long">96dp</dimen>
+  <dimen name="videocall_preview_long">92dp</dimen>
 </resources>
diff --git a/java/com/android/incallui/video/impl/res/values-land/styles.xml b/java/com/android/incallui/video/impl/res/values-land/styles.xml
index f60dbd1..a809708 100644
--- a/java/com/android/incallui/video/impl/res/values-land/styles.xml
+++ b/java/com/android/incallui/video/impl/res/values-land/styles.xml
@@ -16,8 +16,7 @@
   -->
 <resources>
   <style name="VideoPreviewHolder">
-    <item name="android:layout_alignParentBottom">true</item>
-    <item name="android:layout_alignParentEnd">true</item>
+    <item name="android:layout_gravity">bottom|end</item>
     <item name="android:layout_width">@dimen/videocall_preview_long</item>
     <item name="android:layout_height">@dimen/videocall_preview_height</item>
     <item name="android:layout_marginBottom">@dimen/videocall_preview_margin_bottom</item>
diff --git a/java/com/android/incallui/video/impl/res/values-w460dp/dimens.xml b/java/com/android/incallui/video/impl/res/values-w460dp/dimens.xml
index e9e7f9e..a53fb64 100644
--- a/java/com/android/incallui/video/impl/res/values-w460dp/dimens.xml
+++ b/java/com/android/incallui/video/impl/res/values-w460dp/dimens.xml
@@ -19,5 +19,5 @@
   <dimen name="videocall_button_size">72dp</dimen>
   <dimen name="videocall_preview_width">88dp</dimen>
   <dimen name="videocall_preview_height">88dp</dimen>
-  <dimen name="videocall_preview_long">116dp</dimen>
+  <dimen name="videocall_preview_long">104dp</dimen>
 </resources>
diff --git a/java/com/android/incallui/video/impl/res/values/dimens.xml b/java/com/android/incallui/video/impl/res/values/dimens.xml
index 606b158..aa08c9d 100644
--- a/java/com/android/incallui/video/impl/res/values/dimens.xml
+++ b/java/com/android/incallui/video/impl/res/values/dimens.xml
@@ -17,7 +17,7 @@
 <resources>
   <dimen name="videocall_preview_width">72dp</dimen>
   <dimen name="videocall_preview_height">72dp</dimen>
-  <dimen name="videocall_preview_long">96dp</dimen>
+  <dimen name="videocall_preview_long">84dp</dimen>
   <dimen name="videocall_preview_margin_bottom">24dp</dimen>
   <dimen name="videocall_preview_margin_start">24dp</dimen>
   <dimen name="videocall_preview_margin_end">24dp</dimen>
diff --git a/java/com/android/incallui/video/impl/res/values/styles.xml b/java/com/android/incallui/video/impl/res/values/styles.xml
index 010aca2..f73075f 100644
--- a/java/com/android/incallui/video/impl/res/values/styles.xml
+++ b/java/com/android/incallui/video/impl/res/values/styles.xml
@@ -23,8 +23,7 @@
     <item name="android:stateListAnimator">@animator/disabled_alpha</item>
   </style>
   <style name="VideoPreviewHolder">
-    <item name="android:layout_alignParentBottom">true</item>
-    <item name="android:layout_alignParentStart">true</item>
+    <item name="android:layout_gravity">bottom|start</item>
     <item name="android:layout_width">@dimen/videocall_preview_width</item>
     <item name="android:layout_height">@dimen/videocall_preview_long</item>
     <item name="android:layout_marginBottom">@dimen/videocall_preview_margin_bottom</item>
diff --git a/java/com/android/incallui/videotech/ims/ImsVideoTech.java b/java/com/android/incallui/videotech/ims/ImsVideoTech.java
index 2a0b7c5..01e4bb8 100644
--- a/java/com/android/incallui/videotech/ims/ImsVideoTech.java
+++ b/java/com/android/incallui/videotech/ims/ImsVideoTech.java
@@ -183,6 +183,8 @@
   public void stopTransmission() {
     LogUtil.enterBlock("ImsVideoTech.stopTransmission");
 
+    setCamera(null);
+
     int unpausedVideoState = getUnpausedVideoState(call.getDetails().getVideoState());
     call.getVideoCall()
         .sendSessionModifyRequest(
@@ -246,7 +248,7 @@
   private boolean canPause() {
     return call.getDetails().can(Details.CAPABILITY_CAN_PAUSE_VIDEO)
         && call.getState() == Call.STATE_ACTIVE
-        && isTransmittingOrReceiving();
+        && isTransmitting();
   }
 
   static int getUnpausedVideoState(int videoState) {
diff --git a/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java b/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java
index 386afdc..e49d0b8 100644
--- a/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java
+++ b/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java
@@ -20,7 +20,6 @@
 import android.support.annotation.NonNull;
 import android.telecom.Call;
 import com.android.dialer.common.Assert;
-import com.android.dialer.common.ConfigProviderBindings;
 import com.android.dialer.lightbringer.Lightbringer;
 import com.android.dialer.lightbringer.LightbringerListener;
 import com.android.incallui.video.protocol.VideoCallScreen;
@@ -47,10 +46,7 @@
 
   @Override
   public boolean isAvailable(Context context) {
-    return ConfigProviderBindings.get(context)
-            .getBoolean("enable_lightbringer_video_upgrade", false)
-        && callState == Call.STATE_ACTIVE
-        && lightbringer.isReachable(context, callingNumber);
+    return callState == Call.STATE_ACTIVE && lightbringer.isReachable(context, callingNumber);
   }
 
   @Override
diff --git a/java/com/android/voicemail/impl/AndroidManifest.xml b/java/com/android/voicemail/impl/AndroidManifest.xml
index be7dac1..95e6e82 100644
--- a/java/com/android/voicemail/impl/AndroidManifest.xml
+++ b/java/com/android/voicemail/impl/AndroidManifest.xml
@@ -97,11 +97,6 @@
         android:exported="false"/>
 
     <service
-        android:name="com.android.voicemail.impl.transcribe.TranscriptionService"
-        android:permission="android.permission.BIND_JOB_SERVICE"
-        android:exported="false"/>
-
-    <service
         android:name="com.android.voicemail.impl.OmtpService"
         android:permission="android.permission.BIND_VISUAL_VOICEMAIL_SERVICE"
         android:exported="true"
diff --git a/java/com/android/voicemail/impl/OmtpReceiver.java b/java/com/android/voicemail/impl/OmtpReceiver.java
new file mode 100644
index 0000000..9baf954
--- /dev/null
+++ b/java/com/android/voicemail/impl/OmtpReceiver.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.voicemail.impl;
+
+import android.annotation.TargetApi;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Build.VERSION_CODES;
+import android.telecom.PhoneAccountHandle;
+import android.telephony.VisualVoicemailSms;
+import com.android.dialer.common.Assert;
+import com.android.dialer.logging.DialerImpression;
+import com.android.dialer.logging.Logger;
+import com.android.voicemail.VoicemailComponent;
+import com.android.voicemail.impl.settings.VisualVoicemailSettingsUtil;
+import com.android.voicemail.impl.sync.VvmAccountManager;
+
+/** Listens to com.android.phone.vvm.ACTION_TEMP_VISUAL_VOICEMAIL_SERVICE_EVENT */
+@TargetApi(VERSION_CODES.O)
+public class OmtpReceiver extends BroadcastReceiver {
+
+  private static final String TAG = "VvmOmtpReceiver";
+
+  public static final String ACTION_SMS_RECEIVED = "com.android.vociemailomtp.sms.sms_received";
+
+  public static final String EXTRA_VOICEMAIL_SMS = "extra_voicemail_sms";
+
+  private static final String EXTRA_WHAT = "what";
+
+  private static final int MSG_ON_CELL_SERVICE_CONNECTED = 1;
+
+  private static final int MSG_ON_SMS_RECEIVED = 2;
+
+  private static final int MSG_ON_SIM_REMOVED = 3;
+
+  private static final int MSG_TASK_STOPPED = 5;
+
+  private static final String DATA_PHONE_ACCOUNT_HANDLE = "data_phone_account_handle";
+
+  private static final String DATA_SMS = "data_sms";
+
+  @Override
+  public void onReceive(Context context, Intent intent) {
+    // ACTION_VISUAL_VOICEMAIL_SERVICE_EVENT is not a protected broadcast pre-O.
+    if (!VoicemailComponent.get(context).getVoicemailClient().isVoicemailModuleEnabled()) {
+      VvmLog.e(TAG, "ACTION_VISUAL_VOICEMAIL_SERVICE_EVENT received when module is disabled");
+      return;
+    }
+
+    int what = intent.getIntExtra(EXTRA_WHAT, -1);
+    PhoneAccountHandle phoneAccountHandle = intent.getParcelableExtra(DATA_PHONE_ACCOUNT_HANDLE);
+    OmtpVvmCarrierConfigHelper config = new OmtpVvmCarrierConfigHelper(context, phoneAccountHandle);
+    if (!config.isValid()) {
+      VvmLog.i(TAG, "VVM not supported on " + phoneAccountHandle);
+      return;
+    }
+    if (!VisualVoicemailSettingsUtil.isEnabled(context, phoneAccountHandle)
+        && !config.isLegacyModeEnabled()) {
+      VvmLog.i(TAG, "VVM is disabled");
+      return;
+    }
+    switch (what) {
+      case MSG_ON_CELL_SERVICE_CONNECTED:
+        VvmLog.i(TAG, "onCellServiceConnected");
+        Logger.get(context).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED);
+        ActivationTask.start(context, phoneAccountHandle, null);
+        break;
+      case MSG_ON_SMS_RECEIVED:
+        VvmLog.i(TAG, "onSmsReceived");
+        Logger.get(context).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED);
+        VisualVoicemailSms sms = intent.getParcelableExtra(DATA_SMS);
+        Intent receivedIntent = new Intent(ACTION_SMS_RECEIVED);
+        receivedIntent.setPackage(context.getPackageName());
+        receivedIntent.putExtra(EXTRA_VOICEMAIL_SMS, sms);
+        context.sendBroadcast(receivedIntent);
+        break;
+      case MSG_ON_SIM_REMOVED:
+        VvmLog.i(TAG, "onSimRemoved");
+        Logger.get(context).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED);
+        VvmAccountManager.removeAccount(context, phoneAccountHandle);
+        break;
+      case MSG_TASK_STOPPED:
+        VvmLog.i(TAG, "onStopped");
+        Logger.get(context).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED);
+        break;
+      default:
+        throw Assert.createIllegalStateFailException("unexpected what: " + what);
+    }
+  }
+}
diff --git a/java/com/android/voicemail/impl/TelephonyManagerStub.java b/java/com/android/voicemail/impl/TelephonyManagerStub.java
new file mode 100644
index 0000000..4762e90
--- /dev/null
+++ b/java/com/android/voicemail/impl/TelephonyManagerStub.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.voicemail.impl;
+
+import android.annotation.TargetApi;
+import android.os.Build.VERSION_CODES;
+
+/**
+ * Temporary stub for public APIs that should be added into telephony manager.
+ *
+ * <p>TODO(b/32637799) remove this.
+ */
+@TargetApi(VERSION_CODES.O)
+public class TelephonyManagerStub {
+
+  public static void showVoicemailNotification(int voicemailCount) {}
+
+  /**
+   * Dismisses the message waiting (voicemail) indicator.
+   *
+   * @param subId the subscription id we should dismiss the notification for.
+   */
+  public static void clearMwiIndicator(int subId) {}
+
+  public static void setShouldCheckVisualVoicemailConfigurationForMwi(int subId, boolean enabled) {}
+}
diff --git a/java/com/android/voicemail/impl/VvmPackageInstallReceiver.java b/java/com/android/voicemail/impl/VvmPackageInstallReceiver.java
new file mode 100644
index 0000000..1e2de60
--- /dev/null
+++ b/java/com/android/voicemail/impl/VvmPackageInstallReceiver.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.voicemail.impl;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.telecom.PhoneAccountHandle;
+import android.telecom.TelecomManager;
+import com.android.voicemail.VoicemailComponent;
+import com.android.voicemail.impl.settings.VisualVoicemailSettingsUtil;
+
+/**
+ * When a new package is installed, check if it matches any of the vvm carrier apps of the currently
+ * enabled dialer VVM sources. The dialer VVM client will be disabled upon carrier VVM app
+ * installation, unless it was explicitly enabled by the user.
+ */
+public class VvmPackageInstallReceiver extends BroadcastReceiver {
+
+  private static final String TAG = "VvmPkgInstallReceiver";
+
+  @Override
+  public void onReceive(Context context, Intent intent) {
+    if (!VoicemailComponent.get(context).getVoicemailClient().isVoicemailModuleEnabled()) {
+      return;
+    }
+
+    if (intent.getData() == null) {
+      return;
+    }
+
+    String packageName = intent.getData().getSchemeSpecificPart();
+    if (packageName == null) {
+      return;
+    }
+
+    // This get called every time an app is installed and will be noisy. Don't log until the app
+    // is identified as a carrier VVM app.
+    for (PhoneAccountHandle phoneAccount :
+        context.getSystemService(TelecomManager.class).getCallCapablePhoneAccounts()) {
+      OmtpVvmCarrierConfigHelper carrierConfigHelper =
+          new OmtpVvmCarrierConfigHelper(context, phoneAccount);
+      if (!carrierConfigHelper.isValid()) {
+        continue;
+      }
+      if (carrierConfigHelper.getCarrierVvmPackageNames() == null) {
+        continue;
+      }
+      if (!carrierConfigHelper.getCarrierVvmPackageNames().contains(packageName)) {
+        continue;
+      }
+
+      VvmLog.i(TAG, "Carrier app installed");
+      if (VisualVoicemailSettingsUtil.isEnabledUserSet(context, phoneAccount)) {
+        // Skip the check if this voicemail source's setting is overridden by the user.
+        VvmLog.i(TAG, "VVM enabled by user, not disabling");
+        continue;
+      }
+
+      // Force deactivate the client. The user can re-enable it in the settings.
+      // There is no need to update the settings for deactivation. At this point, if the
+      // default value is used it should be false because a carrier package is present.
+      VvmLog.i(TAG, "Carrier VVM package installed, disabling system VVM client");
+      VisualVoicemailSettingsUtil.setEnabled(context, phoneAccount, false);
+    }
+  }
+}
diff --git a/java/com/android/voicemail/impl/com/google/internal/communications/voicemailtranscription/v1/VoicemailTranscriptionServiceGrpc.java b/java/com/android/voicemail/impl/com/google/internal/communications/voicemailtranscription/v1/VoicemailTranscriptionServiceGrpc.java
deleted file mode 100644
index 448c693..0000000
--- a/java/com/android/voicemail/impl/com/google/internal/communications/voicemailtranscription/v1/VoicemailTranscriptionServiceGrpc.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.google.internal.communications.voicemailtranscription.v1;
-
-import static io.grpc.stub.ClientCalls.asyncUnaryCall;
-import static io.grpc.stub.ClientCalls.asyncServerStreamingCall;
-import static io.grpc.stub.ClientCalls.asyncClientStreamingCall;
-import static io.grpc.stub.ClientCalls.asyncBidiStreamingCall;
-import static io.grpc.stub.ClientCalls.blockingUnaryCall;
-import static io.grpc.stub.ClientCalls.blockingServerStreamingCall;
-import static io.grpc.stub.ClientCalls.futureUnaryCall;
-import static io.grpc.MethodDescriptor.generateFullMethodName;
-import static io.grpc.stub.ServerCalls.asyncUnaryCall;
-import static io.grpc.stub.ServerCalls.asyncServerStreamingCall;
-import static io.grpc.stub.ServerCalls.asyncClientStreamingCall;
-import static io.grpc.stub.ServerCalls.asyncBidiStreamingCall;
-import static io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall;
-import static io.grpc.stub.ServerCalls.asyncUnimplementedStreamingCall;
-
-/**
- * <pre>
- * RPC service for transcribing voicemails.
- * </pre>
- */
-@javax.annotation.Generated(
-    value = "by gRPC proto compiler (version 1.0.3)",
-    comments = "Source: voicemail_transcription.proto")
-public class VoicemailTranscriptionServiceGrpc {
-
-  private VoicemailTranscriptionServiceGrpc() {}
-
-  public static final String SERVICE_NAME = "google.internal.communications.voicemailtranscription.v1.VoicemailTranscriptionService";
-
-  // Static method descriptors that strictly reflect the proto.
-  @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901")
-  public static final io.grpc.MethodDescriptor<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest,
-      com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse> METHOD_TRANSCRIBE_VOICEMAIL =
-      io.grpc.MethodDescriptor.create(
-          io.grpc.MethodDescriptor.MethodType.UNARY,
-          generateFullMethodName(
-              "google.internal.communications.voicemailtranscription.v1.VoicemailTranscriptionService", "TranscribeVoicemail"),
-          io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest.getDefaultInstance()),
-          io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse.getDefaultInstance()));
-
-  /**
-   * Creates a new async stub that supports all call types for the service
-   */
-  public static VoicemailTranscriptionServiceStub newStub(io.grpc.Channel channel) {
-    return new VoicemailTranscriptionServiceStub(channel);
-  }
-
-  /**
-   * Creates a new blocking-style stub that supports unary and streaming output calls on the service
-   */
-  public static VoicemailTranscriptionServiceBlockingStub newBlockingStub(
-      io.grpc.Channel channel) {
-    return new VoicemailTranscriptionServiceBlockingStub(channel);
-  }
-
-  /**
-   * Creates a new ListenableFuture-style stub that supports unary and streaming output calls on the service
-   */
-  public static VoicemailTranscriptionServiceFutureStub newFutureStub(
-      io.grpc.Channel channel) {
-    return new VoicemailTranscriptionServiceFutureStub(channel);
-  }
-
-  /**
-   * <pre>
-   * RPC service for transcribing voicemails.
-   * </pre>
-   */
-  public static abstract class VoicemailTranscriptionServiceImplBase implements io.grpc.BindableService {
-
-    /**
-     * <pre>
-     * Returns a transcript of the given voicemail.
-     * </pre>
-     */
-    public void transcribeVoicemail(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest request,
-        io.grpc.stub.StreamObserver<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse> responseObserver) {
-      asyncUnimplementedUnaryCall(METHOD_TRANSCRIBE_VOICEMAIL, responseObserver);
-    }
-
-    @java.lang.Override public io.grpc.ServerServiceDefinition bindService() {
-      return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
-          .addMethod(
-            METHOD_TRANSCRIBE_VOICEMAIL,
-            asyncUnaryCall(
-              new MethodHandlers<
-                com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest,
-                com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse>(
-                  this, METHODID_TRANSCRIBE_VOICEMAIL)))
-          .build();
-    }
-  }
-
-  /**
-   * <pre>
-   * RPC service for transcribing voicemails.
-   * </pre>
-   */
-  public static final class VoicemailTranscriptionServiceStub extends io.grpc.stub.AbstractStub<VoicemailTranscriptionServiceStub> {
-    private VoicemailTranscriptionServiceStub(io.grpc.Channel channel) {
-      super(channel);
-    }
-
-    private VoicemailTranscriptionServiceStub(io.grpc.Channel channel,
-        io.grpc.CallOptions callOptions) {
-      super(channel, callOptions);
-    }
-
-    @java.lang.Override
-    protected VoicemailTranscriptionServiceStub build(io.grpc.Channel channel,
-        io.grpc.CallOptions callOptions) {
-      return new VoicemailTranscriptionServiceStub(channel, callOptions);
-    }
-
-    /**
-     * <pre>
-     * Returns a transcript of the given voicemail.
-     * </pre>
-     */
-    public void transcribeVoicemail(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest request,
-        io.grpc.stub.StreamObserver<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse> responseObserver) {
-      asyncUnaryCall(
-          getChannel().newCall(METHOD_TRANSCRIBE_VOICEMAIL, getCallOptions()), request, responseObserver);
-    }
-  }
-
-  /**
-   * <pre>
-   * RPC service for transcribing voicemails.
-   * </pre>
-   */
-  public static final class VoicemailTranscriptionServiceBlockingStub extends io.grpc.stub.AbstractStub<VoicemailTranscriptionServiceBlockingStub> {
-    private VoicemailTranscriptionServiceBlockingStub(io.grpc.Channel channel) {
-      super(channel);
-    }
-
-    private VoicemailTranscriptionServiceBlockingStub(io.grpc.Channel channel,
-        io.grpc.CallOptions callOptions) {
-      super(channel, callOptions);
-    }
-
-    @java.lang.Override
-    protected VoicemailTranscriptionServiceBlockingStub build(io.grpc.Channel channel,
-        io.grpc.CallOptions callOptions) {
-      return new VoicemailTranscriptionServiceBlockingStub(channel, callOptions);
-    }
-
-    /**
-     * <pre>
-     * Returns a transcript of the given voicemail.
-     * </pre>
-     */
-    public com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse transcribeVoicemail(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest request) {
-      return blockingUnaryCall(
-          getChannel(), METHOD_TRANSCRIBE_VOICEMAIL, getCallOptions(), request);
-    }
-  }
-
-  /**
-   * <pre>
-   * RPC service for transcribing voicemails.
-   * </pre>
-   */
-  public static final class VoicemailTranscriptionServiceFutureStub extends io.grpc.stub.AbstractStub<VoicemailTranscriptionServiceFutureStub> {
-    private VoicemailTranscriptionServiceFutureStub(io.grpc.Channel channel) {
-      super(channel);
-    }
-
-    private VoicemailTranscriptionServiceFutureStub(io.grpc.Channel channel,
-        io.grpc.CallOptions callOptions) {
-      super(channel, callOptions);
-    }
-
-    @java.lang.Override
-    protected VoicemailTranscriptionServiceFutureStub build(io.grpc.Channel channel,
-        io.grpc.CallOptions callOptions) {
-      return new VoicemailTranscriptionServiceFutureStub(channel, callOptions);
-    }
-
-    /**
-     * <pre>
-     * Returns a transcript of the given voicemail.
-     * </pre>
-     */
-    public com.google.common.util.concurrent.ListenableFuture<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse> transcribeVoicemail(
-        com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest request) {
-      return futureUnaryCall(
-          getChannel().newCall(METHOD_TRANSCRIBE_VOICEMAIL, getCallOptions()), request);
-    }
-  }
-
-  private static final int METHODID_TRANSCRIBE_VOICEMAIL = 0;
-
-  private static class MethodHandlers<Req, Resp> implements
-      io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>,
-      io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>,
-      io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>,
-      io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> {
-    private final VoicemailTranscriptionServiceImplBase serviceImpl;
-    private final int methodId;
-
-    public MethodHandlers(VoicemailTranscriptionServiceImplBase serviceImpl, int methodId) {
-      this.serviceImpl = serviceImpl;
-      this.methodId = methodId;
-    }
-
-    @java.lang.Override
-    @java.lang.SuppressWarnings("unchecked")
-    public void invoke(Req request, io.grpc.stub.StreamObserver<Resp> responseObserver) {
-      switch (methodId) {
-        case METHODID_TRANSCRIBE_VOICEMAIL:
-          serviceImpl.transcribeVoicemail((com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest) request,
-              (io.grpc.stub.StreamObserver<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse>) responseObserver);
-          break;
-        default:
-          throw new AssertionError();
-      }
-    }
-
-    @java.lang.Override
-    @java.lang.SuppressWarnings("unchecked")
-    public io.grpc.stub.StreamObserver<Req> invoke(
-        io.grpc.stub.StreamObserver<Resp> responseObserver) {
-      switch (methodId) {
-        default:
-          throw new AssertionError();
-      }
-    }
-  }
-
-  public static io.grpc.ServiceDescriptor getServiceDescriptor() {
-    return new io.grpc.ServiceDescriptor(SERVICE_NAME,
-        METHOD_TRANSCRIBE_VOICEMAIL);
-  }
-
-}
diff --git a/java/com/android/voicemail/impl/fetch/VoicemailFetchedCallback.java b/java/com/android/voicemail/impl/fetch/VoicemailFetchedCallback.java
index d15ce12..f386fce 100644
--- a/java/com/android/voicemail/impl/fetch/VoicemailFetchedCallback.java
+++ b/java/com/android/voicemail/impl/fetch/VoicemailFetchedCallback.java
@@ -23,12 +23,9 @@
 import android.support.annotation.Nullable;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
-import com.android.dialer.common.Assert;
-import com.android.dialer.common.concurrent.ThreadUtil;
 import com.android.voicemail.impl.R;
 import com.android.voicemail.impl.VvmLog;
 import com.android.voicemail.impl.imap.VoicemailPayload;
-import com.android.voicemail.impl.transcribe.TranscriptionService;
 import java.io.IOException;
 import java.io.OutputStream;
 import org.apache.commons.io.IOUtils;
@@ -59,7 +56,6 @@
    * @param voicemailPayload The object containing the content data for the voicemail
    */
   public void setVoicemailContent(@Nullable VoicemailPayload voicemailPayload) {
-    Assert.isWorkerThread();
     if (voicemailPayload == null) {
       VvmLog.i(TAG, "Payload not found, message has unsupported format");
       ContentValues values = new ContentValues();
@@ -94,23 +90,13 @@
     ContentValues values = new ContentValues();
     values.put(Voicemails.MIME_TYPE, voicemailPayload.getMimeType());
     values.put(Voicemails.HAS_CONTENT, true);
-    if (updateVoicemail(values)) {
-      ThreadUtil.postOnUiThread(
-          () -> {
-            if (!TranscriptionService.transcribeVoicemail(mContext, mUri)) {
-              VvmLog.w(TAG, String.format("Failed to schedule transcription for %s", mUri));
-            }
-          });
-    }
+    updateVoicemail(values);
   }
 
-  private boolean updateVoicemail(ContentValues values) {
+  private void updateVoicemail(ContentValues values) {
     int updatedCount = mContentResolver.update(mUri, values, null, null);
     if (updatedCount != 1) {
       VvmLog.e(TAG, "Updating voicemail should have updated 1 row, was: " + updatedCount);
-      return false;
-    } else {
-      return true;
     }
   }
 }
diff --git a/java/com/android/voicemail/impl/mail/MailTransport.java b/java/com/android/voicemail/impl/mail/MailTransport.java
index 00339f0..3df36d5 100644
--- a/java/com/android/voicemail/impl/mail/MailTransport.java
+++ b/java/com/android/voicemail/impl/mail/MailTransport.java
@@ -17,9 +17,7 @@
 
 import android.content.Context;
 import android.net.Network;
-import android.net.TrafficStats;
 import android.support.annotation.VisibleForTesting;
-import com.android.dialer.constants.TrafficStatsTags;
 import com.android.voicemail.impl.OmtpEvents;
 import com.android.voicemail.impl.imap.ImapHelper;
 import com.android.voicemail.impl.mail.store.ImapStore;
@@ -190,7 +188,6 @@
 
     try {
       LogUtils.v(TAG, "createSocket: network specified");
-      TrafficStats.setThreadStatsTag(TrafficStatsTags.VISUAL_VOICEMAIL_TAG);
       return mNetwork.getSocketFactory().createSocket();
     } catch (IOException ioe) {
       LogUtils.d(TAG, ioe.toString());
diff --git a/java/com/android/voicemail/impl/scheduling/TaskSchedulerService.java b/java/com/android/voicemail/impl/scheduling/TaskSchedulerService.java
new file mode 100644
index 0000000..5ad2447
--- /dev/null
+++ b/java/com/android/voicemail/impl/scheduling/TaskSchedulerService.java
@@ -0,0 +1,400 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.voicemail.impl.scheduling;
+
+import android.annotation.TargetApi;
+import android.app.Service;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Binder;
+import android.os.Build.VERSION_CODES;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.IBinder;
+import android.os.Looper;
+import android.os.Message;
+import android.support.annotation.MainThread;
+import android.support.annotation.Nullable;
+import android.support.annotation.VisibleForTesting;
+import android.support.annotation.WorkerThread;
+import com.android.voicemail.impl.Assert;
+import com.android.voicemail.impl.NeededForTesting;
+import com.android.voicemail.impl.VvmLog;
+import com.android.voicemail.impl.scheduling.TaskQueue.NextTask;
+import java.util.List;
+
+/**
+ * A service to queue and run {@link Task} with the {@link android.app.job.JobScheduler}. A task is
+ * queued using {@link Context#startService(Intent)}. The intent should contain enough information
+ * in {@link Intent#getExtras()} to construct the task (see {@link Tasks#createIntent(Context,
+ * Class)}).
+ *
+ * <p>All tasks are ran in the background with a wakelock being held by the {@link
+ * android.app.job.JobScheduler}, which is between {@link #onStartJob(Job, List)} and {@link
+ * #finishJob()}. The {@link TaskSchedulerJobService} also has a {@link TaskQueue}, but the data is
+ * stored in the {@link android.app.job.JobScheduler} instead of the process memory, so if the
+ * process is killed the queued tasks will be restored. If a new task is added, a new {@link
+ * TaskSchedulerJobService} will be scheduled to run the task. If the job is already scheduled, the
+ * new task will be pushed into the queue of the scheduled job. If the job is already running, the
+ * job will be queued in process memory.
+ *
+ * <p>Only one task will be ran at a time, and same task cannot exist in the queue at the same time.
+ * Refer to {@link TaskQueue} for queuing and execution order.
+ *
+ * <p>If there are still tasks in the queue but none are executable immediately, the service will
+ * enter a "sleep", pushing all remaining task into a new job and end the current job.
+ *
+ * <p>The service will be started when a intent is received, and stopped when there are no more
+ * tasks in the queue.
+ *
+ * <p>{@link android.app.job.JobScheduler} is not used directly due to:
+ *
+ * <ul>
+ *   <li>The {@link android.telecom.PhoneAccountHandle} used to differentiate task can not be easily
+ *       mapped into an integer for job id
+ *   <li>A job cannot be mutated to store information such as retry count.
+ * </ul>
+ */
+@SuppressWarnings("AndroidApiChecker") /* stream() */
+@TargetApi(VERSION_CODES.O)
+public class TaskSchedulerService extends Service {
+
+  interface Job {
+    void finish();
+  }
+
+  private static final String TAG = "VvmTaskScheduler";
+
+  private static final int READY_TOLERANCE_MILLISECONDS = 100;
+
+  /**
+   * Threshold to determine whether to do a short or long sleep when a task is scheduled in the
+   * future.
+   *
+   * <p>A short sleep will continue the job and use {@link Handler#postDelayed(Runnable, long)} to
+   * wait for the next task.
+   *
+   * <p>A long sleep will finish the job and schedule a new one. The exact execution time is
+   * subjected to {@link android.app.job.JobScheduler} battery optimization, and is not exact.
+   */
+  private static final int SHORT_SLEEP_THRESHOLD_MILLISECONDS = 10_000;
+  /**
+   * When there are no more tasks to be run the service should be stopped. But when all tasks has
+   * finished there might still be more tasks in the message queue waiting to be processed,
+   * especially the ones submitted in {@link Task#onCompleted()}. Wait for a while before stopping
+   * the service to make sure there are no pending messages.
+   */
+  private static final int STOP_DELAY_MILLISECONDS = 5_000;
+
+  // The thread to run tasks on
+  private volatile WorkerThreadHandler mWorkerThreadHandler;
+
+  /**
+   * Used by tests to turn task handling into a single threaded process by calling {@link
+   * Handler#handleMessage(Message)} directly
+   */
+  private MessageSender mMessageSender = new MessageSender();
+
+  private MainThreadHandler mMainThreadHandler;
+
+  // Binder given to clients
+  private final IBinder mBinder = new LocalBinder();
+
+  /** Main thread only, access through {@link #getTasks()} */
+  private final TaskQueue mTasks = new TaskQueue();
+
+  private boolean mWorkerThreadIsBusy = false;
+
+  private Job mJob;
+
+  private final Runnable mStopServiceWithDelay =
+      new Runnable() {
+        @MainThread
+        @Override
+        public void run() {
+          VvmLog.i(TAG, "Stopping service");
+          finishJob();
+          stopSelf();
+        }
+      };
+
+  /** Should attempt to run the next task when a task has finished or been added. */
+  private boolean mTaskAutoRunDisabledForTesting = false;
+
+  @VisibleForTesting
+  final class WorkerThreadHandler extends Handler {
+
+    public WorkerThreadHandler(Looper looper) {
+      super(looper);
+    }
+
+    @Override
+    @WorkerThread
+    public void handleMessage(Message msg) {
+      Assert.isNotMainThread();
+      Task task = (Task) msg.obj;
+      try {
+        VvmLog.i(TAG, "executing task " + task);
+        task.onExecuteInBackgroundThread();
+      } catch (Throwable throwable) {
+        VvmLog.e(TAG, "Exception while executing task " + task + ":", throwable);
+      }
+
+      Message schedulerMessage = mMainThreadHandler.obtainMessage();
+      schedulerMessage.obj = task;
+      mMessageSender.send(schedulerMessage);
+    }
+  }
+
+  @VisibleForTesting
+  final class MainThreadHandler extends Handler {
+
+    public MainThreadHandler(Looper looper) {
+      super(looper);
+    }
+
+    @Override
+    @MainThread
+    public void handleMessage(Message msg) {
+      Assert.isMainThread();
+      Task task = (Task) msg.obj;
+      getTasks().remove(task);
+      task.onCompleted();
+      mWorkerThreadIsBusy = false;
+      maybeRunNextTask();
+    }
+  }
+
+  @Override
+  @MainThread
+  public void onCreate() {
+    super.onCreate();
+    HandlerThread thread = new HandlerThread("VvmTaskSchedulerService");
+    thread.start();
+
+    mWorkerThreadHandler = new WorkerThreadHandler(thread.getLooper());
+    mMainThreadHandler = new MainThreadHandler(Looper.getMainLooper());
+  }
+
+  @Override
+  public void onDestroy() {
+    mWorkerThreadHandler.getLooper().quit();
+  }
+
+  @Override
+  @MainThread
+  public int onStartCommand(@Nullable Intent intent, int flags, int startId) {
+    Assert.isMainThread();
+    if (intent == null) {
+      VvmLog.w(TAG, "null intent received");
+      return START_NOT_STICKY;
+    }
+    Task task = Tasks.createTask(this, intent.getExtras());
+    Assert.isTrue(task != null);
+    addTask(task);
+
+    mMainThreadHandler.removeCallbacks(mStopServiceWithDelay);
+    VvmLog.i(TAG, "task added");
+    if (mJob == null) {
+      scheduleJob(0, true);
+    } else {
+      maybeRunNextTask();
+    }
+    // STICKY means the service will be automatically restarted will the last intent if it is
+    // killed.
+    return START_NOT_STICKY;
+  }
+
+  @MainThread
+  @VisibleForTesting
+  void addTask(Task task) {
+    Assert.isMainThread();
+    getTasks().add(task);
+  }
+
+  @MainThread
+  @VisibleForTesting
+  TaskQueue getTasks() {
+    Assert.isMainThread();
+    return mTasks;
+  }
+
+  @MainThread
+  private void maybeRunNextTask() {
+    Assert.isMainThread();
+    if (mWorkerThreadIsBusy) {
+      return;
+    }
+    if (mTaskAutoRunDisabledForTesting) {
+      // If mTaskAutoRunDisabledForTesting is true, runNextTask() must be explicitly called
+      // to run the next task.
+      return;
+    }
+
+    runNextTask();
+  }
+
+  @VisibleForTesting
+  @MainThread
+  void runNextTask() {
+    Assert.isMainThread();
+    if (getTasks().isEmpty()) {
+      prepareStop();
+      return;
+    }
+    NextTask nextTask = getTasks().getNextTask(READY_TOLERANCE_MILLISECONDS);
+
+    if (nextTask.task != null) {
+      nextTask.task.onBeforeExecute();
+      Message message = mWorkerThreadHandler.obtainMessage();
+      message.obj = nextTask.task;
+      mWorkerThreadIsBusy = true;
+      mMessageSender.send(message);
+      return;
+    }
+    VvmLog.i(TAG, "minimal wait time:" + nextTask.minimalWaitTimeMillis);
+    if (!mTaskAutoRunDisabledForTesting && nextTask.minimalWaitTimeMillis != null) {
+      // No tasks are currently ready. Sleep until the next one should be.
+      // If a new task is added during the sleep the service will wake immediately.
+      sleep(nextTask.minimalWaitTimeMillis);
+    }
+  }
+
+  @MainThread
+  private void sleep(long timeMillis) {
+    VvmLog.i(TAG, "sleep for " + timeMillis + " millis");
+    if (timeMillis < SHORT_SLEEP_THRESHOLD_MILLISECONDS) {
+      mMainThreadHandler.postDelayed(
+          new Runnable() {
+            @Override
+            public void run() {
+              maybeRunNextTask();
+            }
+          },
+          timeMillis);
+      return;
+    }
+    finishJob();
+    mMainThreadHandler.post(() -> scheduleJob(timeMillis, false));
+  }
+
+  private List<Bundle> serializePendingTasks() {
+    return getTasks().toBundles();
+  }
+
+  private void prepareStop() {
+    VvmLog.i(
+        TAG,
+        "no more tasks, stopping service if no task are added in "
+            + STOP_DELAY_MILLISECONDS
+            + " millis");
+    mMainThreadHandler.postDelayed(mStopServiceWithDelay, STOP_DELAY_MILLISECONDS);
+  }
+
+  @NeededForTesting
+  static class MessageSender {
+
+    public void send(Message message) {
+      message.sendToTarget();
+    }
+  }
+
+  @NeededForTesting
+  void setTaskAutoRunDisabledForTest(boolean value) {
+    mTaskAutoRunDisabledForTesting = value;
+  }
+
+  @NeededForTesting
+  void setMessageSenderForTest(MessageSender sender) {
+    mMessageSender = sender;
+  }
+
+  /**
+   * The {@link TaskSchedulerJobService} has started and all queued task should be executed in the
+   * worker thread.
+   */
+  @MainThread
+  public void onStartJob(Job job, List<Bundle> pendingTasks) {
+    VvmLog.i(TAG, "onStartJob");
+    mJob = job;
+    mTasks.fromBundles(this, pendingTasks);
+    maybeRunNextTask();
+  }
+
+  /**
+   * The {@link TaskSchedulerJobService} is being terminated by the system (timeout or network
+   * lost). A new job will be queued to resume all pending tasks. The current unfinished job may be
+   * ran again.
+   */
+  @MainThread
+  public void onStopJob() {
+    VvmLog.e(TAG, "onStopJob");
+    if (isJobRunning()) {
+      finishJob();
+      mMainThreadHandler.post(() -> scheduleJob(0, true));
+    }
+  }
+
+  /**
+   * Serializes all pending tasks and schedule a new {@link TaskSchedulerJobService}.
+   *
+   * @param delayMillis the delay before stating the job, see {@link
+   *     android.app.job.JobInfo.Builder#setMinimumLatency(long)}. This must be 0 if {@code
+   *     isNewJob} is true.
+   * @param isNewJob a new job will be requested to run immediately, bypassing all requirements.
+   */
+  @MainThread
+  private void scheduleJob(long delayMillis, boolean isNewJob) {
+    Assert.isMainThread();
+    TaskSchedulerJobService.scheduleJob(this, serializePendingTasks(), delayMillis, isNewJob);
+    mTasks.clear();
+  }
+
+  /**
+   * Signals {@link TaskSchedulerJobService} the current session of tasks has finished, and the wake
+   * lock can be released. Note: this only takes effect after the main thread has been returned. If
+   * a new job need to be scheduled, it should be posted on the main thread handler instead of
+   * calling directly.
+   */
+  @MainThread
+  private void finishJob() {
+    Assert.isMainThread();
+    VvmLog.i(TAG, "finishing Job");
+    mJob.finish();
+    mJob = null;
+  }
+
+  @Override
+  @Nullable
+  public IBinder onBind(Intent intent) {
+    return mBinder;
+  }
+
+  @NeededForTesting
+  class LocalBinder extends Binder {
+
+    @NeededForTesting
+    public TaskSchedulerService getService() {
+      return TaskSchedulerService.this;
+    }
+  }
+
+  private boolean isJobRunning() {
+    return mJob != null;
+  }
+}
diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java b/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java
deleted file mode 100644
index 17c9be7..0000000
--- a/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.voicemail.impl.transcribe;
-
-import android.content.Context;
-import com.android.dialer.common.ConfigProviderBindings;
-
-/** Provides configuration values needed to connect to the transcription server. */
-public class TranscriptionConfigProvider {
-  private final Context context;
-
-  public TranscriptionConfigProvider(Context context) {
-    this.context = context;
-  }
-
-  public boolean isVoicemailTranscriptionEnabled() {
-    return ConfigProviderBindings.get(context).getBoolean("voicemail_transcription_enabled", false);
-  }
-
-  public String getServerAddress() {
-    // Private voicemail transcription service
-    return ConfigProviderBindings.get(context)
-        .getString(
-            "voicemail_transcription_server_address", "voicemailtranscription-pa.googleapis.com");
-  }
-
-  public String getApiKey() {
-    // Android API key restricted to com.google.android.dialer
-    return ConfigProviderBindings.get(context)
-        .getString(
-            "voicemail_transcription_client_api_key", "AIzaSyAXdDnif6B7sBYxU8hzw9qAp3pRPVHs060");
-  }
-
-  public String getAuthToken() {
-    return null;
-  }
-
-  public boolean shouldUsePlaintext() {
-    return ConfigProviderBindings.get(context)
-        .getBoolean("voicemail_transcription_server_use_plaintext", false);
-  }
-
-  @Override
-  public String toString() {
-    return String.format(
-        "{ address: %s, api key: %s, auth token: %s, plaintext: %b }",
-        getServerAddress(), getApiKey(), getAuthToken(), shouldUsePlaintext());
-  }
-}
diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.java b/java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.java
deleted file mode 100644
index cbc5cb8..0000000
--- a/java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.voicemail.impl.transcribe;
-
-import android.annotation.TargetApi;
-import android.content.ContentResolver;
-import android.content.ContentValues;
-import android.content.Context;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.Build.VERSION_CODES;
-import android.provider.VoicemailContract.Voicemails;
-import android.support.annotation.WorkerThread;
-import android.support.v4.os.BuildCompat;
-import android.util.Pair;
-import com.android.dialer.common.Assert;
-import com.android.dialer.common.LogUtil;
-
-/** Helper class for reading and writing transcription data in the database */
-@TargetApi(VERSION_CODES.O)
-public class TranscriptionDbHelper {
-  private static final String[] PROJECTION =
-      new String[] {
-        Voicemails.TRANSCRIPTION, // 0
-        VoicemailCompat.TRANSCRIPTION_STATE // 1
-      };
-
-  public static final int TRANSCRIPTION = 0;
-  public static final int TRANSCRIPTION_STATE = 1;
-
-  private final ContentResolver contentResolver;
-  private final Uri uri;
-
-  TranscriptionDbHelper(Context context, Uri uri) {
-    Assert.isNotNull(uri);
-    this.contentResolver = context.getContentResolver();
-    this.uri = uri;
-  }
-
-  @WorkerThread
-  @TargetApi(VERSION_CODES.M) // used for try with resources
-  Pair<String, Integer> getTranscriptionAndState() {
-    Assert.checkArgument(BuildCompat.isAtLeastO());
-    Assert.isWorkerThread();
-    try (Cursor cursor = contentResolver.query(uri, PROJECTION, null, null, null)) {
-      if (cursor == null) {
-        LogUtil.e("TranscriptionDbHelper.getTranscriptionAndState", "query failed.");
-        return null;
-      }
-
-      if (cursor.moveToFirst()) {
-        String transcription = cursor.getString(TRANSCRIPTION);
-        int transcriptionState = cursor.getInt(TRANSCRIPTION_STATE);
-        return new Pair<>(transcription, transcriptionState);
-      }
-    }
-    LogUtil.i("TranscriptionDbHelper.getTranscriptionAndState", "query returned no results");
-    return null;
-  }
-
-  @WorkerThread
-  void setTranscriptionState(int transcriptionState) {
-    Assert.isWorkerThread();
-    LogUtil.i(
-        "TranscriptionDbHelper.setTranscriptionState",
-        "uri: " + uri + ", state: " + transcriptionState);
-    ContentValues values = new ContentValues();
-    values.put(VoicemailCompat.TRANSCRIPTION_STATE, transcriptionState);
-    updateDatabase(values);
-  }
-
-  @WorkerThread
-  void setTranscriptionAndState(String transcription, int transcriptionState) {
-    Assert.isWorkerThread();
-    LogUtil.i(
-        "TranscriptionDbHelper.setTranscriptionAndState",
-        "uri: " + uri + ", state: " + transcriptionState);
-    ContentValues values = new ContentValues();
-    values.put(Voicemails.TRANSCRIPTION, transcription);
-    values.put(VoicemailCompat.TRANSCRIPTION_STATE, transcriptionState);
-    updateDatabase(values);
-  }
-
-  private void updateDatabase(ContentValues values) {
-    int updatedCount = contentResolver.update(uri, values, null, null);
-    if (updatedCount != 1) {
-      LogUtil.e(
-          "TranscriptionDbHelper.updateDatabase",
-          "Wrong row count, should have updated 1 row, was: " + updatedCount);
-    }
-  }
-}
diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionService.java b/java/com/android/voicemail/impl/transcribe/TranscriptionService.java
deleted file mode 100644
index 3e80a7f..0000000
--- a/java/com/android/voicemail/impl/transcribe/TranscriptionService.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.voicemail.impl.transcribe;
-
-import android.app.job.JobInfo;
-import android.app.job.JobParameters;
-import android.app.job.JobScheduler;
-import android.app.job.JobService;
-import android.app.job.JobWorkItem;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.StrictMode;
-import android.support.annotation.MainThread;
-import android.support.annotation.VisibleForTesting;
-import android.support.v4.os.BuildCompat;
-import android.text.TextUtils;
-import com.android.dialer.common.Assert;
-import com.android.dialer.common.LogUtil;
-import com.android.dialer.constants.ScheduledJobIds;
-import com.android.voicemail.impl.transcribe.grpc.TranscriptionClientFactory;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-/**
- * Job scheduler callback for launching voicemail transcription tasks. The transcription tasks will
- * run in the background and will typically last for approximately the length of the voicemail audio
- * (since thats how long the backend transcription service takes to do the transcription).
- */
-public class TranscriptionService extends JobService {
-  @VisibleForTesting static final String EXTRA_VOICEMAIL_URI = "extra_voicemail_uri";
-
-  private ExecutorService executorService;
-  private JobParameters jobParameters;
-  private TranscriptionClientFactory clientFactory;
-  private TranscriptionConfigProvider configProvider;
-  private StrictMode.VmPolicy originalPolicy;
-
-  /** Callback used by a task to indicate it has finished processing its work item */
-  interface JobCallback {
-    void onWorkCompleted(JobWorkItem completedWorkItem);
-  }
-
-  // Schedule a task to transcribe the indicated voicemail, return true if transcription task was
-  // scheduled.
-  public static boolean transcribeVoicemail(Context context, Uri voicemailUri) {
-    Assert.isMainThread();
-    if (BuildCompat.isAtLeastO()) {
-      LogUtil.i("TranscriptionService.transcribeVoicemail", "scheduling transcription");
-      ComponentName componentName = new ComponentName(context, TranscriptionService.class);
-      JobInfo.Builder builder =
-          new JobInfo.Builder(ScheduledJobIds.VVM_TRANSCRIPTION_JOB, componentName)
-              .setMinimumLatency(0)
-              .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
-      JobScheduler scheduler = context.getSystemService(JobScheduler.class);
-      JobWorkItem workItem = makeWorkItem(voicemailUri);
-      return scheduler.enqueue(builder.build(), workItem) == JobScheduler.RESULT_SUCCESS;
-    } else {
-      LogUtil.i("TranscriptionService.transcribeVoicemail", "not supported");
-      return false;
-    }
-  }
-
-  // Cancel all transcription tasks
-  public static void cancelTranscriptions(Context context) {
-    Assert.isMainThread();
-    LogUtil.enterBlock("TranscriptionService.cancelTranscriptions");
-    JobScheduler scheduler = context.getSystemService(JobScheduler.class);
-    scheduler.cancel(ScheduledJobIds.VVM_TRANSCRIPTION_JOB);
-  }
-
-  public TranscriptionService() {
-    Assert.isMainThread();
-  }
-
-  @VisibleForTesting
-  TranscriptionService(
-      ExecutorService executorService,
-      TranscriptionClientFactory clientFactory,
-      TranscriptionConfigProvider configProvider) {
-    this.executorService = executorService;
-    this.clientFactory = clientFactory;
-    this.configProvider = configProvider;
-  }
-
-  @Override
-  public boolean onStartJob(JobParameters params) {
-    Assert.isMainThread();
-    LogUtil.enterBlock("TranscriptionService.onStartJob");
-    if (!getConfigProvider().isVoicemailTranscriptionEnabled()) {
-      LogUtil.i("TranscriptionService.onStartJob", "transcription not enabled, exiting.");
-      return false;
-    } else if (TextUtils.isEmpty(getConfigProvider().getServerAddress())) {
-      LogUtil.i("TranscriptionService.onStartJob", "transcription server not configured, exiting.");
-      return false;
-    } else {
-      LogUtil.i(
-          "TranscriptionService.onStartJob",
-          "transcription server address: " + configProvider.getServerAddress());
-      originalPolicy = StrictMode.getVmPolicy();
-      StrictMode.enableDefaults();
-      jobParameters = params;
-      return checkForWork();
-    }
-  }
-
-  @Override
-  public boolean onStopJob(JobParameters params) {
-    Assert.isMainThread();
-    LogUtil.enterBlock("TranscriptionService.onStopJob");
-    cleanup();
-    return true;
-  }
-
-  @Override
-  public void onDestroy() {
-    Assert.isMainThread();
-    LogUtil.enterBlock("TranscriptionService.onDestroy");
-    cleanup();
-  }
-
-  private void cleanup() {
-    if (clientFactory != null) {
-      clientFactory.shutdown();
-      clientFactory = null;
-    }
-    if (executorService != null) {
-      executorService.shutdownNow();
-      executorService = null;
-    }
-    if (originalPolicy != null) {
-      StrictMode.setVmPolicy(originalPolicy);
-      originalPolicy = null;
-    }
-  }
-
-  @MainThread
-  private boolean checkForWork() {
-    Assert.isMainThread();
-    JobWorkItem workItem = jobParameters.dequeueWork();
-    if (workItem != null) {
-      getExecutorService()
-          .execute(new TranscriptionTask(this, new Callback(), workItem, getClientFactory()));
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  private ExecutorService getExecutorService() {
-    if (executorService == null) {
-      // The common use case is transcribing a single voicemail so just use a single thread executor
-      // The reason we're not using DialerExecutor here is because the transcription task can be
-      // very long running (ie. multiple minutes).
-      executorService = Executors.newSingleThreadExecutor();
-    }
-    return executorService;
-  }
-
-  private class Callback implements JobCallback {
-    @Override
-    public void onWorkCompleted(JobWorkItem completedWorkItem) {
-      Assert.isMainThread();
-      LogUtil.i("TranscriptionService.Callback.onWorkCompleted", completedWorkItem.toString());
-      jobParameters.completeWork(completedWorkItem);
-      checkForWork();
-    }
-  }
-
-  private static JobWorkItem makeWorkItem(Uri voicemailUri) {
-    Intent intent = new Intent();
-    intent.putExtra(EXTRA_VOICEMAIL_URI, voicemailUri);
-    return new JobWorkItem(intent);
-  }
-
-  private TranscriptionConfigProvider getConfigProvider() {
-    if (configProvider == null) {
-      configProvider = new TranscriptionConfigProvider(this);
-    }
-    return configProvider;
-  }
-
-  private TranscriptionClientFactory getClientFactory() {
-    if (clientFactory == null) {
-      clientFactory = new TranscriptionClientFactory(this, getConfigProvider());
-    }
-    return clientFactory;
-  }
-}
diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionTask.java b/java/com/android/voicemail/impl/transcribe/TranscriptionTask.java
deleted file mode 100644
index 0fbc33a..0000000
--- a/java/com/android/voicemail/impl/transcribe/TranscriptionTask.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.voicemail.impl.transcribe;
-
-import android.annotation.TargetApi;
-import android.app.job.JobWorkItem;
-import android.content.Context;
-import android.net.Uri;
-import android.text.TextUtils;
-import com.android.dialer.common.concurrent.ThreadUtil;
-import com.android.voicemail.impl.VvmLog;
-import com.android.voicemail.impl.transcribe.TranscriptionService.JobCallback;
-import com.android.voicemail.impl.transcribe.grpc.TranscriptionClient;
-import com.android.voicemail.impl.transcribe.grpc.TranscriptionClientFactory;
-import com.google.internal.communications.voicemailtranscription.v1.AudioFormat;
-import com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest;
-import com.google.protobuf.ByteString;
-import io.grpc.Status;
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * Background task to get a voicemail transcription and update the database.
- *
- * <pre>
- * This task performs the following steps:
- *   1. Update the transcription-state in the database to 'in-progress'
- *   2. Create grpc client and transcription request
- *   3. Make synchronous grpc transcription request to backend server
- *     3a. On response
- *       Update the database with transcription (if successful) and new transcription-state
- *     3b. On network error
- *       If retry-count < max then increment retry-count and retry the request
- *       Otherwise update the transcription-state in the database to 'transcription-failed'
- *   4. Notify the callback that the work item is complete
- * </pre>
- */
-public class TranscriptionTask implements Runnable {
-  private static final String TAG = "TranscriptionTask";
-
-  private final Context context;
-  private final JobCallback callback;
-  private final JobWorkItem workItem;
-  private final TranscriptionClientFactory clientFactory;
-  private final Uri voicemailUri;
-  private final TranscriptionDbHelper databaseHelper;
-  private ByteString audioData;
-  private AudioFormat encoding;
-
-  private static final int MAX_RETRIES = 2;
-  static final String AMR_PREFIX = "#!AMR\n";
-
-  public TranscriptionTask(
-      Context context,
-      JobCallback callback,
-      JobWorkItem workItem,
-      TranscriptionClientFactory clientFactory) {
-    this.context = context;
-    this.callback = callback;
-    this.workItem = workItem;
-    this.clientFactory = clientFactory;
-    this.voicemailUri = getVoicemailUri(workItem);
-    databaseHelper = new TranscriptionDbHelper(context, voicemailUri);
-  }
-
-  @Override
-  public void run() {
-    VvmLog.i(TAG, "run");
-    if (readAndValidateAudioFile()) {
-      updateTranscriptionState(VoicemailCompat.TRANSCRIPTION_IN_PROGRESS);
-      transcribeVoicemail();
-    } else {
-      updateTranscriptionState(VoicemailCompat.TRANSCRIPTION_FAILED);
-    }
-    ThreadUtil.postOnUiThread(
-        () -> {
-          callback.onWorkCompleted(workItem);
-        });
-  }
-
-  private void transcribeVoicemail() {
-    VvmLog.i(TAG, "transcribeVoicemail");
-    TranscribeVoicemailRequest request = makeRequest();
-    TranscriptionClient client = clientFactory.getClient();
-    String transcript = null;
-    for (int i = 0; transcript == null && i < MAX_RETRIES; i++) {
-      VvmLog.i(TAG, "transcribeVoicemail, try: " + (i + 1));
-      TranscriptionClient.TranscriptionResponseWrapper responseWrapper =
-          client.transcribeVoicemail(request);
-      if (responseWrapper.status != null) {
-        VvmLog.i(TAG, "transcribeVoicemail, status: " + responseWrapper.status.getCode());
-        if (shouldRetryRequest(responseWrapper.status)) {
-          backoff(i);
-        } else {
-          break;
-        }
-      } else if (responseWrapper.response != null) {
-        if (!TextUtils.isEmpty(responseWrapper.response.getTranscript())) {
-          VvmLog.i(TAG, "transcribeVoicemail, got response");
-          transcript = responseWrapper.response.getTranscript();
-        } else {
-          VvmLog.i(TAG, "transcribeVoicemail, empty transcription");
-        }
-      } else {
-        VvmLog.w(TAG, "transcribeVoicemail, no response");
-      }
-    }
-
-    int newState =
-        (transcript == null)
-            ? VoicemailCompat.TRANSCRIPTION_FAILED
-            : VoicemailCompat.TRANSCRIPTION_AVAILABLE;
-    updateTranscriptionAndState(transcript, newState);
-  }
-
-  private static boolean shouldRetryRequest(Status status) {
-    return status.getCode() == Status.Code.UNAVAILABLE;
-  }
-
-  private static void backoff(int retryCount) {
-    VvmLog.i(TAG, "backoff, count: " + retryCount);
-    try {
-      long millis = (1 << retryCount) * 1000;
-      Thread.sleep(millis);
-    } catch (InterruptedException e) {
-      VvmLog.w(TAG, "interrupted");
-      Thread.currentThread().interrupt();
-    }
-  }
-
-  private void updateTranscriptionAndState(String transcript, int newState) {
-    databaseHelper.setTranscriptionAndState(transcript, newState);
-  }
-
-  private void updateTranscriptionState(int newState) {
-    databaseHelper.setTranscriptionState(newState);
-  }
-
-  private TranscribeVoicemailRequest makeRequest() {
-    return TranscribeVoicemailRequest.newBuilder()
-        .setVoicemailData(audioData)
-        .setAudioFormat(encoding)
-        .build();
-  }
-
-  // Uses try-with-resource
-  @TargetApi(android.os.Build.VERSION_CODES.M)
-  private boolean readAndValidateAudioFile() {
-    if (voicemailUri == null) {
-      VvmLog.i(TAG, "Transcriber.readAndValidateAudioFile, file not found.");
-      return false;
-    } else {
-      VvmLog.i(TAG, "Transcriber.readAndValidateAudioFile, reading: " + voicemailUri);
-    }
-
-    try (InputStream in = context.getContentResolver().openInputStream(voicemailUri)) {
-      audioData = ByteString.readFrom(in);
-      VvmLog.i(TAG, "Transcriber.readAndValidateAudioFile, read " + audioData.size() + " bytes");
-    } catch (IOException e) {
-      VvmLog.e(TAG, "Transcriber.readAndValidateAudioFile", e);
-      return false;
-    }
-
-    if (audioData.startsWith(ByteString.copyFromUtf8(AMR_PREFIX))) {
-      encoding = AudioFormat.AMR_NB_8KHZ;
-    } else {
-      VvmLog.i(TAG, "Transcriber.readAndValidateAudioFile, unknown encoding");
-      encoding = AudioFormat.AUDIO_FORMAT_UNSPECIFIED;
-      return false;
-    }
-
-    return true;
-  }
-
-  private static Uri getVoicemailUri(JobWorkItem workItem) {
-    return workItem.getIntent().getParcelableExtra(TranscriptionService.EXTRA_VOICEMAIL_URI);
-  }
-}
diff --git a/java/com/android/voicemail/impl/transcribe/VoicemailCompat.java b/java/com/android/voicemail/impl/transcribe/VoicemailCompat.java
deleted file mode 100644
index c6e30c6..0000000
--- a/java/com/android/voicemail/impl/transcribe/VoicemailCompat.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.voicemail.impl.transcribe;
-
-/**
- * Provide access to new API constants before they're publicly available
- *
- * <p>Copied from android.provider.VoicemailContract.Voicemails. These should become public in O-MR1
- * and these constants can be removed then.
- */
-public class VoicemailCompat {
-
-  /**
-   * The state of the voicemail transcription.
-   *
-   * <p>Possible values: {@link #TRANSCRIPTION_NOT_STARTED}, {@link #TRANSCRIPTION_IN_PROGRESS},
-   * {@link #TRANSCRIPTION_FAILED}, {@link #TRANSCRIPTION_AVAILABLE}.
-   *
-   * <p>Type: INTEGER
-   */
-  public static final String TRANSCRIPTION_STATE = "transcription_state";
-
-  /**
-   * Value of {@link #TRANSCRIPTION_STATE} when the voicemail transcription has not yet been
-   * attempted.
-   */
-  public static final int TRANSCRIPTION_NOT_STARTED = 0;
-
-  /**
-   * Value of {@link #TRANSCRIPTION_STATE} when the voicemail transcription has begun but is not yet
-   * complete.
-   */
-  public static final int TRANSCRIPTION_IN_PROGRESS = 1;
-
-  /**
-   * Value of {@link #TRANSCRIPTION_STATE} when the voicemail transcription has been attempted and
-   * failed.
-   */
-  public static final int TRANSCRIPTION_FAILED = 2;
-
-  /**
-   * Value of {@link #TRANSCRIPTION_STATE} when the voicemail transcription has completed and the
-   * result has been stored in the {@link #TRANSCRIPTION} column.
-   */
-  public static final int TRANSCRIPTION_AVAILABLE = 3;
-}
diff --git a/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClient.java b/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClient.java
deleted file mode 100644
index 27603d9..0000000
--- a/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClient.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.voicemail.impl.transcribe.grpc;
-
-import android.support.annotation.Nullable;
-import android.support.annotation.WorkerThread;
-import com.android.dialer.common.Assert;
-import com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest;
-import com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse;
-import com.google.internal.communications.voicemailtranscription.v1.VoicemailTranscriptionServiceGrpc;
-import io.grpc.Status;
-import io.grpc.StatusRuntimeException;
-
-/** Wrapper around Grpc transcription server stub */
-public class TranscriptionClient {
-
-  private final VoicemailTranscriptionServiceGrpc.VoicemailTranscriptionServiceBlockingStub stub;
-
-  /** Wraps the server response and status objects, either of which may be null. */
-  public static class TranscriptionResponseWrapper {
-    public final TranscribeVoicemailResponse response;
-    public final Status status;
-
-    public TranscriptionResponseWrapper(
-        @Nullable TranscribeVoicemailResponse response, @Nullable Status status) {
-      Assert.checkArgument(!(response == null && status == null));
-      this.response = response;
-      this.status = status;
-    }
-  }
-
-  TranscriptionClient(
-      VoicemailTranscriptionServiceGrpc.VoicemailTranscriptionServiceBlockingStub stub) {
-    this.stub = stub;
-  }
-
-  @WorkerThread
-  public TranscriptionResponseWrapper transcribeVoicemail(TranscribeVoicemailRequest request) {
-    TranscribeVoicemailResponse response = null;
-    Status status = null;
-    try {
-      response = stub.transcribeVoicemail(request);
-    } catch (StatusRuntimeException e) {
-      status = e.getStatus();
-    }
-    return new TranscriptionClient.TranscriptionResponseWrapper(response, status);
-  }
-}
diff --git a/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClientFactory.java b/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClientFactory.java
deleted file mode 100644
index 6101ed5..0000000
--- a/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClientFactory.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.voicemail.impl.transcribe.grpc;
-
-import android.content.Context;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.text.TextUtils;
-import com.android.dialer.common.Assert;
-import com.android.dialer.common.LogUtil;
-import com.android.voicemail.impl.transcribe.TranscriptionConfigProvider;
-import com.google.internal.communications.voicemailtranscription.v1.VoicemailTranscriptionServiceGrpc;
-import io.grpc.CallOptions;
-import io.grpc.Channel;
-import io.grpc.ClientCall;
-import io.grpc.ClientInterceptor;
-import io.grpc.ClientInterceptors;
-import io.grpc.ForwardingClientCall;
-import io.grpc.ManagedChannel;
-import io.grpc.ManagedChannelBuilder;
-import io.grpc.Metadata;
-import io.grpc.MethodDescriptor;
-import io.grpc.okhttp.OkHttpChannelBuilder;
-import java.security.MessageDigest;
-
-/**
- * Factory for creating grpc clients that talk to the transcription server. This allows all clients
- * to share the same channel, which is relatively expensive to create.
- */
-public class TranscriptionClientFactory {
-  private static final String DIGEST_ALGORITHM_SHA1 = "SHA1";
-  private static final char[] HEX_UPPERCASE = {
-    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
-  };
-
-  private final TranscriptionConfigProvider configProvider;
-  private final ManagedChannel originalChannel;
-  private final String packageName;
-  private final String cert;
-
-  public TranscriptionClientFactory(Context context, TranscriptionConfigProvider configProvider) {
-    this(context, configProvider, getManagedChannel(configProvider));
-  }
-
-  public TranscriptionClientFactory(
-      Context context, TranscriptionConfigProvider configProvider, ManagedChannel managedChannel) {
-    this.configProvider = configProvider;
-    this.packageName = context.getPackageName();
-    this.cert = getCertificateFingerprint(context);
-    originalChannel = managedChannel;
-  }
-
-  public TranscriptionClient getClient() {
-    LogUtil.enterBlock("TranscriptionClientFactory.getClient");
-    Assert.checkState(!originalChannel.isShutdown());
-    Channel channel =
-        ClientInterceptors.intercept(
-            originalChannel,
-            new Interceptor(
-                packageName, cert, configProvider.getApiKey(), configProvider.getAuthToken()));
-    return new TranscriptionClient(VoicemailTranscriptionServiceGrpc.newBlockingStub(channel));
-  }
-
-  public void shutdown() {
-    LogUtil.enterBlock("TranscriptionClientFactory.shutdown");
-    originalChannel.shutdown();
-  }
-
-  private static ManagedChannel getManagedChannel(TranscriptionConfigProvider configProvider) {
-    ManagedChannelBuilder<OkHttpChannelBuilder> builder =
-        OkHttpChannelBuilder.forTarget(configProvider.getServerAddress());
-    // Only use plaintext for debugging
-    if (configProvider.shouldUsePlaintext()) {
-      // Just passing 'false' doesnt have the same effect as not setting this field
-      builder.usePlaintext(true);
-    }
-    return builder.build();
-  }
-
-  private static String getCertificateFingerprint(Context context) {
-    try {
-      PackageInfo packageInfo =
-          context
-              .getPackageManager()
-              .getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
-      if (packageInfo != null
-          && packageInfo.signatures != null
-          && packageInfo.signatures.length > 0) {
-        MessageDigest messageDigest = MessageDigest.getInstance(DIGEST_ALGORITHM_SHA1);
-        if (messageDigest == null) {
-          LogUtil.w(
-              "TranscriptionClientFactory.getCertificateFingerprint", "error getting digest.");
-          return null;
-        }
-        byte[] bytes = messageDigest.digest(packageInfo.signatures[0].toByteArray());
-        if (bytes == null) {
-          LogUtil.w(
-              "TranscriptionClientFactory.getCertificateFingerprint", "empty message digest.");
-          return null;
-        }
-
-        int length = bytes.length;
-        StringBuilder out = new StringBuilder(length * 2);
-        for (int i = 0; i < length; i++) {
-          out.append(HEX_UPPERCASE[(bytes[i] & 0xf0) >>> 4]);
-          out.append(HEX_UPPERCASE[bytes[i] & 0x0f]);
-        }
-        return out.toString();
-      } else {
-        LogUtil.w(
-            "TranscriptionClientFactory.getCertificateFingerprint",
-            "failed to get package signature.");
-      }
-    } catch (Exception e) {
-      LogUtil.e(
-          "TranscriptionClientFactory.getCertificateFingerprint",
-          "error getting certificate fingerprint.",
-          e);
-    }
-
-    return null;
-  }
-
-  private static final class Interceptor implements ClientInterceptor {
-    private final String packageName;
-    private final String cert;
-    private final String apiKey;
-    private final String authToken;
-
-    private static final Metadata.Key<String> API_KEY_HEADER =
-        Metadata.Key.of("X-Goog-Api-Key", Metadata.ASCII_STRING_MARSHALLER);
-    private static final Metadata.Key<String> ANDROID_PACKAGE_HEADER =
-        Metadata.Key.of("X-Android-Package", Metadata.ASCII_STRING_MARSHALLER);
-    private static final Metadata.Key<String> ANDROID_CERT_HEADER =
-        Metadata.Key.of("X-Android-Cert", Metadata.ASCII_STRING_MARSHALLER);
-    private static final Metadata.Key<String> AUTHORIZATION_HEADER =
-        Metadata.Key.of("authorization", Metadata.ASCII_STRING_MARSHALLER);
-
-    public Interceptor(String packageName, String cert, String apiKey, String authToken) {
-      this.packageName = packageName;
-      this.cert = cert;
-      this.apiKey = apiKey;
-      this.authToken = authToken;
-    }
-
-    @Override
-    public <ReqT, RespT> ClientCall<ReqT, RespT> interceptCall(
-        MethodDescriptor<ReqT, RespT> method, CallOptions callOptions, Channel next) {
-      LogUtil.enterBlock(
-          "TranscriptionClientFactory.interceptCall, intercepted " + method.getFullMethodName());
-      ClientCall<ReqT, RespT> call = next.newCall(method, callOptions);
-
-      call =
-          new ForwardingClientCall.SimpleForwardingClientCall<ReqT, RespT>(call) {
-            @Override
-            public void start(Listener<RespT> responseListener, Metadata headers) {
-              if (!TextUtils.isEmpty(packageName)) {
-                LogUtil.i(
-                    "TranscriptionClientFactory.interceptCall",
-                    "attaching package name: " + packageName);
-                headers.put(ANDROID_PACKAGE_HEADER, packageName);
-              }
-              if (!TextUtils.isEmpty(cert)) {
-                LogUtil.i("TranscriptionClientFactory.interceptCall", "attaching android cert");
-                headers.put(ANDROID_CERT_HEADER, cert);
-              }
-              if (!TextUtils.isEmpty(apiKey)) {
-                LogUtil.i("TranscriptionClientFactory.interceptCall", "attaching API Key");
-                headers.put(API_KEY_HEADER, apiKey);
-              }
-              if (!TextUtils.isEmpty(authToken)) {
-                LogUtil.i("TranscriptionClientFactory.interceptCall", "attaching auth token");
-                headers.put(AUTHORIZATION_HEADER, "Bearer " + authToken);
-              }
-              super.start(responseListener, headers);
-            }
-          };
-      return call;
-    }
-  }
-}
diff --git a/java/com/android/voicemail/impl/transcribe/grpc/voicemail_transcription.proto b/java/com/android/voicemail/impl/transcribe/grpc/voicemail_transcription.proto
deleted file mode 100644
index 4b1e19b..0000000
--- a/java/com/android/voicemail/impl/transcribe/grpc/voicemail_transcription.proto
+++ /dev/null
@@ -1,44 +0,0 @@
-// LINT.IfChange
-
-syntax = "proto2";
-
-package google.internal.communications.voicemailtranscription.v1;
-
-option java_multiple_files = true;
-option java_package = "com.google.internal.communications.voicemailtranscription.v1";
-option optimize_for = LITE_RUNTIME;
-
-// Enum that specifies supported audio formats.
-enum AudioFormat {
-  // Default but invalid value.
-  AUDIO_FORMAT_UNSPECIFIED = 0;
-
-  // Adaptive Multi-Rate Narrowband, 8kHz sampling frequency.
-  // https://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_codec
-  AMR_NB_8KHZ = 1;
-}
-
-// Request for synchronous voicemail transcription.
-message TranscribeVoicemailRequest {
-  // Voicemail audio file containing the raw bytes we receive from the carrier.
-  optional bytes voicemail_data = 1;
-
-  // Audio format of the voicemail file.
-  optional AudioFormat audio_format = 2;
-}
-
-// Response for synchronous voicemail transcription.
-message TranscribeVoicemailResponse {
-  // The transcribed text of the voicemail.
-  optional string transcript = 1;
-}
-
-// RPC service for transcribing voicemails.
-service VoicemailTranscriptionService {
-  // Returns a transcript of the given voicemail.
-  rpc TranscribeVoicemail(TranscribeVoicemailRequest)
-      returns (TranscribeVoicemailResponse) {}
-}
-
-// LINT.ThenChange(//depot/google3/google/internal/communications/voicemailtranscription/v1/\
-//         voicemail_transcription.proto)
diff --git a/java/com/android/voicemail/AndroidManifest.xml b/java/com/android/voicemail/permissions.xml
similarity index 60%
rename from java/com/android/voicemail/AndroidManifest.xml
rename to java/com/android/voicemail/permissions.xml
index aedfd6f..bedf068 100644
--- a/java/com/android/voicemail/AndroidManifest.xml
+++ b/java/com/android/voicemail/permissions.xml
@@ -1,18 +1,3 @@
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.android.voicemailomtp">
 
