summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/dialpadview
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/dialpadview')
-rw-r--r--java/com/android/dialer/dialpadview/DialpadFragment.java1720
-rw-r--r--java/com/android/dialer/dialpadview/DialpadView.java9
-rw-r--r--java/com/android/dialer/dialpadview/PseudoEmergencyAnimator.java142
-rw-r--r--java/com/android/dialer/dialpadview/SmartDialCursorLoader.java183
-rw-r--r--java/com/android/dialer/dialpadview/SpecialCharSequenceMgr.java497
-rw-r--r--java/com/android/dialer/dialpadview/UnicodeDialerKeyListener.java56
-rw-r--r--java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_close_black_24dp.pngbin207 -> 0 bytes
-rwxr-xr-xjava/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialer_fork_add_call.pngbin0 -> 1649 bytes
-rwxr-xr-xjava/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialer_fork_current_call.pngbin0 -> 2305 bytes
-rwxr-xr-xjava/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialer_fork_tt_keypad.pngbin0 -> 2419 bytes
-rw-r--r--java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialpad_delete.pngbin805 -> 0 bytes
-rw-r--r--java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialpad_voicemail.pngbin623 -> 0 bytes
-rw-r--r--java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_overflow_menu.pngbin503 -> 0 bytes
-rw-r--r--java/com/android/dialer/dialpadview/res/drawable-mdpi/ic_dialer_fork_add_call.pngbin0 -> 1309 bytes
-rw-r--r--java/com/android/dialer/dialpadview/res/drawable-mdpi/ic_dialer_fork_current_call.pngbin0 -> 1581 bytes
-rw-r--r--java/com/android/dialer/dialpadview/res/drawable-mdpi/ic_dialer_fork_tt_keypad.pngbin0 -> 1586 bytes
-rw-r--r--java/com/android/dialer/dialpadview/res/drawable-xhdpi/ic_dialer_fork_add_call.pngbin0 -> 2150 bytes
-rw-r--r--java/com/android/dialer/dialpadview/res/drawable-xhdpi/ic_dialer_fork_current_call.pngbin0 -> 3154 bytes
-rw-r--r--java/com/android/dialer/dialpadview/res/drawable-xhdpi/ic_dialer_fork_tt_keypad.pngbin0 -> 3298 bytes
-rw-r--r--java/com/android/dialer/dialpadview/res/drawable-xxhdpi/ic_dialer_fork_add_call.pngbin0 -> 2583 bytes
-rw-r--r--java/com/android/dialer/dialpadview/res/drawable-xxhdpi/ic_dialer_fork_current_call.pngbin0 -> 3622 bytes
-rw-r--r--java/com/android/dialer/dialpadview/res/drawable-xxhdpi/ic_dialer_fork_tt_keypad.pngbin0 -> 3229 bytes
-rw-r--r--java/com/android/dialer/dialpadview/res/drawable/dialpad_scrim.xml7
-rw-r--r--java/com/android/dialer/dialpadview/res/drawable/ic_wifi_calling.xml29
-rw-r--r--java/com/android/dialer/dialpadview/res/drawable/shadow_fade_left.xml24
-rw-r--r--java/com/android/dialer/dialpadview/res/drawable/shadow_fade_up.xml24
-rw-r--r--java/com/android/dialer/dialpadview/res/layout-land/dialpad_fragment.xml82
-rw-r--r--java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_one.xml2
-rw-r--r--java/com/android/dialer/dialpadview/res/layout/dialpad_chooser_list_item.xml38
-rw-r--r--java/com/android/dialer/dialpadview/res/layout/dialpad_fragment.xml72
-rw-r--r--java/com/android/dialer/dialpadview/res/layout/dialpad_key_one.xml6
-rw-r--r--java/com/android/dialer/dialpadview/res/layout/dialpad_view_unthemed.xml201
-rw-r--r--java/com/android/dialer/dialpadview/res/menu/dialpad_options.xml30
-rw-r--r--java/com/android/dialer/dialpadview/res/values-af/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-am/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-ar/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-az/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-b+sr+Latn/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-be/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-bg/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-bn/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-bs/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-ca/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-cs/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-da/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-de/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-el/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-en-rAU/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-en-rGB/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-en-rIN/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-es-rUS/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-es/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-et/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-eu/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-fa/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-fi/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-fr-rCA/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-fr/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-gl/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-gu/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-hi/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-hr/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-hu/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-hy/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-in/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-is/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-it/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-iw/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-ja/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-ka/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-kk/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-km/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-kn/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-ko/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-ky/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-lo/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-lt/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-lv/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-mk/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-ml/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-mn/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-mr/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-ms/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-my/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-nb/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-ne/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-nl/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-no/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-pa/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-pl/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-pt-rBR/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-pt-rPT/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-pt/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-ro/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-ru/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-si/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-sk/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-sl/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-sq/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-sr/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-sv/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-sw/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-ta/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-te/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-th/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-tl/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-tr/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-uk/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-ur/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-uz/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-vi/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-zh-rCN/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-zh-rHK/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-zh-rTW/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values-zu/strings.xml14
-rw-r--r--java/com/android/dialer/dialpadview/res/values/colors.xml2
-rw-r--r--java/com/android/dialer/dialpadview/res/values/dimens.xml11
-rw-r--r--java/com/android/dialer/dialpadview/res/values/strings.xml59
118 files changed, 4218 insertions, 124 deletions
diff --git a/java/com/android/dialer/dialpadview/DialpadFragment.java b/java/com/android/dialer/dialpadview/DialpadFragment.java
new file mode 100644
index 000000000..c15014fd0
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/DialpadFragment.java
@@ -0,0 +1,1720 @@
+/*
+ * 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.dialer.dialpadview;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.app.Fragment;
+import android.content.BroadcastReceiver;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.res.Resources;
+import android.database.Cursor;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.media.AudioManager;
+import android.media.ToneGenerator;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Trace;
+import android.provider.Contacts.People;
+import android.provider.Contacts.Phones;
+import android.provider.Contacts.PhonesColumns;
+import android.provider.Settings;
+import android.support.annotation.Nullable;
+import android.support.annotation.VisibleForTesting;
+import android.support.design.widget.FloatingActionButton;
+import android.telecom.PhoneAccount;
+import android.telecom.PhoneAccountHandle;
+import android.telephony.PhoneNumberFormattingTextWatcher;
+import android.telephony.PhoneNumberUtils;
+import android.telephony.TelephonyManager;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.util.AttributeSet;
+import android.view.HapticFeedbackConstants;
+import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.BaseAdapter;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.PopupMenu;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import com.android.contacts.common.dialog.CallSubjectDialog;
+import com.android.contacts.common.util.StopWatch;
+import com.android.contacts.common.widget.FloatingActionButtonController;
+import com.android.dialer.animation.AnimUtils;
+import com.android.dialer.callintent.CallInitiationType;
+import com.android.dialer.callintent.CallIntentBuilder;
+import com.android.dialer.calllogutils.PhoneAccountUtils;
+import com.android.dialer.common.FragmentUtils;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.concurrent.DialerExecutor;
+import com.android.dialer.common.concurrent.DialerExecutor.Worker;
+import com.android.dialer.common.concurrent.DialerExecutors;
+import com.android.dialer.location.GeoUtil;
+import com.android.dialer.logging.UiAction;
+import com.android.dialer.oem.MotorolaUtils;
+import com.android.dialer.performancereport.PerformanceReport;
+import com.android.dialer.proguard.UsedByReflection;
+import com.android.dialer.telecom.TelecomUtil;
+import com.android.dialer.util.CallUtil;
+import com.android.dialer.util.DialerUtils;
+import com.android.dialer.util.PermissionsUtil;
+import java.util.HashSet;
+import java.util.List;
+
+/** Fragment that displays a twelve-key phone dialpad. */
+public class DialpadFragment extends Fragment
+ implements View.OnClickListener,
+ View.OnLongClickListener,
+ View.OnKeyListener,
+ AdapterView.OnItemClickListener,
+ TextWatcher,
+ PopupMenu.OnMenuItemClickListener,
+ DialpadKeyButton.OnPressedListener {
+
+ private static final String TAG = "DialpadFragment";
+ private static final String EMPTY_NUMBER = "";
+ private static final char PAUSE = ',';
+ private static final char WAIT = ';';
+ /** The length of DTMF tones in milliseconds */
+ private static final int TONE_LENGTH_MS = 150;
+
+ private static final int TONE_LENGTH_INFINITE = -1;
+ /** The DTMF tone volume relative to other sounds in the stream */
+ private static final int TONE_RELATIVE_VOLUME = 80;
+ /** Stream type used to play the DTMF tones off call, and mapped to the volume control keys */
+ private static final int DIAL_TONE_STREAM_TYPE = AudioManager.STREAM_DTMF;
+ /** Identifier for the "Add Call" intent extra. */
+ private static final String ADD_CALL_MODE_KEY = "add_call_mode";
+ /**
+ * Identifier for intent extra for sending an empty Flash message for CDMA networks. This message
+ * is used by the network to simulate a press/depress of the "hookswitch" of a landline phone. Aka
+ * "empty flash".
+ *
+ * <p>TODO: Using an intent extra to tell the phone to send this flash is a temporary measure. To
+ * be replaced with an Telephony/TelecomManager call in the future. TODO: Keep in sync with the
+ * string defined in OutgoingCallBroadcaster.java in Phone app until this is replaced with the
+ * Telephony/Telecom API.
+ */
+ private static final String EXTRA_SEND_EMPTY_FLASH = "com.android.phone.extra.SEND_EMPTY_FLASH";
+
+ private static final String PREF_DIGITS_FILLED_BY_INTENT = "pref_digits_filled_by_intent";
+ private final Object mToneGeneratorLock = new Object();
+ /** Set of dialpad keys that are currently being pressed */
+ private final HashSet<View> mPressedDialpadKeys = new HashSet<>(12);
+
+ private OnDialpadQueryChangedListener mDialpadQueryListener;
+ private DialpadView mDialpadView;
+ private EditText mDigits;
+ private int mDialpadSlideInDuration;
+ /** Remembers if we need to clear digits field when the screen is completely gone. */
+ private boolean mClearDigitsOnStop;
+
+ private View mOverflowMenuButton;
+ private PopupMenu mOverflowPopupMenu;
+ private View mDelete;
+ private ToneGenerator mToneGenerator;
+ private FloatingActionButtonController mFloatingActionButtonController;
+ private FloatingActionButton mFloatingActionButton;
+ private ListView mDialpadChooser;
+ private DialpadChooserAdapter mDialpadChooserAdapter;
+ /** Regular expression prohibiting manual phone call. Can be empty, which means "no rule". */
+ private String mProhibitedPhoneNumberRegexp;
+
+ private PseudoEmergencyAnimator mPseudoEmergencyAnimator;
+ private String mLastNumberDialed = EMPTY_NUMBER;
+
+ // determines if we want to playback local DTMF tones.
+ private boolean mDTMFToneEnabled;
+ private String mCurrentCountryIso;
+ private CallStateReceiver mCallStateReceiver;
+ private boolean mWasEmptyBeforeTextChange;
+ /**
+ * This field is set to true while processing an incoming DIAL intent, in order to make sure that
+ * SpecialCharSequenceMgr actions can be triggered by user input but *not* by a tel: URI passed by
+ * some other app. It will be set to false when all digits are cleared.
+ */
+ private boolean mDigitsFilledByIntent;
+
+ private boolean mStartedFromNewIntent = false;
+ private boolean mFirstLaunch = false;
+ private boolean mAnimate = false;
+
+ private DialerExecutor<String> initPhoneNumberFormattingTextWatcherExecutor;
+
+ /**
+ * Determines whether an add call operation is requested.
+ *
+ * @param intent The intent.
+ * @return {@literal true} if add call operation was requested. {@literal false} otherwise.
+ */
+ public static boolean isAddCallMode(Intent intent) {
+ if (intent == null) {
+ return false;
+ }
+ final String action = intent.getAction();
+ if (Intent.ACTION_DIAL.equals(action) || Intent.ACTION_VIEW.equals(action)) {
+ // see if we are "adding a call" from the InCallScreen; false by default.
+ return intent.getBooleanExtra(ADD_CALL_MODE_KEY, false);
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Format the provided string of digits into one that represents a properly formatted phone
+ * number.
+ *
+ * @param dialString String of characters to format
+ * @param normalizedNumber the E164 format number whose country code is used if the given
+ * phoneNumber doesn't have the country code.
+ * @param countryIso The country code representing the format to use if the provided normalized
+ * number is null or invalid.
+ * @return the provided string of digits as a formatted phone number, retaining any post-dial
+ * portion of the string.
+ */
+ @VisibleForTesting
+ static String getFormattedDigits(String dialString, String normalizedNumber, String countryIso) {
+ String number = PhoneNumberUtils.extractNetworkPortion(dialString);
+ // Also retrieve the post dial portion of the provided data, so that the entire dial
+ // string can be reconstituted later.
+ final String postDial = PhoneNumberUtils.extractPostDialPortion(dialString);
+
+ if (TextUtils.isEmpty(number)) {
+ return postDial;
+ }
+
+ number = PhoneNumberUtils.formatNumber(number, normalizedNumber, countryIso);
+
+ if (TextUtils.isEmpty(postDial)) {
+ return number;
+ }
+
+ return number.concat(postDial);
+ }
+
+ /**
+ * Returns true of the newDigit parameter can be added at the current selection point, otherwise
+ * returns false. Only prevents input of WAIT and PAUSE digits at an unsupported position. Fails
+ * early if start == -1 or start is larger than end.
+ */
+ @VisibleForTesting
+ /* package */ static boolean canAddDigit(CharSequence digits, int start, int end, char newDigit) {
+ if (newDigit != WAIT && newDigit != PAUSE) {
+ throw new IllegalArgumentException(
+ "Should not be called for anything other than PAUSE & WAIT");
+ }
+
+ // False if no selection, or selection is reversed (end < start)
+ if (start == -1 || end < start) {
+ return false;
+ }
+
+ // unsupported selection-out-of-bounds state
+ if (start > digits.length() || end > digits.length()) {
+ return false;
+ }
+
+ // Special digit cannot be the first digit
+ if (start == 0) {
+ return false;
+ }
+
+ if (newDigit == WAIT) {
+ // preceding char is ';' (WAIT)
+ if (digits.charAt(start - 1) == WAIT) {
+ return false;
+ }
+
+ // next char is ';' (WAIT)
+ if ((digits.length() > end) && (digits.charAt(end) == WAIT)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ private TelephonyManager getTelephonyManager() {
+ return (TelephonyManager) getActivity().getSystemService(Context.TELEPHONY_SERVICE);
+ }
+
+ @Override
+ public Context getContext() {
+ return getActivity();
+ }
+
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+ mWasEmptyBeforeTextChange = TextUtils.isEmpty(s);
+ }
+
+ @Override
+ public void onTextChanged(CharSequence input, int start, int before, int changeCount) {
+ if (mWasEmptyBeforeTextChange != TextUtils.isEmpty(input)) {
+ final Activity activity = getActivity();
+ if (activity != null) {
+ activity.invalidateOptionsMenu();
+ updateMenuOverflowButton(mWasEmptyBeforeTextChange);
+ }
+ }
+
+ // DTMF Tones do not need to be played here any longer -
+ // the DTMF dialer handles that functionality now.
+ }
+
+ @Override
+ public void afterTextChanged(Editable input) {
+ // When DTMF dialpad buttons are being pressed, we delay SpecialCharSequenceMgr sequence,
+ // since some of SpecialCharSequenceMgr's behavior is too abrupt for the "touch-down"
+ // behavior.
+ if (!mDigitsFilledByIntent
+ && SpecialCharSequenceMgr.handleChars(getActivity(), input.toString(), mDigits)) {
+ // A special sequence was entered, clear the digits
+ mDigits.getText().clear();
+ }
+
+ if (isDigitsEmpty()) {
+ mDigitsFilledByIntent = false;
+ mDigits.setCursorVisible(false);
+ }
+
+ if (mDialpadQueryListener != null) {
+ mDialpadQueryListener.onDialpadQueryChanged(mDigits.getText().toString());
+ }
+
+ updateDeleteButtonEnabledState();
+ }
+
+ @Override
+ public void onCreate(Bundle state) {
+ Trace.beginSection(TAG + " onCreate");
+ super.onCreate(state);
+
+ mFirstLaunch = state == null;
+
+ mCurrentCountryIso = GeoUtil.getCurrentCountryIso(getActivity());
+
+ mProhibitedPhoneNumberRegexp =
+ getResources().getString(R.string.config_prohibited_phone_number_regexp);
+
+ if (state != null) {
+ mDigitsFilledByIntent = state.getBoolean(PREF_DIGITS_FILLED_BY_INTENT);
+ }
+
+ mDialpadSlideInDuration = getResources().getInteger(R.integer.dialpad_slide_in_duration);
+
+ if (mCallStateReceiver == null) {
+ IntentFilter callStateIntentFilter =
+ new IntentFilter(TelephonyManager.ACTION_PHONE_STATE_CHANGED);
+ mCallStateReceiver = new CallStateReceiver();
+ getActivity().registerReceiver(mCallStateReceiver, callStateIntentFilter);
+ }
+
+ initPhoneNumberFormattingTextWatcherExecutor =
+ DialerExecutors.createUiTaskBuilder(
+ getFragmentManager(),
+ "DialpadFragment.initPhoneNumberFormattingTextWatcher",
+ new InitPhoneNumberFormattingTextWatcherWorker())
+ .onSuccess(watcher -> mDialpadView.getDigits().addTextChangedListener(watcher))
+ .build();
+ Trace.endSection();
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
+ Trace.beginSection(TAG + " onCreateView");
+ Trace.beginSection(TAG + " inflate view");
+ View fragmentView = inflater.inflate(R.layout.dialpad_fragment, container, false);
+ Trace.endSection();
+ Trace.beginSection(TAG + " buildLayer");
+ fragmentView.buildLayer();
+ Trace.endSection();
+
+ Trace.beginSection(TAG + " setup views");
+
+ mDialpadView = fragmentView.findViewById(R.id.dialpad_view);
+ mDialpadView.setCanDigitsBeEdited(true);
+ mDigits = mDialpadView.getDigits();
+ mDigits.setKeyListener(UnicodeDialerKeyListener.INSTANCE);
+ mDigits.setOnClickListener(this);
+ mDigits.setOnKeyListener(this);
+ mDigits.setOnLongClickListener(this);
+ mDigits.addTextChangedListener(this);
+ mDigits.setElegantTextHeight(false);
+
+ initPhoneNumberFormattingTextWatcherExecutor.executeSerial(
+ GeoUtil.getCurrentCountryIso(getActivity()));
+
+ // Check for the presence of the keypad
+ View oneButton = fragmentView.findViewById(R.id.one);
+ if (oneButton != null) {
+ configureKeypadListeners(fragmentView);
+ }
+
+ mDelete = mDialpadView.getDeleteButton();
+
+ if (mDelete != null) {
+ mDelete.setOnClickListener(this);
+ mDelete.setOnLongClickListener(this);
+ }
+
+ fragmentView
+ .findViewById(R.id.spacer)
+ .setOnTouchListener(
+ (v, event) -> {
+ if (isDigitsEmpty()) {
+ if (getActivity() != null) {
+ return ((HostInterface) getActivity()).onDialpadSpacerTouchWithEmptyQuery();
+ }
+ return true;
+ }
+ return false;
+ });
+
+ mDigits.setCursorVisible(false);
+
+ // Set up the "dialpad chooser" UI; see showDialpadChooser().
+ mDialpadChooser = fragmentView.findViewById(R.id.dialpadChooser);
+ mDialpadChooser.setOnItemClickListener(this);
+
+ mFloatingActionButton = fragmentView.findViewById(R.id.dialpad_floating_action_button);
+ mFloatingActionButton.setOnClickListener(this);
+ mFloatingActionButtonController =
+ new FloatingActionButtonController(getActivity(), mFloatingActionButton);
+ Trace.endSection();
+ Trace.endSection();
+ return fragmentView;
+ }
+
+ private boolean isLayoutReady() {
+ return mDigits != null;
+ }
+
+ public EditText getDigitsWidget() {
+ return mDigits;
+ }
+
+ /** @return true when {@link #mDigits} is actually filled by the Intent. */
+ private boolean fillDigitsIfNecessary(Intent intent) {
+ // Only fills digits from an intent if it is a new intent.
+ // Otherwise falls back to the previously used number.
+ if (!mFirstLaunch && !mStartedFromNewIntent) {
+ return false;
+ }
+
+ final String action = intent.getAction();
+ if (Intent.ACTION_DIAL.equals(action) || Intent.ACTION_VIEW.equals(action)) {
+ Uri uri = intent.getData();
+ if (uri != null) {
+ if (PhoneAccount.SCHEME_TEL.equals(uri.getScheme())) {
+ // Put the requested number into the input area
+ String data = uri.getSchemeSpecificPart();
+ // Remember it is filled via Intent.
+ mDigitsFilledByIntent = true;
+ final String converted =
+ PhoneNumberUtils.convertKeypadLettersToDigits(
+ PhoneNumberUtils.replaceUnicodeDigits(data));
+ setFormattedDigits(converted, null);
+ return true;
+ } else {
+ if (!PermissionsUtil.hasContactsReadPermissions(getActivity())) {
+ return false;
+ }
+ String type = intent.getType();
+ if (People.CONTENT_ITEM_TYPE.equals(type) || Phones.CONTENT_ITEM_TYPE.equals(type)) {
+ // Query the phone number
+ Cursor c =
+ getActivity()
+ .getContentResolver()
+ .query(
+ intent.getData(),
+ new String[] {PhonesColumns.NUMBER, PhonesColumns.NUMBER_KEY},
+ null,
+ null,
+ null);
+ if (c != null) {
+ try {
+ if (c.moveToFirst()) {
+ // Remember it is filled via Intent.
+ mDigitsFilledByIntent = true;
+ // Put the number into the input area
+ setFormattedDigits(c.getString(0), c.getString(1));
+ return true;
+ }
+ } finally {
+ c.close();
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Checks the given Intent and changes dialpad's UI state. For example, if the Intent requires the
+ * screen to enter "Add Call" mode, this method will show correct UI for the mode.
+ */
+ private void configureScreenFromIntent(Activity parent) {
+ // If we were not invoked with a DIAL intent
+ if (!Intent.ACTION_DIAL.equals(parent.getIntent().getAction())) {
+ setStartedFromNewIntent(false);
+ return;
+ }
+
+ // See if we were invoked with a DIAL intent. If we were, fill in the appropriate
+ // digits in the dialer field.
+ Intent intent = parent.getIntent();
+
+ if (!isLayoutReady()) {
+ // This happens typically when parent's Activity#onNewIntent() is called while
+ // Fragment#onCreateView() isn't called yet, and thus we cannot configure Views at
+ // this point. onViewCreate() should call this method after preparing layouts, so
+ // just ignore this call now.
+ LogUtil.i(
+ "DialpadFragment.configureScreenFromIntent",
+ "Screen configuration is requested before onCreateView() is called. Ignored");
+ return;
+ }
+
+ boolean needToShowDialpadChooser = false;
+
+ // Be sure *not* to show the dialpad chooser if this is an
+ // explicit "Add call" action, though.
+ final boolean isAddCallMode = isAddCallMode(intent);
+ if (!isAddCallMode) {
+
+ // Don't show the chooser when called via onNewIntent() and phone number is present.
+ // i.e. User clicks a telephone link from gmail for example.
+ // In this case, we want to show the dialpad with the phone number.
+ final boolean digitsFilled = fillDigitsIfNecessary(intent);
+ if (!(mStartedFromNewIntent && digitsFilled)) {
+
+ final String action = intent.getAction();
+ if (Intent.ACTION_DIAL.equals(action)
+ || Intent.ACTION_VIEW.equals(action)
+ || Intent.ACTION_MAIN.equals(action)) {
+ // If there's already an active call, bring up an intermediate UI to
+ // make the user confirm what they really want to do.
+ if (isPhoneInUse()) {
+ needToShowDialpadChooser = true;
+ }
+ }
+ }
+ }
+ showDialpadChooser(needToShowDialpadChooser);
+ setStartedFromNewIntent(false);
+ }
+
+ public void setStartedFromNewIntent(boolean value) {
+ mStartedFromNewIntent = value;
+ }
+
+ public void clearCallRateInformation() {
+ setCallRateInformation(null, null);
+ }
+
+ public void setCallRateInformation(String countryName, String displayRate) {
+ mDialpadView.setCallRateInformation(countryName, displayRate);
+ }
+
+ /** Sets formatted digits to digits field. */
+ private void setFormattedDigits(String data, String normalizedNumber) {
+ final String formatted = getFormattedDigits(data, normalizedNumber, mCurrentCountryIso);
+ if (!TextUtils.isEmpty(formatted)) {
+ Editable digits = mDigits.getText();
+ digits.replace(0, digits.length(), formatted);
+ // for some reason this isn't getting called in the digits.replace call above..
+ // but in any case, this will make sure the background drawable looks right
+ afterTextChanged(digits);
+ }
+ }
+
+ private void configureKeypadListeners(View fragmentView) {
+ final int[] buttonIds =
+ new int[] {
+ R.id.one,
+ R.id.two,
+ R.id.three,
+ R.id.four,
+ R.id.five,
+ R.id.six,
+ R.id.seven,
+ R.id.eight,
+ R.id.nine,
+ R.id.star,
+ R.id.zero,
+ R.id.pound
+ };
+
+ DialpadKeyButton dialpadKey;
+
+ for (int buttonId : buttonIds) {
+ dialpadKey = fragmentView.findViewById(buttonId);
+ dialpadKey.setOnPressedListener(this);
+ }
+
+ // Long-pressing one button will initiate Voicemail.
+ final DialpadKeyButton one = fragmentView.findViewById(R.id.one);
+ one.setOnLongClickListener(this);
+
+ // Long-pressing zero button will enter '+' instead.
+ final DialpadKeyButton zero = fragmentView.findViewById(R.id.zero);
+ zero.setOnLongClickListener(this);
+ }
+
+ @Override
+ public void onStart() {
+ LogUtil.d("DialpadFragment.onStart", "first launch: %b", mFirstLaunch);
+ Trace.beginSection(TAG + " onStart");
+ super.onStart();
+ // if the mToneGenerator creation fails, just continue without it. It is
+ // a local audio signal, and is not as important as the dtmf tone itself.
+ final long start = System.currentTimeMillis();
+ synchronized (mToneGeneratorLock) {
+ if (mToneGenerator == null) {
+ try {
+ mToneGenerator = new ToneGenerator(DIAL_TONE_STREAM_TYPE, TONE_RELATIVE_VOLUME);
+ } catch (RuntimeException e) {
+ LogUtil.e(
+ "DialpadFragment.onStart",
+ "Exception caught while creating local tone generator: " + e);
+ mToneGenerator = null;
+ }
+ }
+ }
+ final long total = System.currentTimeMillis() - start;
+ if (total > 50) {
+ LogUtil.i("DialpadFragment.onStart", "Time for ToneGenerator creation: " + total);
+ }
+ Trace.endSection();
+ }
+
+ @Override
+ public void onResume() {
+ LogUtil.d("DialpadFragment.onResume", "");
+ 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));
+
+ mDialpadQueryListener =
+ FragmentUtils.getParentUnsafe(this, OnDialpadQueryChangedListener.class);
+
+ final StopWatch stopWatch = StopWatch.start("Dialpad.onResume");
+
+ // Query the last dialed number. Do it first because hitting
+ // the DB is 'slow'. This call is asynchronous.
+ queryLastOutgoingCall();
+
+ stopWatch.lap("qloc");
+
+ final ContentResolver contentResolver = getActivity().getContentResolver();
+
+ // retrieve the DTMF tone play back setting.
+ mDTMFToneEnabled =
+ Settings.System.getInt(contentResolver, Settings.System.DTMF_TONE_WHEN_DIALING, 1) == 1;
+
+ stopWatch.lap("dtwd");
+
+ stopWatch.lap("hptc");
+
+ mPressedDialpadKeys.clear();
+
+ configureScreenFromIntent(getActivity());
+
+ stopWatch.lap("fdin");
+
+ if (!isPhoneInUse()) {
+ // A sanity-check: the "dialpad chooser" UI should not be visible if the phone is idle.
+ showDialpadChooser(false);
+ }
+
+ stopWatch.lap("hnt");
+
+ updateDeleteButtonEnabledState();
+
+ stopWatch.lap("bes");
+
+ stopWatch.stopAndLog(TAG, 50);
+
+ // Populate the overflow menu in onResume instead of onCreate, so that if the SMS activity
+ // is disabled while Dialer is paused, the "Send a text message" option can be correctly
+ // removed when resumed.
+ mOverflowMenuButton = mDialpadView.getOverflowMenuButton();
+ mOverflowPopupMenu = buildOptionsMenu(mOverflowMenuButton);
+ mOverflowMenuButton.setOnTouchListener(mOverflowPopupMenu.getDragToOpenListener());
+ mOverflowMenuButton.setOnClickListener(this);
+ mOverflowMenuButton.setVisibility(isDigitsEmpty() ? View.INVISIBLE : View.VISIBLE);
+
+ if (mFirstLaunch) {
+ // The onHiddenChanged callback does not get called the first time the fragment is
+ // attached, so call it ourselves here.
+ onHiddenChanged(false);
+ }
+
+ mFirstLaunch = false;
+ Trace.endSection();
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+
+ // Make sure we don't leave this activity with a tone still playing.
+ stopTone();
+ mPressedDialpadKeys.clear();
+
+ // TODO: I wonder if we should not check if the AsyncTask that
+ // lookup the last dialed number has completed.
+ mLastNumberDialed = EMPTY_NUMBER; // Since we are going to query again, free stale number.
+
+ SpecialCharSequenceMgr.cleanup();
+ mOverflowPopupMenu.dismiss();
+ }
+
+ @Override
+ public void onStop() {
+ super.onStop();
+
+ synchronized (mToneGeneratorLock) {
+ if (mToneGenerator != null) {
+ mToneGenerator.release();
+ mToneGenerator = null;
+ }
+ }
+
+ if (mClearDigitsOnStop) {
+ mClearDigitsOnStop = false;
+ clearDialpad();
+ }
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ outState.putBoolean(PREF_DIGITS_FILLED_BY_INTENT, mDigitsFilledByIntent);
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ if (mPseudoEmergencyAnimator != null) {
+ mPseudoEmergencyAnimator.destroy();
+ mPseudoEmergencyAnimator = null;
+ }
+ getActivity().unregisterReceiver(mCallStateReceiver);
+ }
+
+ private void keyPressed(int keyCode) {
+ if (getView() == null || getView().getTranslationY() != 0) {
+ return;
+ }
+ switch (keyCode) {
+ case KeyEvent.KEYCODE_1:
+ playTone(ToneGenerator.TONE_DTMF_1, TONE_LENGTH_INFINITE);
+ break;
+ case KeyEvent.KEYCODE_2:
+ playTone(ToneGenerator.TONE_DTMF_2, TONE_LENGTH_INFINITE);
+ break;
+ case KeyEvent.KEYCODE_3:
+ playTone(ToneGenerator.TONE_DTMF_3, TONE_LENGTH_INFINITE);
+ break;
+ case KeyEvent.KEYCODE_4:
+ playTone(ToneGenerator.TONE_DTMF_4, TONE_LENGTH_INFINITE);
+ break;
+ case KeyEvent.KEYCODE_5:
+ playTone(ToneGenerator.TONE_DTMF_5, TONE_LENGTH_INFINITE);
+ break;
+ case KeyEvent.KEYCODE_6:
+ playTone(ToneGenerator.TONE_DTMF_6, TONE_LENGTH_INFINITE);
+ break;
+ case KeyEvent.KEYCODE_7:
+ playTone(ToneGenerator.TONE_DTMF_7, TONE_LENGTH_INFINITE);
+ break;
+ case KeyEvent.KEYCODE_8:
+ playTone(ToneGenerator.TONE_DTMF_8, TONE_LENGTH_INFINITE);
+ break;
+ case KeyEvent.KEYCODE_9:
+ playTone(ToneGenerator.TONE_DTMF_9, TONE_LENGTH_INFINITE);
+ break;
+ case KeyEvent.KEYCODE_0:
+ playTone(ToneGenerator.TONE_DTMF_0, TONE_LENGTH_INFINITE);
+ break;
+ case KeyEvent.KEYCODE_POUND:
+ playTone(ToneGenerator.TONE_DTMF_P, TONE_LENGTH_INFINITE);
+ break;
+ case KeyEvent.KEYCODE_STAR:
+ playTone(ToneGenerator.TONE_DTMF_S, TONE_LENGTH_INFINITE);
+ break;
+ default:
+ break;
+ }
+
+ getView().performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
+ KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode);
+ mDigits.onKeyDown(keyCode, event);
+
+ // If the cursor is at the end of the text we hide it.
+ final int length = mDigits.length();
+ if (length == mDigits.getSelectionStart() && length == mDigits.getSelectionEnd()) {
+ mDigits.setCursorVisible(false);
+ }
+ }
+
+ @Override
+ public boolean onKey(View view, int keyCode, KeyEvent event) {
+ if (view.getId() == R.id.digits) {
+ if (keyCode == KeyEvent.KEYCODE_ENTER) {
+ handleDialButtonPressed();
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * When a key is pressed, we start playing DTMF tone, do vibration, and enter the digit
+ * immediately. When a key is released, we stop the tone. Note that the "key press" event will be
+ * delivered by the system with certain amount of delay, it won't be synced with user's actual
+ * "touch-down" behavior.
+ */
+ @Override
+ public void onPressed(View view, boolean pressed) {
+ if (pressed) {
+ int resId = view.getId();
+ if (resId == R.id.one) {
+ keyPressed(KeyEvent.KEYCODE_1);
+ } else if (resId == R.id.two) {
+ keyPressed(KeyEvent.KEYCODE_2);
+ } else if (resId == R.id.three) {
+ keyPressed(KeyEvent.KEYCODE_3);
+ } else if (resId == R.id.four) {
+ keyPressed(KeyEvent.KEYCODE_4);
+ } else if (resId == R.id.five) {
+ keyPressed(KeyEvent.KEYCODE_5);
+ } else if (resId == R.id.six) {
+ keyPressed(KeyEvent.KEYCODE_6);
+ } else if (resId == R.id.seven) {
+ keyPressed(KeyEvent.KEYCODE_7);
+ } else if (resId == R.id.eight) {
+ keyPressed(KeyEvent.KEYCODE_8);
+ } else if (resId == R.id.nine) {
+ keyPressed(KeyEvent.KEYCODE_9);
+ } else if (resId == R.id.zero) {
+ keyPressed(KeyEvent.KEYCODE_0);
+ } else if (resId == R.id.pound) {
+ keyPressed(KeyEvent.KEYCODE_POUND);
+ } else if (resId == R.id.star) {
+ keyPressed(KeyEvent.KEYCODE_STAR);
+ } else {
+ LogUtil.e(
+ "DialpadFragment.onPressed", "Unexpected onTouch(ACTION_DOWN) event from: " + view);
+ }
+ mPressedDialpadKeys.add(view);
+ } else {
+ mPressedDialpadKeys.remove(view);
+ if (mPressedDialpadKeys.isEmpty()) {
+ stopTone();
+ }
+ }
+ }
+
+ /**
+ * Called by the containing Activity to tell this Fragment to build an overflow options menu for
+ * display by the container when appropriate.
+ *
+ * @param invoker the View that invoked the options menu, to act as an anchor location.
+ */
+ private PopupMenu buildOptionsMenu(View invoker) {
+ final PopupMenu popupMenu =
+ new PopupMenu(getActivity(), invoker) {
+ @Override
+ public void show() {
+ final Menu menu = getMenu();
+
+ boolean enable = !isDigitsEmpty();
+ for (int i = 0; i < menu.size(); i++) {
+ MenuItem item = menu.getItem(i);
+ item.setEnabled(enable);
+ if (item.getItemId() == R.id.menu_call_with_note) {
+ item.setVisible(CallUtil.isCallWithSubjectSupported(getContext()));
+ }
+ }
+ super.show();
+ }
+ };
+ popupMenu.inflate(R.menu.dialpad_options);
+ popupMenu.setOnMenuItemClickListener(this);
+ return popupMenu;
+ }
+
+ @Override
+ public void onClick(View view) {
+ int resId = view.getId();
+ if (resId == R.id.dialpad_floating_action_button) {
+ view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
+ handleDialButtonPressed();
+ } else if (resId == R.id.deleteButton) {
+ keyPressed(KeyEvent.KEYCODE_DEL);
+ } else if (resId == R.id.digits) {
+ if (!isDigitsEmpty()) {
+ mDigits.setCursorVisible(true);
+ }
+ } else if (resId == R.id.dialpad_overflow) {
+ mOverflowPopupMenu.show();
+ } else {
+ LogUtil.w("DialpadFragment.onClick", "Unexpected event from: " + view);
+ }
+ }
+
+ @Override
+ public boolean onLongClick(View view) {
+ final Editable digits = mDigits.getText();
+ final int id = view.getId();
+ if (id == R.id.deleteButton) {
+ digits.clear();
+ return true;
+ } else if (id == R.id.one) {
+ if (isDigitsEmpty() || TextUtils.equals(mDigits.getText(), "1")) {
+ // We'll try to initiate voicemail and thus we want to remove irrelevant string.
+ removePreviousDigitIfPossible('1');
+
+ List<PhoneAccountHandle> subscriptionAccountHandles =
+ PhoneAccountUtils.getSubscriptionPhoneAccounts(getActivity());
+ boolean hasUserSelectedDefault =
+ subscriptionAccountHandles.contains(
+ TelecomUtil.getDefaultOutgoingPhoneAccount(
+ getActivity(), PhoneAccount.SCHEME_VOICEMAIL));
+ boolean needsAccountDisambiguation =
+ subscriptionAccountHandles.size() > 1 && !hasUserSelectedDefault;
+
+ if (needsAccountDisambiguation || isVoicemailAvailable()) {
+ // On a multi-SIM phone, if the user has not selected a default
+ // subscription, initiate a call to voicemail so they can select an account
+ // from the "Call with" dialog.
+ callVoicemail();
+ } else if (getActivity() != null) {
+ // Voicemail is unavailable maybe because Airplane mode is turned on.
+ // Check the current status and show the most appropriate error message.
+ final boolean isAirplaneModeOn =
+ Settings.System.getInt(
+ getActivity().getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0)
+ != 0;
+ if (isAirplaneModeOn) {
+ DialogFragment dialogFragment =
+ ErrorDialogFragment.newInstance(R.string.dialog_voicemail_airplane_mode_message);
+ dialogFragment.show(getFragmentManager(), "voicemail_request_during_airplane_mode");
+ } else {
+ DialogFragment dialogFragment =
+ ErrorDialogFragment.newInstance(R.string.dialog_voicemail_not_ready_message);
+ dialogFragment.show(getFragmentManager(), "voicemail_not_ready");
+ }
+ }
+ return true;
+ }
+ return false;
+ } else if (id == R.id.zero) {
+ if (mPressedDialpadKeys.contains(view)) {
+ // If the zero key is currently pressed, then the long press occurred by touch
+ // (and not via other means like certain accessibility input methods).
+ // Remove the '0' that was input when the key was first pressed.
+ removePreviousDigitIfPossible('0');
+ }
+ keyPressed(KeyEvent.KEYCODE_PLUS);
+ stopTone();
+ mPressedDialpadKeys.remove(view);
+ return true;
+ } else if (id == R.id.digits) {
+ mDigits.setCursorVisible(true);
+ return false;
+ }
+ return false;
+ }
+
+ /**
+ * Remove the digit just before the current position of the cursor, iff the following conditions
+ * are true: 1) The cursor is not positioned at index 0. 2) The digit before the current cursor
+ * position matches the current digit.
+ *
+ * @param digit to remove from the digits view.
+ */
+ private void removePreviousDigitIfPossible(char digit) {
+ final int currentPosition = mDigits.getSelectionStart();
+ if (currentPosition > 0 && digit == mDigits.getText().charAt(currentPosition - 1)) {
+ mDigits.setSelection(currentPosition);
+ mDigits.getText().delete(currentPosition - 1, currentPosition);
+ }
+ }
+
+ public void callVoicemail() {
+ DialerUtils.startActivityWithErrorToast(
+ getActivity(),
+ new CallIntentBuilder(CallUtil.getVoicemailUri(), CallInitiationType.Type.DIALPAD).build());
+ hideAndClearDialpad(false);
+ }
+
+ private void hideAndClearDialpad(boolean animate) {
+ FragmentUtils.getParentUnsafe(this, DialpadListener.class).hideDialpadFragment(animate, true);
+ }
+
+ /**
+ * In most cases, when the dial button is pressed, there is a number in digits area. Pack it in
+ * the intent, start the outgoing call broadcast as a separate task and finish this activity.
+ *
+ * <p>When there is no digit and the phone is CDMA and off hook, we're sending a blank flash for
+ * CDMA. CDMA networks use Flash messages when special processing needs to be done, mainly for
+ * 3-way or call waiting scenarios. Presumably, here we're in a special 3-way scenario where the
+ * network needs a blank flash before being able to add the new participant. (This is not the case
+ * with all 3-way calls, just certain CDMA infrastructures.)
+ *
+ * <p>Otherwise, there is no digit, display the last dialed number. Don't finish since the user
+ * may want to edit it. The user needs to press the dial button again, to dial it (general case
+ * described above).
+ */
+ private void handleDialButtonPressed() {
+ if (isDigitsEmpty()) { // No number entered.
+ // No real call made, so treat it as a click
+ PerformanceReport.recordClick(UiAction.Type.PRESS_CALL_BUTTON_WITHOUT_CALLING);
+ handleDialButtonClickWithEmptyDigits();
+ } else {
+ final String number = mDigits.getText().toString();
+
+ // "persist.radio.otaspdial" is a temporary hack needed for one carrier's automated
+ // test equipment.
+ // TODO: clean it up.
+ if (number != null
+ && !TextUtils.isEmpty(mProhibitedPhoneNumberRegexp)
+ && number.matches(mProhibitedPhoneNumberRegexp)) {
+ PerformanceReport.recordClick(UiAction.Type.PRESS_CALL_BUTTON_WITHOUT_CALLING);
+ LogUtil.i(
+ "DialpadFragment.handleDialButtonPressed",
+ "The phone number is prohibited explicitly by a rule.");
+ if (getActivity() != null) {
+ DialogFragment dialogFragment =
+ ErrorDialogFragment.newInstance(R.string.dialog_phone_call_prohibited_message);
+ dialogFragment.show(getFragmentManager(), "phone_prohibited_dialog");
+ }
+
+ // Clear the digits just in case.
+ clearDialpad();
+ } else {
+ final Intent intent =
+ new CallIntentBuilder(number, CallInitiationType.Type.DIALPAD).build();
+ DialerUtils.startActivityWithErrorToast(getActivity(), intent);
+ hideAndClearDialpad(false);
+ }
+ }
+ }
+
+ public void clearDialpad() {
+ if (mDigits != null) {
+ mDigits.getText().clear();
+ }
+ }
+
+ private void handleDialButtonClickWithEmptyDigits() {
+ if (phoneIsCdma() && isPhoneInUse()) {
+ // TODO: Move this logic into services/Telephony
+ //
+ // This is really CDMA specific. On GSM is it possible
+ // to be off hook and wanted to add a 3rd party using
+ // the redial feature.
+ startActivity(newFlashIntent());
+ } else {
+ if (!TextUtils.isEmpty(mLastNumberDialed)) {
+ // Dialpad will be filled with last called number,
+ // but we don't want to record it as user action
+ PerformanceReport.setIgnoreActionOnce(UiAction.Type.TEXT_CHANGE_WITH_INPUT);
+
+ // Recall the last number dialed.
+ mDigits.setText(mLastNumberDialed);
+
+ // ...and move the cursor to the end of the digits string,
+ // so you'll be able to delete digits using the Delete
+ // button (just as if you had typed the number manually.)
+ //
+ // Note we use mDigits.getText().length() here, not
+ // mLastNumberDialed.length(), since the EditText widget now
+ // contains a *formatted* version of mLastNumberDialed (due to
+ // mTextWatcher) and its length may have changed.
+ mDigits.setSelection(mDigits.getText().length());
+ } else {
+ // There's no "last number dialed" or the
+ // background query is still running. There's
+ // nothing useful for the Dial button to do in
+ // this case. Note: with a soft dial button, this
+ // can never happens since the dial button is
+ // disabled under these conditons.
+ playTone(ToneGenerator.TONE_PROP_NACK);
+ }
+ }
+ }
+
+ /** Plays the specified tone for TONE_LENGTH_MS milliseconds. */
+ private void playTone(int tone) {
+ playTone(tone, TONE_LENGTH_MS);
+ }
+
+ /**
+ * Play the specified tone for the specified milliseconds
+ *
+ * <p>The tone is played locally, using the audio stream for phone calls. Tones are played only if
+ * the "Audible touch tones" user preference is checked, and are NOT played if the device is in
+ * silent mode.
+ *
+ * <p>The tone length can be -1, meaning "keep playing the tone." If the caller does so, it should
+ * call stopTone() afterward.
+ *
+ * @param tone a tone code from {@link ToneGenerator}
+ * @param durationMs tone length.
+ */
+ private void playTone(int tone, int durationMs) {
+ // if local tone playback is disabled, just return.
+ if (!mDTMFToneEnabled) {
+ return;
+ }
+
+ // Also do nothing if the phone is in silent mode.
+ // We need to re-check the ringer mode for *every* playTone()
+ // call, rather than keeping a local flag that's updated in
+ // onResume(), since it's possible to toggle silent mode without
+ // leaving the current activity (via the ENDCALL-longpress menu.)
+ AudioManager audioManager =
+ (AudioManager) getActivity().getSystemService(Context.AUDIO_SERVICE);
+ int ringerMode = audioManager.getRingerMode();
+ if ((ringerMode == AudioManager.RINGER_MODE_SILENT)
+ || (ringerMode == AudioManager.RINGER_MODE_VIBRATE)) {
+ return;
+ }
+
+ synchronized (mToneGeneratorLock) {
+ if (mToneGenerator == null) {
+ LogUtil.w("DialpadFragment.playTone", "mToneGenerator == null, tone: " + tone);
+ return;
+ }
+
+ // Start the new tone (will stop any playing tone)
+ mToneGenerator.startTone(tone, durationMs);
+ }
+ }
+
+ /** Stop the tone if it is played. */
+ private void stopTone() {
+ // if local tone playback is disabled, just return.
+ if (!mDTMFToneEnabled) {
+ return;
+ }
+ synchronized (mToneGeneratorLock) {
+ if (mToneGenerator == null) {
+ LogUtil.w("DialpadFragment.stopTone", "mToneGenerator == null");
+ return;
+ }
+ mToneGenerator.stopTone();
+ }
+ }
+
+ /**
+ * Brings up the "dialpad chooser" UI in place of the usual Dialer elements (the textfield/button
+ * and the dialpad underneath).
+ *
+ * <p>We show this UI if the user brings up the Dialer while a call is already in progress, since
+ * there's a good chance we got here accidentally (and the user really wanted the in-call dialpad
+ * instead). So in this situation we display an intermediate UI that lets the user explicitly
+ * choose between the in-call dialpad ("Use touch tone keypad") and the regular Dialer ("Add
+ * call"). (Or, the option "Return to call in progress" just goes back to the in-call UI with no
+ * dialpad at all.)
+ *
+ * @param enabled If true, show the "dialpad chooser" instead of the regular Dialer UI
+ */
+ private void showDialpadChooser(boolean enabled) {
+ if (getActivity() == null) {
+ return;
+ }
+ // Check if onCreateView() is already called by checking one of View objects.
+ if (!isLayoutReady()) {
+ return;
+ }
+
+ if (enabled) {
+ LogUtil.i("DialpadFragment.showDialpadChooser", "Showing dialpad chooser!");
+ if (mDialpadView != null) {
+ mDialpadView.setVisibility(View.GONE);
+ }
+
+ if (mOverflowPopupMenu != null) {
+ mOverflowPopupMenu.dismiss();
+ }
+
+ mFloatingActionButtonController.setVisible(false);
+ mDialpadChooser.setVisibility(View.VISIBLE);
+
+ // Instantiate the DialpadChooserAdapter and hook it up to the
+ // ListView. We do this only once.
+ if (mDialpadChooserAdapter == null) {
+ mDialpadChooserAdapter = new DialpadChooserAdapter(getActivity());
+ }
+ mDialpadChooser.setAdapter(mDialpadChooserAdapter);
+ } else {
+ LogUtil.i("DialpadFragment.showDialpadChooser", "Displaying normal Dialer UI.");
+ if (mDialpadView != null) {
+ mDialpadView.setVisibility(View.VISIBLE);
+ } else {
+ mDigits.setVisibility(View.VISIBLE);
+ }
+
+ // mFloatingActionButtonController must also be 'scaled in', in order to be visible after
+ // 'scaleOut()' hidden method.
+ if (!mFloatingActionButtonController.isVisible()) {
+ // Just call 'scaleIn()' method if the mFloatingActionButtonController was not already
+ // previously visible.
+ mFloatingActionButtonController.scaleIn(0);
+ }
+ mDialpadChooser.setVisibility(View.GONE);
+ }
+ }
+
+ /** @return true if we're currently showing the "dialpad chooser" UI. */
+ private boolean isDialpadChooserVisible() {
+ return mDialpadChooser.getVisibility() == View.VISIBLE;
+ }
+
+ /** Handle clicks from the dialpad chooser. */
+ @Override
+ public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
+ DialpadChooserAdapter.ChoiceItem item =
+ (DialpadChooserAdapter.ChoiceItem) parent.getItemAtPosition(position);
+ int itemId = item.id;
+ if (itemId == DialpadChooserAdapter.DIALPAD_CHOICE_USE_DTMF_DIALPAD) {
+ // Fire off an intent to go back to the in-call UI
+ // with the dialpad visible.
+ returnToInCallScreen(true);
+ } else if (itemId == DialpadChooserAdapter.DIALPAD_CHOICE_RETURN_TO_CALL) {
+ // Fire off an intent to go back to the in-call UI
+ // (with the dialpad hidden).
+ returnToInCallScreen(false);
+ } else if (itemId == DialpadChooserAdapter.DIALPAD_CHOICE_ADD_NEW_CALL) {
+ // Ok, guess the user really did want to be here (in the
+ // regular Dialer) after all. Bring back the normal Dialer UI.
+ showDialpadChooser(false);
+ } else {
+ LogUtil.w("DialpadFragment.onItemClick", "Unexpected itemId: " + itemId);
+ }
+ }
+
+ /**
+ * Returns to the in-call UI (where there's presumably a call in progress) in response to the user
+ * selecting "use touch tone keypad" or "return to call" from the dialpad chooser.
+ */
+ private void returnToInCallScreen(boolean showDialpad) {
+ TelecomUtil.showInCallScreen(getActivity(), showDialpad);
+
+ // Finally, finish() ourselves so that we don't stay on the
+ // activity stack.
+ // Note that we do this whether or not the showCallScreenWithDialpad()
+ // call above had any effect or not! (That call is a no-op if the
+ // phone is idle, which can happen if the current call ends while
+ // the dialpad chooser is up. In this case we can't show the
+ // InCallScreen, and there's no point staying here in the Dialer,
+ // so we just take the user back where he came from...)
+ getActivity().finish();
+ }
+
+ /**
+ * @return true if the phone is "in use", meaning that at least one line is active (ie. off hook
+ * or ringing or dialing, or on hold).
+ */
+ private boolean isPhoneInUse() {
+ return getContext() != null && TelecomUtil.isInCall(getContext());
+ }
+
+ /** @return true if the phone is a CDMA phone type */
+ private boolean phoneIsCdma() {
+ return getTelephonyManager().getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA;
+ }
+
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ int resId = item.getItemId();
+ if (resId == R.id.menu_2s_pause) {
+ updateDialString(PAUSE);
+ return true;
+ } else if (resId == R.id.menu_add_wait) {
+ updateDialString(WAIT);
+ return true;
+ } else if (resId == R.id.menu_call_with_note) {
+ CallSubjectDialog.start(getActivity(), mDigits.getText().toString());
+ hideAndClearDialpad(false);
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Updates the dial string (mDigits) after inserting a Pause character (,) or Wait character (;).
+ */
+ private void updateDialString(char newDigit) {
+ if (newDigit != WAIT && newDigit != PAUSE) {
+ throw new IllegalArgumentException("Not expected for anything other than PAUSE & WAIT");
+ }
+
+ int selectionStart;
+ int selectionEnd;
+
+ // SpannableStringBuilder editable_text = new SpannableStringBuilder(mDigits.getText());
+ int anchor = mDigits.getSelectionStart();
+ int point = mDigits.getSelectionEnd();
+
+ selectionStart = Math.min(anchor, point);
+ selectionEnd = Math.max(anchor, point);
+
+ if (selectionStart == -1) {
+ selectionStart = selectionEnd = mDigits.length();
+ }
+
+ Editable digits = mDigits.getText();
+
+ if (canAddDigit(digits, selectionStart, selectionEnd, newDigit)) {
+ digits.replace(selectionStart, selectionEnd, Character.toString(newDigit));
+
+ if (selectionStart != selectionEnd) {
+ // Unselect: back to a regular cursor, just pass the character inserted.
+ mDigits.setSelection(selectionStart + 1);
+ }
+ }
+ }
+
+ /** Update the enabledness of the "Dial" and "Backspace" buttons if applicable. */
+ private void updateDeleteButtonEnabledState() {
+ if (getActivity() == null) {
+ return;
+ }
+ final boolean digitsNotEmpty = !isDigitsEmpty();
+ mDelete.setEnabled(digitsNotEmpty);
+ }
+
+ /**
+ * Handle transitions for the menu button depending on the state of the digits edit text.
+ * Transition out when going from digits to no digits and transition in when the first digit is
+ * pressed.
+ *
+ * @param transitionIn True if transitioning in, False if transitioning out
+ */
+ private void updateMenuOverflowButton(boolean transitionIn) {
+ mOverflowMenuButton = mDialpadView.getOverflowMenuButton();
+ if (transitionIn) {
+ AnimUtils.fadeIn(mOverflowMenuButton, AnimUtils.DEFAULT_DURATION);
+ } else {
+ AnimUtils.fadeOut(mOverflowMenuButton, AnimUtils.DEFAULT_DURATION);
+ }
+ }
+
+ /**
+ * Check if voicemail is enabled/accessible.
+ *
+ * @return true if voicemail is enabled and accessible. Note that this can be false "temporarily"
+ * after the app boot.
+ */
+ private boolean isVoicemailAvailable() {
+ try {
+ PhoneAccountHandle defaultUserSelectedAccount =
+ TelecomUtil.getDefaultOutgoingPhoneAccount(getActivity(), PhoneAccount.SCHEME_VOICEMAIL);
+ if (defaultUserSelectedAccount == null) {
+ // In a single-SIM phone, there is no default outgoing phone account selected by
+ // the user, so just call TelephonyManager#getVoicemailNumber directly.
+ return !TextUtils.isEmpty(getTelephonyManager().getVoiceMailNumber());
+ } else {
+ return !TextUtils.isEmpty(
+ TelecomUtil.getVoicemailNumber(getActivity(), defaultUserSelectedAccount));
+ }
+ } catch (SecurityException se) {
+ // Possibly no READ_PHONE_STATE privilege.
+ LogUtil.w(
+ "DialpadFragment.isVoicemailAvailable",
+ "SecurityException is thrown. Maybe privilege isn't sufficient.");
+ }
+ return false;
+ }
+
+ /** @return true if the widget with the phone number digits is empty. */
+ private boolean isDigitsEmpty() {
+ return mDigits.length() == 0;
+ }
+
+ /**
+ * Starts the asyn query to get the last dialed/outgoing number. When the background query
+ * finishes, mLastNumberDialed is set to the last dialed number or an empty string if none exists
+ * yet.
+ */
+ private void queryLastOutgoingCall() {
+ mLastNumberDialed = EMPTY_NUMBER;
+ if (!PermissionsUtil.hasCallLogReadPermissions(getContext())) {
+ return;
+ }
+ FragmentUtils.getParentUnsafe(this, DialpadListener.class)
+ .getLastOutgoingCall(
+ number -> {
+ // TODO: Filter out emergency numbers if the carrier does not want redial for these.
+
+ // If the fragment has already been detached since the last time we called
+ // queryLastOutgoingCall in onResume there is no point doing anything here.
+ if (getActivity() == null) {
+ return;
+ }
+ mLastNumberDialed = number;
+ updateDeleteButtonEnabledState();
+ });
+ }
+
+ private Intent newFlashIntent() {
+ Intent intent = new CallIntentBuilder(EMPTY_NUMBER, CallInitiationType.Type.DIALPAD).build();
+ intent.putExtra(EXTRA_SEND_EMPTY_FLASH, true);
+ return intent;
+ }
+
+ @Override
+ public void onHiddenChanged(boolean hidden) {
+ super.onHiddenChanged(hidden);
+ if (getActivity() == null || getView() == null) {
+ return;
+ }
+ final DialpadView dialpadView = getView().findViewById(R.id.dialpad_view);
+ if (!hidden && !isDialpadChooserVisible()) {
+ if (mAnimate) {
+ dialpadView.animateShow();
+ }
+ mFloatingActionButtonController.setVisible(false);
+ mFloatingActionButtonController.scaleIn(mAnimate ? mDialpadSlideInDuration : 0);
+ FragmentUtils.getParentUnsafe(this, DialpadListener.class).onDialpadShown();
+ mDigits.requestFocus();
+ }
+ if (hidden) {
+ if (mAnimate) {
+ mFloatingActionButtonController.scaleOut();
+ } else {
+ mFloatingActionButtonController.setVisible(false);
+ }
+ }
+ }
+
+ public boolean getAnimate() {
+ return mAnimate;
+ }
+
+ public void setAnimate(boolean value) {
+ mAnimate = value;
+ }
+
+ public void setYFraction(float yFraction) {
+ ((DialpadSlidingRelativeLayout) getView()).setYFraction(yFraction);
+ }
+
+ public int getDialpadHeight() {
+ if (mDialpadView == null) {
+ return 0;
+ }
+ return mDialpadView.getHeight();
+ }
+
+ public void process_quote_emergency_unquote(String query) {
+ if (PseudoEmergencyAnimator.PSEUDO_EMERGENCY_NUMBER.equals(query)) {
+ if (mPseudoEmergencyAnimator == null) {
+ mPseudoEmergencyAnimator =
+ new PseudoEmergencyAnimator(
+ new PseudoEmergencyAnimator.ViewProvider() {
+ @Override
+ public View getFab() {
+ return mFloatingActionButton;
+ }
+
+ @Override
+ public Context getContext() {
+ return DialpadFragment.this.getContext();
+ }
+ });
+ }
+ mPseudoEmergencyAnimator.start();
+ } else {
+ if (mPseudoEmergencyAnimator != null) {
+ mPseudoEmergencyAnimator.end();
+ }
+ }
+ }
+
+ public interface OnDialpadQueryChangedListener {
+
+ void onDialpadQueryChanged(String query);
+ }
+
+ public interface HostInterface {
+
+ /**
+ * Notifies the parent activity that the space above the dialpad has been tapped with no query
+ * in the dialpad present. In most situations this will cause the dialpad to be dismissed,
+ * unless there happens to be content showing.
+ */
+ boolean onDialpadSpacerTouchWithEmptyQuery();
+ }
+
+ /**
+ * LinearLayout with getter and setter methods for the translationY property using floats, for
+ * animation purposes.
+ */
+ public static class DialpadSlidingRelativeLayout extends RelativeLayout {
+
+ public DialpadSlidingRelativeLayout(Context context) {
+ super(context);
+ }
+
+ public DialpadSlidingRelativeLayout(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public DialpadSlidingRelativeLayout(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ }
+
+ @UsedByReflection(value = "dialpad_fragment.xml")
+ public float getYFraction() {
+ final int height = getHeight();
+ if (height == 0) {
+ return 0;
+ }
+ return getTranslationY() / height;
+ }
+
+ @UsedByReflection(value = "dialpad_fragment.xml")
+ public void setYFraction(float yFraction) {
+ setTranslationY(yFraction * getHeight());
+ }
+ }
+
+ public static class ErrorDialogFragment extends DialogFragment {
+
+ private static final String ARG_TITLE_RES_ID = "argTitleResId";
+ private static final String ARG_MESSAGE_RES_ID = "argMessageResId";
+ private int mTitleResId;
+ private int mMessageResId;
+
+ public static ErrorDialogFragment newInstance(int messageResId) {
+ return newInstance(0, messageResId);
+ }
+
+ public static ErrorDialogFragment newInstance(int titleResId, int messageResId) {
+ final ErrorDialogFragment fragment = new ErrorDialogFragment();
+ final Bundle args = new Bundle();
+ args.putInt(ARG_TITLE_RES_ID, titleResId);
+ args.putInt(ARG_MESSAGE_RES_ID, messageResId);
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ mTitleResId = getArguments().getInt(ARG_TITLE_RES_ID);
+ mMessageResId = getArguments().getInt(ARG_MESSAGE_RES_ID);
+ }
+
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+ if (mTitleResId != 0) {
+ builder.setTitle(mTitleResId);
+ }
+ if (mMessageResId != 0) {
+ builder.setMessage(mMessageResId);
+ }
+ builder.setPositiveButton(android.R.string.ok, (dialog, which) -> dismiss());
+ return builder.create();
+ }
+ }
+
+ /**
+ * Simple list adapter, binding to an icon + text label for each item in the "dialpad chooser"
+ * list.
+ */
+ private static class DialpadChooserAdapter extends BaseAdapter {
+
+ // IDs for the possible "choices":
+ static final int DIALPAD_CHOICE_USE_DTMF_DIALPAD = 101;
+ static final int DIALPAD_CHOICE_RETURN_TO_CALL = 102;
+ static final int DIALPAD_CHOICE_ADD_NEW_CALL = 103;
+ private static final int NUM_ITEMS = 3;
+ private LayoutInflater mInflater;
+ private ChoiceItem[] mChoiceItems = new ChoiceItem[NUM_ITEMS];
+
+ DialpadChooserAdapter(Context context) {
+ // Cache the LayoutInflate to avoid asking for a new one each time.
+ mInflater = LayoutInflater.from(context);
+
+ // Initialize the possible choices.
+ // TODO: could this be specified entirely in XML?
+
+ // - "Use touch tone keypad"
+ mChoiceItems[0] =
+ new ChoiceItem(
+ context.getString(R.string.dialer_useDtmfDialpad),
+ BitmapFactory.decodeResource(
+ context.getResources(), R.drawable.ic_dialer_fork_tt_keypad),
+ DIALPAD_CHOICE_USE_DTMF_DIALPAD);
+
+ // - "Return to call in progress"
+ mChoiceItems[1] =
+ new ChoiceItem(
+ context.getString(R.string.dialer_returnToInCallScreen),
+ BitmapFactory.decodeResource(
+ context.getResources(), R.drawable.ic_dialer_fork_current_call),
+ DIALPAD_CHOICE_RETURN_TO_CALL);
+
+ // - "Add call"
+ mChoiceItems[2] =
+ new ChoiceItem(
+ context.getString(R.string.dialer_addAnotherCall),
+ BitmapFactory.decodeResource(
+ context.getResources(), R.drawable.ic_dialer_fork_add_call),
+ DIALPAD_CHOICE_ADD_NEW_CALL);
+ }
+
+ @Override
+ public int getCount() {
+ return NUM_ITEMS;
+ }
+
+ /** Return the ChoiceItem for a given position. */
+ @Override
+ public Object getItem(int position) {
+ return mChoiceItems[position];
+ }
+
+ /** Return a unique ID for each possible choice. */
+ @Override
+ public long getItemId(int position) {
+ return position;
+ }
+
+ /** Make a view for each row. */
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ // When convertView is non-null, we can reuse it (there's no need
+ // to reinflate it.)
+ if (convertView == null) {
+ convertView = mInflater.inflate(R.layout.dialpad_chooser_list_item, null);
+ }
+
+ TextView text = convertView.findViewById(R.id.text);
+ text.setText(mChoiceItems[position].text);
+
+ ImageView icon = convertView.findViewById(R.id.icon);
+ icon.setImageBitmap(mChoiceItems[position].icon);
+
+ return convertView;
+ }
+
+ // Simple struct for a single "choice" item.
+ static class ChoiceItem {
+
+ String text;
+ Bitmap icon;
+ int id;
+
+ ChoiceItem(String s, Bitmap b, int i) {
+ text = s;
+ icon = b;
+ id = i;
+ }
+ }
+ }
+
+ private class CallStateReceiver extends BroadcastReceiver {
+
+ /**
+ * Receive call state changes so that we can take down the "dialpad chooser" if the phone
+ * becomes idle while the chooser UI is visible.
+ */
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
+ if ((TextUtils.equals(state, TelephonyManager.EXTRA_STATE_IDLE)
+ || TextUtils.equals(state, TelephonyManager.EXTRA_STATE_OFFHOOK))
+ && isDialpadChooserVisible()) {
+ // Note there's a race condition in the UI here: the
+ // dialpad chooser could conceivably disappear (on its
+ // own) at the exact moment the user was trying to select
+ // one of the choices, which would be confusing. (But at
+ // least that's better than leaving the dialpad chooser
+ // onscreen, but useless...)
+ showDialpadChooser(false);
+ }
+ }
+ }
+
+ /** Listener for dialpad's parent. */
+ public interface DialpadListener {
+ void getLastOutgoingCall(LastOutgoingCallCallback callback);
+
+ void onDialpadShown();
+
+ void hideDialpadFragment(boolean animate, boolean value);
+ }
+
+ /** Callback for async lookup of the last number dialed. */
+ public interface LastOutgoingCallCallback {
+
+ void lastOutgoingCall(String number);
+ }
+
+ /**
+ * Input: the ISO 3166-1 two letters country code of the country the user is in
+ *
+ * <p>Output: PhoneNumberFormattingTextWatcher. Note: It is unusual to return a non-data value
+ * from a worker, but it is a limitation in libphonenumber API that the watcher cannot be
+ * initialized on the main thread.
+ */
+ private static class InitPhoneNumberFormattingTextWatcherWorker
+ implements Worker<String, PhoneNumberFormattingTextWatcher> {
+
+ @Nullable
+ @Override
+ public PhoneNumberFormattingTextWatcher doInBackground(@Nullable String countryCode) {
+ return new PhoneNumberFormattingTextWatcher(countryCode);
+ }
+ }
+}
diff --git a/java/com/android/dialer/dialpadview/DialpadView.java b/java/com/android/dialer/dialpadview/DialpadView.java
index 4a9b500b7..0c53273a4 100644
--- a/java/com/android/dialer/dialpadview/DialpadView.java
+++ b/java/com/android/dialer/dialpadview/DialpadView.java
@@ -29,7 +29,6 @@ import android.text.Spannable;
import android.text.TextUtils;
import android.text.style.TtsSpan;
import android.util.AttributeSet;
-import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
@@ -40,6 +39,8 @@ import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.android.dialer.animation.AnimUtils;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.compat.CompatUtils;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;
@@ -153,7 +154,7 @@ public class DialpadView extends LinearLayout {
// We translate dialpad numbers only for "fa" and not any other locale
// ("ar" anybody ?).
if ("fa".equals(currentLocale.getLanguage())) {
- nf = DecimalFormat.getInstance(resources.getConfiguration().locale);
+ nf = DecimalFormat.getInstance(CompatUtils.getLocale(getContext()));
} else {
nf = DecimalFormat.getInstance(Locale.ENGLISH);
}
@@ -395,7 +396,7 @@ public class DialpadView extends LinearLayout {
}
}
- Log.wtf(TAG, "Attempted to get animation delay for invalid key button id.");
+ LogUtil.e(TAG, "Attempted to get animation delay for invalid key button id.");
return 0;
}
@@ -458,7 +459,7 @@ public class DialpadView extends LinearLayout {
}
}
- Log.wtf(TAG, "Attempted to get animation duration for invalid key button id.");
+ LogUtil.e(TAG, "Attempted to get animation duration for invalid key button id.");
return 0;
}
}
diff --git a/java/com/android/dialer/dialpadview/PseudoEmergencyAnimator.java b/java/com/android/dialer/dialpadview/PseudoEmergencyAnimator.java
new file mode 100644
index 000000000..16bdd24c1
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/PseudoEmergencyAnimator.java
@@ -0,0 +1,142 @@
+/*
+ * 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.dialpadview;
+
+import android.animation.Animator;
+import android.animation.Animator.AnimatorListener;
+import android.animation.ArgbEvaluator;
+import android.animation.ValueAnimator;
+import android.content.Context;
+import android.graphics.Color;
+import android.graphics.ColorFilter;
+import android.graphics.LightingColorFilter;
+import android.os.Handler;
+import android.os.Vibrator;
+import android.view.View;
+
+/** Animates the dial button on "emergency" phone numbers. */
+public class PseudoEmergencyAnimator {
+
+ static final String PSEUDO_EMERGENCY_NUMBER = "01189998819991197253";
+ private static final int VIBRATE_LENGTH_MILLIS = 200;
+ private static final int ITERATION_LENGTH_MILLIS = 1000;
+ private static final int ANIMATION_ITERATION_COUNT = 6;
+ private ViewProvider mViewProvider;
+ private ValueAnimator mPseudoEmergencyColorAnimator;
+
+ PseudoEmergencyAnimator(ViewProvider viewProvider) {
+ mViewProvider = viewProvider;
+ }
+
+ public void destroy() {
+ end();
+ mViewProvider = null;
+ }
+
+ public void start() {
+ if (mPseudoEmergencyColorAnimator == null) {
+ Integer colorFrom = Color.BLUE;
+ Integer colorTo = Color.RED;
+ mPseudoEmergencyColorAnimator =
+ ValueAnimator.ofObject(new ArgbEvaluator(), colorFrom, colorTo);
+
+ mPseudoEmergencyColorAnimator.addUpdateListener(
+ animator -> {
+ try {
+ int color = (int) animator.getAnimatedValue();
+ ColorFilter colorFilter = new LightingColorFilter(Color.BLACK, color);
+
+ if (mViewProvider.getFab() != null) {
+ mViewProvider.getFab().getBackground().setColorFilter(colorFilter);
+ }
+ } catch (Exception e) {
+ animator.cancel();
+ }
+ });
+
+ mPseudoEmergencyColorAnimator.addListener(
+ new AnimatorListener() {
+ @Override
+ public void onAnimationCancel(Animator animation) {}
+
+ @Override
+ public void onAnimationRepeat(Animator animation) {
+ try {
+ vibrate(VIBRATE_LENGTH_MILLIS);
+ } catch (Exception e) {
+ animation.cancel();
+ }
+ }
+
+ @Override
+ public void onAnimationStart(Animator animation) {}
+
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ try {
+ if (mViewProvider.getFab() != null) {
+ mViewProvider.getFab().getBackground().clearColorFilter();
+ }
+
+ new Handler()
+ .postDelayed(
+ () -> {
+ try {
+ vibrate(VIBRATE_LENGTH_MILLIS);
+ } catch (Exception e) {
+ // ignored
+ }
+ },
+ ITERATION_LENGTH_MILLIS);
+ } catch (Exception e) {
+ animation.cancel();
+ }
+ }
+ });
+
+ mPseudoEmergencyColorAnimator.setDuration(VIBRATE_LENGTH_MILLIS);
+ mPseudoEmergencyColorAnimator.setRepeatMode(ValueAnimator.REVERSE);
+ mPseudoEmergencyColorAnimator.setRepeatCount(ANIMATION_ITERATION_COUNT);
+ }
+ if (!mPseudoEmergencyColorAnimator.isStarted()) {
+ mPseudoEmergencyColorAnimator.start();
+ }
+ }
+
+ public void end() {
+ if (mPseudoEmergencyColorAnimator != null && mPseudoEmergencyColorAnimator.isStarted()) {
+ mPseudoEmergencyColorAnimator.end();
+ }
+ }
+
+ private void vibrate(long milliseconds) {
+ Context context = mViewProvider.getContext();
+ if (context != null) {
+ Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
+ if (vibrator != null) {
+ vibrator.vibrate(milliseconds);
+ }
+ }
+ }
+
+ interface ViewProvider {
+
+ View getFab();
+
+ Context getContext();
+ }
+}
diff --git a/java/com/android/dialer/dialpadview/SmartDialCursorLoader.java b/java/com/android/dialer/dialpadview/SmartDialCursorLoader.java
new file mode 100644
index 000000000..271535fce
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/SmartDialCursorLoader.java
@@ -0,0 +1,183 @@
+/*
+ * 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.
+ */
+
+package com.android.dialer.dialpadview;
+
+import android.content.AsyncTaskLoader;
+import android.content.Context;
+import android.database.Cursor;
+import android.database.MatrixCursor;
+import com.android.contacts.common.list.PhoneNumberListAdapter.PhoneQuery;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.database.Database;
+import com.android.dialer.database.DialerDatabaseHelper;
+import com.android.dialer.database.DialerDatabaseHelper.ContactNumber;
+import com.android.dialer.smartdial.SmartDialNameMatcher;
+import com.android.dialer.smartdial.SmartDialPrefix;
+import com.android.dialer.util.PermissionsUtil;
+import java.util.ArrayList;
+
+/** Implements a Loader<Cursor> class to asynchronously load SmartDial search results. */
+public class SmartDialCursorLoader extends AsyncTaskLoader<Cursor> {
+
+ private static final String TAG = "SmartDialCursorLoader";
+ private static final boolean DEBUG = false;
+
+ private final Context mContext;
+
+ private Cursor mCursor;
+
+ private String mQuery;
+ private SmartDialNameMatcher mNameMatcher;
+
+ private boolean mShowEmptyListForNullQuery = true;
+
+ public SmartDialCursorLoader(Context context) {
+ super(context);
+ mContext = context;
+ }
+
+ /**
+ * Configures the query string to be used to find SmartDial matches.
+ *
+ * @param query The query string user typed.
+ */
+ public void configureQuery(String query) {
+ if (DEBUG) {
+ LogUtil.v(TAG, "Configure new query to be " + query);
+ }
+ mQuery = SmartDialNameMatcher.normalizeNumber(query, SmartDialPrefix.getMap());
+
+ /** Constructs a name matcher object for matching names. */
+ mNameMatcher = new SmartDialNameMatcher(mQuery, SmartDialPrefix.getMap());
+ mNameMatcher.setShouldMatchEmptyQuery(!mShowEmptyListForNullQuery);
+ }
+
+ /**
+ * Queries the SmartDial database and loads results in background.
+ *
+ * @return Cursor of contacts that matches the SmartDial query.
+ */
+ @Override
+ public Cursor loadInBackground() {
+ if (DEBUG) {
+ LogUtil.v(TAG, "Load in background " + mQuery);
+ }
+
+ if (!PermissionsUtil.hasContactsReadPermissions(mContext)) {
+ return new MatrixCursor(PhoneQuery.PROJECTION_PRIMARY);
+ }
+
+ /** Loads results from the database helper. */
+ final DialerDatabaseHelper dialerDatabaseHelper =
+ Database.get(mContext).getDatabaseHelper(mContext);
+ final ArrayList<ContactNumber> allMatches =
+ dialerDatabaseHelper.getLooseMatches(mQuery, mNameMatcher);
+
+ if (DEBUG) {
+ LogUtil.v(TAG, "Loaded matches " + allMatches.size());
+ }
+
+ /** Constructs a cursor for the returned array of results. */
+ final MatrixCursor cursor = new MatrixCursor(PhoneQuery.PROJECTION_PRIMARY);
+ Object[] row = new Object[PhoneQuery.PROJECTION_PRIMARY.length];
+ for (ContactNumber contact : allMatches) {
+ row[PhoneQuery.PHONE_ID] = contact.dataId;
+ row[PhoneQuery.PHONE_NUMBER] = contact.phoneNumber;
+ row[PhoneQuery.CONTACT_ID] = contact.id;
+ row[PhoneQuery.LOOKUP_KEY] = contact.lookupKey;
+ row[PhoneQuery.PHOTO_ID] = contact.photoId;
+ row[PhoneQuery.DISPLAY_NAME] = contact.displayName;
+ row[PhoneQuery.CARRIER_PRESENCE] = contact.carrierPresence;
+ cursor.addRow(row);
+ }
+ return cursor;
+ }
+
+ @Override
+ public void deliverResult(Cursor cursor) {
+ if (isReset()) {
+ /** The Loader has been reset; ignore the result and invalidate the data. */
+ releaseResources(cursor);
+ return;
+ }
+
+ /** Hold a reference to the old data so it doesn't get garbage collected. */
+ Cursor oldCursor = mCursor;
+ mCursor = cursor;
+
+ if (isStarted()) {
+ /** If the Loader is in a started state, deliver the results to the client. */
+ super.deliverResult(cursor);
+ }
+
+ /** Invalidate the old data as we don't need it any more. */
+ if (oldCursor != null && oldCursor != cursor) {
+ releaseResources(oldCursor);
+ }
+ }
+
+ @Override
+ protected void onStartLoading() {
+ if (mCursor != null) {
+ /** Deliver any previously loaded data immediately. */
+ deliverResult(mCursor);
+ }
+ if (mCursor == null) {
+ /** Force loads every time as our results change with queries. */
+ forceLoad();
+ }
+ }
+
+ @Override
+ protected void onStopLoading() {
+ /** The Loader is in a stopped state, so we should attempt to cancel the current load. */
+ cancelLoad();
+ }
+
+ @Override
+ protected void onReset() {
+ /** Ensure the loader has been stopped. */
+ onStopLoading();
+
+ /** Release all previously saved query results. */
+ if (mCursor != null) {
+ releaseResources(mCursor);
+ mCursor = null;
+ }
+ }
+
+ @Override
+ public void onCanceled(Cursor cursor) {
+ super.onCanceled(cursor);
+
+ /** The load has been canceled, so we should release the resources associated with 'data'. */
+ releaseResources(cursor);
+ }
+
+ private void releaseResources(Cursor cursor) {
+ if (cursor != null) {
+ cursor.close();
+ }
+ }
+
+ public void setShowEmptyListForNullQuery(boolean show) {
+ mShowEmptyListForNullQuery = show;
+ if (mNameMatcher != null) {
+ mNameMatcher.setShouldMatchEmptyQuery(!show);
+ }
+ }
+}
diff --git a/java/com/android/dialer/dialpadview/SpecialCharSequenceMgr.java b/java/com/android/dialer/dialpadview/SpecialCharSequenceMgr.java
new file mode 100644
index 000000000..7ff0d084a
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/SpecialCharSequenceMgr.java
@@ -0,0 +1,497 @@
+/*
+ * Copyright (C) 2006 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.dialpadview;
+
+import android.Manifest;
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.DialogFragment;
+import android.app.KeyguardManager;
+import android.app.ProgressDialog;
+import android.content.ActivityNotFoundException;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.Settings;
+import android.support.annotation.Nullable;
+import android.telecom.PhoneAccount;
+import android.telecom.PhoneAccountHandle;
+import android.telephony.PhoneNumberUtils;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+import android.view.WindowManager;
+import android.widget.EditText;
+import android.widget.Toast;
+import com.android.common.io.MoreCloseables;
+import com.android.contacts.common.database.NoNullCursorAsyncQueryHandler;
+import com.android.contacts.common.util.ContactDisplayUtils;
+import com.android.contacts.common.widget.SelectPhoneAccountDialogFragment;
+import com.android.contacts.common.widget.SelectPhoneAccountDialogFragment.SelectPhoneAccountListener;
+import com.android.dialer.calllogutils.PhoneAccountUtils;
+import com.android.dialer.common.Assert;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.compat.telephony.TelephonyManagerCompat;
+import com.android.dialer.oem.MotorolaUtils;
+import com.android.dialer.telecom.TelecomUtil;
+import com.android.dialer.util.PermissionsUtil;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Helper class to listen for some magic character sequences that are handled specially by the
+ * dialer.
+ *
+ * <p>Note the Phone app also handles these sequences too (in a couple of relatively obscure places
+ * in the UI), so there's a separate version of this class under apps/Phone.
+ *
+ * <p>TODO: there's lots of duplicated code between this class and the corresponding class under
+ * apps/Phone. Let's figure out a way to unify these two classes (in the framework? in a common
+ * shared library?)
+ */
+public class SpecialCharSequenceMgr {
+
+ private static final String TAG = "SpecialCharSequenceMgr";
+
+ private static final String TAG_SELECT_ACCT_FRAGMENT = "tag_select_acct_fragment";
+
+ private static final String MMI_IMEI_DISPLAY = "*#06#";
+ private static final String MMI_REGULATORY_INFO_DISPLAY = "*#07#";
+ /** ***** This code is used to handle SIM Contact queries ***** */
+ private static final String ADN_PHONE_NUMBER_COLUMN_NAME = "number";
+
+ private static final String ADN_NAME_COLUMN_NAME = "name";
+ private static final int ADN_QUERY_TOKEN = -1;
+ /**
+ * Remembers the previous {@link QueryHandler} and cancel the operation when needed, to prevent
+ * possible crash.
+ *
+ * <p>QueryHandler may call {@link ProgressDialog#dismiss()} when the screen is already gone,
+ * which will cause the app crash. This variable enables the class to prevent the crash on {@link
+ * #cleanup()}.
+ *
+ * <p>TODO: Remove this and replace it (and {@link #cleanup()}) with better implementation. One
+ * complication is that we have SpecialCharSequenceMgr in Phone package too, which has *slightly*
+ * different implementation. Note that Phone package doesn't have this problem, so the class on
+ * Phone side doesn't have this functionality. Fundamental fix would be to have one shared
+ * implementation and resolve this corner case more gracefully.
+ */
+ private static QueryHandler sPreviousAdnQueryHandler;
+
+ /** This class is never instantiated. */
+ private SpecialCharSequenceMgr() {}
+
+ public static boolean handleChars(Context context, String input, EditText textField) {
+ // get rid of the separators so that the string gets parsed correctly
+ String dialString = PhoneNumberUtils.stripSeparators(input);
+
+ if (handleDeviceIdDisplay(context, dialString)
+ || handleRegulatoryInfoDisplay(context, dialString)
+ || handlePinEntry(context, dialString)
+ || handleAdnEntry(context, dialString, textField)
+ || handleSecretCode(context, dialString)) {
+ return true;
+ }
+
+ if (MotorolaUtils.handleSpecialCharSequence(context, input)) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Cleanup everything around this class. Must be run inside the main thread.
+ *
+ * <p>This should be called when the screen becomes background.
+ */
+ public static void cleanup() {
+ Assert.isMainThread();
+
+ if (sPreviousAdnQueryHandler != null) {
+ sPreviousAdnQueryHandler.cancel();
+ sPreviousAdnQueryHandler = null;
+ }
+ }
+
+ /**
+ * Handles secret codes to launch arbitrary activities in the form of *#*#<code>#*#*.
+ *
+ * @param context the context to use
+ * @param input the text to check for a secret code in
+ * @return true if a secret code was encountered and handled
+ */
+ static boolean handleSecretCode(Context context, String input) {
+ // Secret codes are accessed by dialing *#*#<code>#*#*
+
+ int len = input.length();
+ if (len <= 8 || !input.startsWith("*#*#") || !input.endsWith("#*#*")) {
+ return false;
+ }
+ String secretCode = input.substring(4, len - 4);
+ TelephonyManagerCompat.handleSecretCode(context, secretCode);
+ return true;
+ }
+
+ /**
+ * Handle ADN requests by filling in the SIM contact number into the requested EditText.
+ *
+ * <p>This code works alongside the Asynchronous query handler {@link QueryHandler} and query
+ * cancel handler implemented in {@link SimContactQueryCookie}.
+ */
+ static boolean handleAdnEntry(Context context, String input, EditText textField) {
+ /* ADN entries are of the form "N(N)(N)#" */
+ TelephonyManager telephonyManager =
+ (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+ if (telephonyManager == null
+ || telephonyManager.getPhoneType() != TelephonyManager.PHONE_TYPE_GSM) {
+ return false;
+ }
+
+ // if the phone is keyguard-restricted, then just ignore this
+ // input. We want to make sure that sim card contacts are NOT
+ // exposed unless the phone is unlocked, and this code can be
+ // accessed from the emergency dialer.
+ KeyguardManager keyguardManager =
+ (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
+ if (keyguardManager.inKeyguardRestrictedInputMode()) {
+ return false;
+ }
+
+ int len = input.length();
+ if ((len > 1) && (len < 5) && (input.endsWith("#"))) {
+ try {
+ // get the ordinal number of the sim contact
+ final int index = Integer.parseInt(input.substring(0, len - 1));
+
+ // The original code that navigated to a SIM Contacts list view did not
+ // highlight the requested contact correctly, a requirement for PTCRB
+ // certification. This behaviour is consistent with the UI paradigm
+ // for touch-enabled lists, so it does not make sense to try to work
+ // around it. Instead we fill in the the requested phone number into
+ // the dialer text field.
+
+ // create the async query handler
+ final QueryHandler handler = new QueryHandler(context.getContentResolver());
+
+ // create the cookie object
+ final SimContactQueryCookie sc =
+ new SimContactQueryCookie(index - 1, handler, ADN_QUERY_TOKEN);
+
+ // setup the cookie fields
+ sc.contactNum = index - 1;
+ sc.setTextField(textField);
+
+ // create the progress dialog
+ sc.progressDialog = new ProgressDialog(context);
+ sc.progressDialog.setTitle(R.string.simContacts_title);
+ sc.progressDialog.setMessage(context.getText(R.string.simContacts_emptyLoading));
+ sc.progressDialog.setIndeterminate(true);
+ sc.progressDialog.setCancelable(true);
+ sc.progressDialog.setOnCancelListener(sc);
+ sc.progressDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
+
+ List<PhoneAccountHandle> subscriptionAccountHandles =
+ PhoneAccountUtils.getSubscriptionPhoneAccounts(context);
+ Context applicationContext = context.getApplicationContext();
+ boolean hasUserSelectedDefault =
+ subscriptionAccountHandles.contains(
+ TelecomUtil.getDefaultOutgoingPhoneAccount(
+ applicationContext, PhoneAccount.SCHEME_TEL));
+
+ if (subscriptionAccountHandles.size() <= 1 || hasUserSelectedDefault) {
+ Uri uri = TelecomUtil.getAdnUriForPhoneAccount(applicationContext, null);
+ handleAdnQuery(handler, sc, uri);
+ } else {
+ SelectPhoneAccountListener callback =
+ new HandleAdnEntryAccountSelectedCallback(applicationContext, handler, sc);
+
+ DialogFragment dialogFragment =
+ SelectPhoneAccountDialogFragment.newInstance(
+ subscriptionAccountHandles, callback, null);
+ dialogFragment.show(((Activity) context).getFragmentManager(), TAG_SELECT_ACCT_FRAGMENT);
+ }
+
+ return true;
+ } catch (NumberFormatException ex) {
+ // Ignore
+ }
+ }
+ return false;
+ }
+
+ private static void handleAdnQuery(QueryHandler handler, SimContactQueryCookie cookie, Uri uri) {
+ if (handler == null || cookie == null || uri == null) {
+ LogUtil.w("SpecialCharSequenceMgr.handleAdnQuery", "queryAdn parameters incorrect");
+ return;
+ }
+
+ // display the progress dialog
+ cookie.progressDialog.show();
+
+ // run the query.
+ handler.startQuery(
+ ADN_QUERY_TOKEN,
+ cookie,
+ uri,
+ new String[] {ADN_PHONE_NUMBER_COLUMN_NAME},
+ null,
+ null,
+ null);
+
+ if (sPreviousAdnQueryHandler != null) {
+ // It is harmless to call cancel() even after the handler's gone.
+ sPreviousAdnQueryHandler.cancel();
+ }
+ sPreviousAdnQueryHandler = handler;
+ }
+
+ static boolean handlePinEntry(final Context context, final String input) {
+ if ((input.startsWith("**04") || input.startsWith("**05")) && input.endsWith("#")) {
+ List<PhoneAccountHandle> subscriptionAccountHandles =
+ PhoneAccountUtils.getSubscriptionPhoneAccounts(context);
+ boolean hasUserSelectedDefault =
+ subscriptionAccountHandles.contains(
+ TelecomUtil.getDefaultOutgoingPhoneAccount(context, PhoneAccount.SCHEME_TEL));
+
+ if (subscriptionAccountHandles.size() <= 1 || hasUserSelectedDefault) {
+ // Don't bring up the dialog for single-SIM or if the default outgoing account is
+ // a subscription account.
+ return TelecomUtil.handleMmi(context, input, null);
+ } else {
+ SelectPhoneAccountListener listener = new HandleMmiAccountSelectedCallback(context, input);
+
+ DialogFragment dialogFragment =
+ SelectPhoneAccountDialogFragment.newInstance(
+ subscriptionAccountHandles, listener, null);
+ dialogFragment.show(((Activity) context).getFragmentManager(), TAG_SELECT_ACCT_FRAGMENT);
+ }
+ return true;
+ }
+ return false;
+ }
+
+ // TODO: Use TelephonyCapabilities.getDeviceIdLabel() to get the device id label instead of a
+ // hard-coded string.
+ static boolean handleDeviceIdDisplay(Context context, String input) {
+ if (!PermissionsUtil.hasPermission(context, Manifest.permission.READ_PHONE_STATE)) {
+ return false;
+ }
+ TelephonyManager telephonyManager =
+ (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+
+ if (telephonyManager != null && input.equals(MMI_IMEI_DISPLAY)) {
+ int labelResId =
+ (telephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM)
+ ? R.string.imei
+ : R.string.meid;
+
+ List<String> deviceIds = new ArrayList<String>();
+ if (TelephonyManagerCompat.getPhoneCount(telephonyManager) > 1) {
+ for (int slot = 0; slot < telephonyManager.getPhoneCount(); slot++) {
+ String deviceId = telephonyManager.getDeviceId(slot);
+ if (!TextUtils.isEmpty(deviceId)) {
+ deviceIds.add(deviceId);
+ }
+ }
+ } else {
+ deviceIds.add(telephonyManager.getDeviceId());
+ }
+
+ new AlertDialog.Builder(context)
+ .setTitle(labelResId)
+ .setItems(deviceIds.toArray(new String[deviceIds.size()]), null)
+ .setPositiveButton(android.R.string.ok, null)
+ .setCancelable(false)
+ .show();
+ return true;
+ }
+ return false;
+ }
+
+ private static boolean handleRegulatoryInfoDisplay(Context context, String input) {
+ if (input.equals(MMI_REGULATORY_INFO_DISPLAY)) {
+ LogUtil.i(
+ "SpecialCharSequenceMgr.handleRegulatoryInfoDisplay", "sending intent to settings app");
+ Intent showRegInfoIntent = new Intent(Settings.ACTION_SHOW_REGULATORY_INFO);
+ try {
+ context.startActivity(showRegInfoIntent);
+ } catch (ActivityNotFoundException e) {
+ LogUtil.e(
+ "SpecialCharSequenceMgr.handleRegulatoryInfoDisplay", "startActivity() failed: ", e);
+ }
+ return true;
+ }
+ return false;
+ }
+
+ public static class HandleAdnEntryAccountSelectedCallback extends SelectPhoneAccountListener {
+
+ private final Context mContext;
+ private final QueryHandler mQueryHandler;
+ private final SimContactQueryCookie mCookie;
+
+ public HandleAdnEntryAccountSelectedCallback(
+ Context context, QueryHandler queryHandler, SimContactQueryCookie cookie) {
+ mContext = context;
+ mQueryHandler = queryHandler;
+ mCookie = cookie;
+ }
+
+ @Override
+ public void onPhoneAccountSelected(
+ PhoneAccountHandle selectedAccountHandle, boolean setDefault, @Nullable String callId) {
+ Uri uri = TelecomUtil.getAdnUriForPhoneAccount(mContext, selectedAccountHandle);
+ handleAdnQuery(mQueryHandler, mCookie, uri);
+ // TODO: Show error dialog if result isn't valid.
+ }
+ }
+
+ public static class HandleMmiAccountSelectedCallback extends SelectPhoneAccountListener {
+
+ private final Context mContext;
+ private final String mInput;
+
+ public HandleMmiAccountSelectedCallback(Context context, String input) {
+ mContext = context.getApplicationContext();
+ mInput = input;
+ }
+
+ @Override
+ public void onPhoneAccountSelected(
+ PhoneAccountHandle selectedAccountHandle, boolean setDefault, @Nullable String callId) {
+ TelecomUtil.handleMmi(mContext, mInput, selectedAccountHandle);
+ }
+ }
+
+ /**
+ * Cookie object that contains everything we need to communicate to the handler's onQuery
+ * Complete, as well as what we need in order to cancel the query (if requested).
+ *
+ * <p>Note, access to the textField field is going to be synchronized, because the user can
+ * request a cancel at any time through the UI.
+ */
+ private static class SimContactQueryCookie implements DialogInterface.OnCancelListener {
+
+ public ProgressDialog progressDialog;
+ public int contactNum;
+
+ // Used to identify the query request.
+ private int mToken;
+ private QueryHandler mHandler;
+
+ // The text field we're going to update
+ private EditText textField;
+
+ public SimContactQueryCookie(int number, QueryHandler handler, int token) {
+ contactNum = number;
+ mHandler = handler;
+ mToken = token;
+ }
+
+ /** Synchronized getter for the EditText. */
+ public synchronized EditText getTextField() {
+ return textField;
+ }
+
+ /** Synchronized setter for the EditText. */
+ public synchronized void setTextField(EditText text) {
+ textField = text;
+ }
+
+ /**
+ * Cancel the ADN query by stopping the operation and signaling the cookie that a cancel request
+ * is made.
+ */
+ @Override
+ public synchronized void onCancel(DialogInterface dialog) {
+ // close the progress dialog
+ if (progressDialog != null) {
+ progressDialog.dismiss();
+ }
+
+ // setting the textfield to null ensures that the UI does NOT get
+ // updated.
+ textField = null;
+
+ // Cancel the operation if possible.
+ mHandler.cancelOperation(mToken);
+ }
+ }
+
+ /**
+ * Asynchronous query handler that services requests to look up ADNs
+ *
+ * <p>Queries originate from {@link #handleAdnEntry}.
+ */
+ private static class QueryHandler extends NoNullCursorAsyncQueryHandler {
+
+ private boolean mCanceled;
+
+ public QueryHandler(ContentResolver cr) {
+ super(cr);
+ }
+
+ /** Override basic onQueryComplete to fill in the textfield when we're handed the ADN cursor. */
+ @Override
+ protected void onNotNullableQueryComplete(int token, Object cookie, Cursor c) {
+ try {
+ sPreviousAdnQueryHandler = null;
+ if (mCanceled) {
+ return;
+ }
+
+ SimContactQueryCookie sc = (SimContactQueryCookie) cookie;
+
+ // close the progress dialog.
+ sc.progressDialog.dismiss();
+
+ // get the EditText to update or see if the request was cancelled.
+ EditText text = sc.getTextField();
+
+ // if the TextView is valid, and the cursor is valid and positionable on the
+ // Nth number, then we update the text field and display a toast indicating the
+ // caller name.
+ if ((c != null) && (text != null) && (c.moveToPosition(sc.contactNum))) {
+ String name = c.getString(c.getColumnIndexOrThrow(ADN_NAME_COLUMN_NAME));
+ String number = c.getString(c.getColumnIndexOrThrow(ADN_PHONE_NUMBER_COLUMN_NAME));
+
+ // fill the text in.
+ text.getText().replace(0, 0, number);
+
+ // display the name as a toast
+ Context context = sc.progressDialog.getContext();
+ CharSequence msg =
+ ContactDisplayUtils.getTtsSpannedPhoneNumber(
+ context.getResources(), R.string.menu_callNumber, name);
+ Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
+ }
+ } finally {
+ MoreCloseables.closeQuietly(c);
+ }
+ }
+
+ public void cancel() {
+ mCanceled = true;
+ // Ask AsyncQueryHandler to cancel the whole request. This will fail when the query is
+ // already started.
+ cancelOperation(ADN_QUERY_TOKEN);
+ }
+ }
+}
diff --git a/java/com/android/dialer/dialpadview/UnicodeDialerKeyListener.java b/java/com/android/dialer/dialpadview/UnicodeDialerKeyListener.java
new file mode 100644
index 000000000..e9201c0c2
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/UnicodeDialerKeyListener.java
@@ -0,0 +1,56 @@
+/*
+ * 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.dialer.dialpadview;
+
+import android.telephony.PhoneNumberUtils;
+import android.text.Spanned;
+import android.text.method.DialerKeyListener;
+
+/**
+ * {@link DialerKeyListener} with Unicode support. Converts any Unicode(e.g. Arabic) characters that
+ * represent digits into digits before filtering the results so that we can support pasted digits
+ * from Unicode languages.
+ */
+public class UnicodeDialerKeyListener extends DialerKeyListener {
+
+ public static final UnicodeDialerKeyListener INSTANCE = new UnicodeDialerKeyListener();
+
+ @Override
+ public CharSequence filter(
+ CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
+ final String converted =
+ PhoneNumberUtils.convertKeypadLettersToDigits(
+ PhoneNumberUtils.replaceUnicodeDigits(source.toString()));
+ // PhoneNumberUtils.replaceUnicodeDigits performs a character for character replacement,
+ // so we can assume that start and end positions should remain unchanged.
+ CharSequence result = super.filter(converted, start, end, dest, dstart, dend);
+ if (result == null) {
+ if (source.equals(converted)) {
+ // There was no conversion or filtering performed. Just return null according to
+ // the behavior of DialerKeyListener.
+ return null;
+ } else {
+ // filter returns null if the charsequence is to be returned unchanged/unfiltered.
+ // But in this case we do want to return a modified character string (even if
+ // none of the characters in the modified string are filtered). So if
+ // result == null we return the unfiltered but converted numeric string instead.
+ return converted.subSequence(start, end);
+ }
+ }
+ return result;
+ }
+}
diff --git a/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_close_black_24dp.png b/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_close_black_24dp.png
deleted file mode 100644
index 1a9cd75a0..000000000
--- a/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_close_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialer_fork_add_call.png b/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialer_fork_add_call.png
new file mode 100755
index 000000000..4e0d5649e
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialer_fork_add_call.png
Binary files differ
diff --git a/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialer_fork_current_call.png b/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialer_fork_current_call.png
new file mode 100755
index 000000000..2cf41d598
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialer_fork_current_call.png
Binary files differ
diff --git a/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialer_fork_tt_keypad.png b/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialer_fork_tt_keypad.png
new file mode 100755
index 000000000..043685fd9
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialer_fork_tt_keypad.png
Binary files differ
diff --git a/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialpad_delete.png b/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialpad_delete.png
deleted file mode 100644
index e588d90e9..000000000
--- a/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialpad_delete.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialpad_voicemail.png b/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialpad_voicemail.png
deleted file mode 100644
index 4706112d6..000000000
--- a/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_dialpad_voicemail.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_overflow_menu.png b/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_overflow_menu.png
deleted file mode 100644
index 262e9df91..000000000
--- a/java/com/android/dialer/dialpadview/res/drawable-hdpi/ic_overflow_menu.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/dialpadview/res/drawable-mdpi/ic_dialer_fork_add_call.png b/java/com/android/dialer/dialpadview/res/drawable-mdpi/ic_dialer_fork_add_call.png
new file mode 100644
index 000000000..56ac2a33a
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/res/drawable-mdpi/ic_dialer_fork_add_call.png
Binary files differ
diff --git a/java/com/android/dialer/dialpadview/res/drawable-mdpi/ic_dialer_fork_current_call.png b/java/com/android/dialer/dialpadview/res/drawable-mdpi/ic_dialer_fork_current_call.png
new file mode 100644
index 000000000..16a44a078
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/res/drawable-mdpi/ic_dialer_fork_current_call.png
Binary files differ
diff --git a/java/com/android/dialer/dialpadview/res/drawable-mdpi/ic_dialer_fork_tt_keypad.png b/java/com/android/dialer/dialpadview/res/drawable-mdpi/ic_dialer_fork_tt_keypad.png
new file mode 100644
index 000000000..66df69eac
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/res/drawable-mdpi/ic_dialer_fork_tt_keypad.png
Binary files differ
diff --git a/java/com/android/dialer/dialpadview/res/drawable-xhdpi/ic_dialer_fork_add_call.png b/java/com/android/dialer/dialpadview/res/drawable-xhdpi/ic_dialer_fork_add_call.png
new file mode 100644
index 000000000..aff140fcd
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/res/drawable-xhdpi/ic_dialer_fork_add_call.png
Binary files differ
diff --git a/java/com/android/dialer/dialpadview/res/drawable-xhdpi/ic_dialer_fork_current_call.png b/java/com/android/dialer/dialpadview/res/drawable-xhdpi/ic_dialer_fork_current_call.png
new file mode 100644
index 000000000..8975727e0
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/res/drawable-xhdpi/ic_dialer_fork_current_call.png
Binary files differ
diff --git a/java/com/android/dialer/dialpadview/res/drawable-xhdpi/ic_dialer_fork_tt_keypad.png b/java/com/android/dialer/dialpadview/res/drawable-xhdpi/ic_dialer_fork_tt_keypad.png
new file mode 100644
index 000000000..4d48ea9ea
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/res/drawable-xhdpi/ic_dialer_fork_tt_keypad.png
Binary files differ
diff --git a/java/com/android/dialer/dialpadview/res/drawable-xxhdpi/ic_dialer_fork_add_call.png b/java/com/android/dialer/dialpadview/res/drawable-xxhdpi/ic_dialer_fork_add_call.png
new file mode 100644
index 000000000..1657da4e2
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/res/drawable-xxhdpi/ic_dialer_fork_add_call.png
Binary files differ
diff --git a/java/com/android/dialer/dialpadview/res/drawable-xxhdpi/ic_dialer_fork_current_call.png b/java/com/android/dialer/dialpadview/res/drawable-xxhdpi/ic_dialer_fork_current_call.png
new file mode 100644
index 000000000..f25cce695
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/res/drawable-xxhdpi/ic_dialer_fork_current_call.png
Binary files differ
diff --git a/java/com/android/dialer/dialpadview/res/drawable-xxhdpi/ic_dialer_fork_tt_keypad.png b/java/com/android/dialer/dialpadview/res/drawable-xxhdpi/ic_dialer_fork_tt_keypad.png
new file mode 100644
index 000000000..7ac4d8b58
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/res/drawable-xxhdpi/ic_dialer_fork_tt_keypad.png
Binary files differ
diff --git a/java/com/android/dialer/dialpadview/res/drawable/dialpad_scrim.xml b/java/com/android/dialer/dialpadview/res/drawable/dialpad_scrim.xml
deleted file mode 100644
index ee0f40ab5..000000000
--- a/java/com/android/dialer/dialpadview/res/drawable/dialpad_scrim.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android">
- <gradient
- android:angle="270"
- android:endColor="@android:color/darker_gray"
- android:startColor="@android:color/transparent"/>
-</shape>
diff --git a/java/com/android/dialer/dialpadview/res/drawable/ic_wifi_calling.xml b/java/com/android/dialer/dialpadview/res/drawable/ic_wifi_calling.xml
new file mode 100644
index 000000000..968713376
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/res/drawable/ic_wifi_calling.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT 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/dialpadview/res/drawable/shadow_fade_left.xml b/java/com/android/dialer/dialpadview/res/drawable/shadow_fade_left.xml
new file mode 100644
index 000000000..6271a8f86
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/res/drawable/shadow_fade_left.xml
@@ -0,0 +1,24 @@
+<?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.
+-->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <gradient
+ android:angle="0"
+ android:endColor="#1a000000"
+ android:startColor="@null"
+ android:type="linear"/>
+</shape>
diff --git a/java/com/android/dialer/dialpadview/res/drawable/shadow_fade_up.xml b/java/com/android/dialer/dialpadview/res/drawable/shadow_fade_up.xml
new file mode 100644
index 000000000..86d37a9bc
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/res/drawable/shadow_fade_up.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <gradient
+ android:angle="90"
+ android:endColor="@null"
+ android:startColor="#1a000000"
+ android:type="linear"/>
+</shape> \ No newline at end of file
diff --git a/java/com/android/dialer/dialpadview/res/layout-land/dialpad_fragment.xml b/java/com/android/dialer/dialpadview/res/layout-land/dialpad_fragment.xml
new file mode 100644
index 000000000..6389853d9
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/res/layout-land/dialpad_fragment.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<view xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ class="com.android.dialer.dialpadview.DialpadFragment$DialpadSlidingRelativeLayout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <!-- spacer view -->
+ <View
+ android:id="@+id/spacer"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="4"
+ android:background="#00000000"/>
+
+ <!-- Dialpad shadow -->
+ <View
+ android:layout_width="@dimen/shadow_length"
+ android:layout_height="match_parent"
+ android:background="@drawable/shadow_fade_left"/>
+
+ <RelativeLayout
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="6">
+
+ <include
+ layout="@layout/dialpad_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"/>
+
+ <!-- "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"/>
+
+ <!-- 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.support.design.widget.FloatingActionButton
+ android:id="@+id/dialpad_floating_action_button"
+ android:layout_width="@dimen/floating_action_button_width"
+ 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"
+ app:elevation="@dimen/floating_action_button_translation_z"
+ app:backgroundTint="@color/dialpad_fab_green"/>
+ </RelativeLayout>
+ </LinearLayout>
+</view>
diff --git a/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_one.xml b/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_one.xml
index 6f178f0e1..135624681 100644
--- a/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_one.xml
+++ b/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_one.xml
@@ -35,7 +35,7 @@
<ImageView
android:id="@+id/dialpad_key_voicemail"
android:layout_width="wrap_content"
- android:layout_height="wrap_content"
+ android:layout_height="@dimen/dialpad_voicemail_icon_size"
android:scaleType="fitCenter"
android:src="@drawable/quantum_ic_voicemail_white_24"
android:tint="@color/dialpad_voicemail_tint"/>
diff --git a/java/com/android/dialer/dialpadview/res/layout/dialpad_chooser_list_item.xml b/java/com/android/dialer/dialpadview/res/layout/dialpad_chooser_list_item.xml
new file mode 100644
index 000000000..e00529614
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/res/layout/dialpad_chooser_list_item.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!-- Layout of a single item in the Dialer's "Dialpad chooser" UI. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:id="@+id/icon"
+ android:layout_width="64dp"
+ android:layout_height="64dp"
+ android:scaleType="center"/>
+
+ <TextView
+ android:id="@+id/text"
+ android:layout_width="0dip"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_gravity="center_vertical"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textColor="@color/dialpad_primary_text_color"/>
+
+</LinearLayout>
diff --git a/java/com/android/dialer/dialpadview/res/layout/dialpad_fragment.xml b/java/com/android/dialer/dialpadview/res/layout/dialpad_fragment.xml
new file mode 100644
index 000000000..2f62e1407
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/res/layout/dialpad_fragment.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<view xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ class="com.android.dialer.dialpadview.DialpadFragment$DialpadSlidingRelativeLayout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ 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"/>
+ <!-- Dialpad shadow -->
+ <View
+ 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"/>
+
+ </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.support.design.widget.FloatingActionButton
+ android:id="@+id/dialpad_floating_action_button"
+ android:layout_width="@dimen/floating_action_button_width"
+ android:layout_height="@dimen/floating_action_button_height"
+ android:layout_above="@id/dialpad_floating_action_button_margin_bottom"
+ android:layout_centerHorizontal="true"
+ 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"/>
+</view>
diff --git a/java/com/android/dialer/dialpadview/res/layout/dialpad_key_one.xml b/java/com/android/dialer/dialpadview/res/layout/dialpad_key_one.xml
index 88594401f..4401c5bbd 100644
--- a/java/com/android/dialer/dialpadview/res/layout/dialpad_key_one.xml
+++ b/java/com/android/dialer/dialpadview/res/layout/dialpad_key_one.xml
@@ -18,7 +18,8 @@
android:id="@+id/one"
style="@style/DialpadKeyButtonStyle">
<LinearLayout
- style="@style/DialpadKeyInternalLayoutStyle">
+ android:layout_marginTop="1dp"
+ style="@style/DialpadKeyInternalLayoutStyle">
<com.android.dialer.dialpadview.DialpadTextView
android:id="@+id/dialpad_key_number"
style="@style/DialpadKeyNumberStyle"/>
@@ -28,9 +29,8 @@
<ImageView
android:id="@+id/dialpad_key_voicemail"
android:layout_width="wrap_content"
- android:layout_height="wrap_content"
+ android:layout_height="@dimen/dialpad_voicemail_icon_size"
android:layout_centerInParent="true"
- android:paddingTop="@dimen/dialpad_voicemail_icon_padding_top"
android:scaleType="fitCenter"
android:src="@drawable/quantum_ic_voicemail_white_24"
android:tint="?attr/dialpad_voicemail_tint"/>
diff --git a/java/com/android/dialer/dialpadview/res/layout/dialpad_view_unthemed.xml b/java/com/android/dialer/dialpadview/res/layout/dialpad_view_unthemed.xml
index 838f1eca5..13c11f1ce 100644
--- a/java/com/android/dialer/dialpadview/res/layout/dialpad_view_unthemed.xml
+++ b/java/com/android/dialer/dialpadview/res/layout/dialpad_view_unthemed.xml
@@ -14,141 +14,142 @@
limitations under the License.
-->
<view xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/dialpad_view"
- class="com.android.dialer.dialpadview.DialpadView"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_gravity="bottom"
- android:background="?attr/dialpad_background"
- android:clickable="true"
- android:elevation="?attr/dialpad_elevation"
- android:layoutDirection="ltr"
- android:orientation="vertical">
+ android:id="@+id/dialpad_view"
+ class="com.android.dialer.dialpadview.DialpadView"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_gravity="bottom"
+ android:background="?attr/dialpad_background"
+ android:clickable="true"
+ android:elevation="?attr/dialpad_elevation"
+ android:layoutDirection="ltr"
+ android:orientation="vertical">
<!-- Text field where call rate is displayed for ILD calls. -->
<LinearLayout
- android:id="@+id/rate_container"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- android:visibility="gone">
+ android:id="@+id/rate_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:visibility="gone">
<LinearLayout
- android:id="@+id/ild_container"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/ild_margin_height"
- android:layout_marginBottom="@dimen/ild_margin_height"
- android:layout_gravity="center_horizontal"
- android:orientation="horizontal">
+ android:id="@+id/ild_container"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/ild_margin_height"
+ android:layout_marginBottom="@dimen/ild_margin_height"
+ android:layout_gravity="center_horizontal"
+ android:orientation="horizontal">
<TextView
- android:id="@+id/ild_country"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
+ android:id="@+id/ild_country"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"/>
<TextView
- android:id="@+id/ild_rate"
- android:textStyle="bold"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginStart="4dp"/>
+ android:id="@+id/ild_rate"
+ android:textStyle="bold"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="4dp"/>
</LinearLayout>
<View
- android:layout_width="match_parent"
- android:layout_height="1dp"
- android:background="#e3e3e3"/>
+ android:layout_width="match_parent"
+ android:layout_height="1dp"
+ android:background="#e3e3e3"/>
</LinearLayout>
<!-- Text field and possibly soft menu button above the keypad where
the digits are displayed. -->
<LinearLayout
- android:id="@+id/digits_container"
- android:layout_width="match_parent"
- android:layout_height="?attr/dialpad_digits_adjustable_height"
- android:orientation="horizontal">
+ android:id="@+id/digits_container"
+ android:layout_width="match_parent"
+ android:layout_height="?attr/dialpad_digits_adjustable_height"
+ android:orientation="horizontal">
<ImageButton
- android:id="@+id/dialpad_back"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_margin="@dimen/dialpad_overflow_margin"
- android:paddingLeft="@dimen/dialpad_digits_menu_left_padding"
- android:paddingRight="@dimen/dialpad_digits_menu_right_padding"
- android:background="@drawable/btn_dialpad_key"
- android:contentDescription="@string/description_dialpad_back"
- android:gravity="center"
- android:src="@drawable/quantum_ic_close_white_24"
- android:tint="?attr/dialpad_icon_tint"
- android:tintMode="src_in"
- android:visibility="gone"/>
+ android:id="@+id/dialpad_back"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_margin="@dimen/dialpad_overflow_margin"
+ android:paddingLeft="@dimen/dialpad_digits_menu_left_padding"
+ android:paddingRight="@dimen/dialpad_digits_menu_right_padding"
+ android:background="@drawable/btn_dialpad_key"
+ android:contentDescription="@string/description_dialpad_back"
+ android:gravity="center"
+ android:src="@drawable/quantum_ic_close_white_24"
+ android:tint="?attr/dialpad_icon_tint"
+ android:tintMode="src_in"
+ android:visibility="gone"/>
<ImageButton
- android:id="@+id/dialpad_overflow"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_margin="@dimen/dialpad_overflow_margin"
- android:paddingLeft="@dimen/dialpad_digits_menu_left_padding"
- android:paddingRight="@dimen/dialpad_digits_menu_right_padding"
- android:background="@drawable/btn_dialpad_key"
- android:contentDescription="@string/description_dialpad_overflow"
- android:gravity="center"
- android:src="@drawable/quantum_ic_more_vert_white_24"
- android:tint="?attr/dialpad_icon_tint"
- android:tintMode="src_in"
- android:visibility="gone"/>
+ android:id="@+id/dialpad_overflow"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_margin="@dimen/dialpad_overflow_margin"
+ android:paddingLeft="@dimen/dialpad_digits_menu_left_padding"
+ android:paddingRight="@dimen/dialpad_digits_menu_right_padding"
+ android:background="@drawable/btn_dialpad_key"
+ android:contentDescription="@string/description_dialpad_overflow"
+ android:gravity="center"
+ android:src="@drawable/quantum_ic_more_vert_white_24"
+ android:tint="?attr/dialpad_icon_tint"
+ android:tintMode="src_in"
+ android:visibility="gone"/>
<view xmlns:ex="http://schemas.android.com/apk/res-auto"
- android:id="@+id/digits"
- class="com.android.dialer.dialpadview.DigitsEditText"
- android:textStyle="normal"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="1"
- android:background="@android:color/transparent"
- android:cursorVisible="false"
- android:focusableInTouchMode="true"
- android:fontFamily="sans-serif"
- android:freezesText="true"
- android:gravity="center"
- android:maxLines="1"
- android:scrollHorizontally="true"
- android:singleLine="true"
- android:textColor="?attr/dialpad_text_color"
- android:textCursorDrawable="@null"
- android:textSize="?attr/dialpad_digits_adjustable_text_size"
- ex:resizing_text_min_size="@dimen/dialpad_digits_text_min_size"/>
+ android:id="@+id/digits"
+ class="com.android.dialer.dialpadview.DigitsEditText"
+ android:textStyle="normal"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:background="@android:color/transparent"
+ android:cursorVisible="false"
+ android:focusableInTouchMode="true"
+ android:fontFamily="sans-serif"
+ android:freezesText="true"
+ android:gravity="center"
+ android:importantForAutofill="no"
+ android:maxLines="1"
+ android:scrollHorizontally="true"
+ android:singleLine="true"
+ android:textColor="?attr/dialpad_text_color"
+ android:textCursorDrawable="@null"
+ android:textSize="?attr/dialpad_digits_adjustable_text_size"
+ ex:resizing_text_min_size="@dimen/dialpad_digits_text_min_size"/>
<ImageButton
- android:id="@+id/deleteButton"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:paddingLeft="@dimen/dialpad_digits_padding"
- android:paddingRight="@dimen/dialpad_digits_padding"
- android:background="@drawable/btn_dialpad_key"
- android:contentDescription="@string/description_delete_button"
- android:src="@drawable/quantum_ic_backspace_white_24"
- android:state_enabled="false"
- android:tint="?attr/dialpad_icon_tint"
- android:tintMode="src_in"/>
+ android:id="@+id/deleteButton"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingLeft="@dimen/dialpad_digits_padding"
+ android:paddingRight="@dimen/dialpad_digits_padding"
+ android:background="@drawable/btn_dialpad_key"
+ android:contentDescription="@string/description_delete_button"
+ android:src="@drawable/quantum_ic_backspace_white_24"
+ android:state_enabled="false"
+ android:tint="?attr/dialpad_icon_tint"
+ android:tintMode="src_in"/>
</LinearLayout>
<View
- android:layout_width="match_parent"
- android:layout_height="1dp"
- android:background="#e3e3e3"/>
+ android:layout_width="match_parent"
+ android:layout_height="1dp"
+ android:background="#e3e3e3"/>
<Space
- android:layout_width="match_parent"
- android:layout_height="@dimen/dialpad_space_above_keys"/>
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/dialpad_space_above_keys"/>
<include layout="@layout/dialpad"/>
<Space
- android:layout_width="match_parent"
- android:layout_height="@dimen/dialpad_space_below_keys"/>
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/dialpad_space_below_keys"/>
</view>
diff --git a/java/com/android/dialer/dialpadview/res/menu/dialpad_options.xml b/java/com/android/dialer/dialpadview/res/menu/dialpad_options.xml
new file mode 100644
index 000000000..2921ea3bb
--- /dev/null
+++ b/java/com/android/dialer/dialpadview/res/menu/dialpad_options.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <item
+ android:id="@+id/menu_2s_pause"
+ android:showAsAction="withText"
+ android:title="@string/add_2sec_pause"/>
+ <item
+ android:id="@+id/menu_add_wait"
+ android:showAsAction="withText"
+ android:title="@string/add_wait"/>
+ <item
+ android:id="@+id/menu_call_with_note"
+ android:showAsAction="withText"
+ android:title="@string/call_with_a_note"/>
+</menu>
diff --git a/java/com/android/dialer/dialpadview/res/values-af/strings.xml b/java/com/android/dialer/dialpadview/res/values-af/strings.xml
index b2d03a07f..c5c72e094 100644
--- a/java/com/android/dialer/dialpadview/res/values-af/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-af/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"stemboodskap"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"bel"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Om stemboodskapdiens te bel, skakel eers vliegtuigmodus af."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Om stemboodskapdiens op te stel, gaan na Kieslys &gt; Instellings."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Voeg 2-sek.-pouse by"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Voeg wagtyd by"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Gebruik raak-nommerbord"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Keer terug na oproep wat besig is"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Voeg oproep by"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Laai tans van SIM-kaart af …"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM-kaartkontakte"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Bel <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Kan nie hierdie nommer bel nie"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-am/strings.xml b/java/com/android/dialer/dialpadview/res/values-am/strings.xml
index 04f6022d8..efbdb1de9 100644
--- a/java/com/android/dialer/dialpadview/res/values-am/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-am/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"የኋሊት ደምሳሽ"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"የመደመር ምልክት"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"የድምፅ መልዕክት"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"ይደውሉ"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"የድምጽ መልዕክት ጥሪ ለማድረግ፣ በመጀመሪያ የአውሮፕላን ሁነታን ያጥፉ።"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"የድምጽ መልዕክትን ለማዘጋጀት፣ ወደ ምናሌ &gt; ቅንብሮች ይሂዱ።"</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2 ሴኮንድ ፋታ አክል"</string>
+ <string name="add_wait" msgid="2278146476349811062">"ቆይታ አክል"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"ባለድምጽ የንኪ ቁልፍ ሰሌዳን ይጠቀሙ"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"በመካሄድ ላይ ወዳለው ጥሪ ተመለስ"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"ጥሪ አክል"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"ከSIM ካርድ ላይ በመጫን ላይ…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"የSIM ካርድ ዕውቂያዎች"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"ወደ <xliff:g id="NUMBER">%s</xliff:g> ደውል"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"ይህን ቁጥር መደወል አልተቻለም"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-ar/strings.xml b/java/com/android/dialer/dialpadview/res/values-ar/strings.xml
index 9caea157e..649280a99 100644
--- a/java/com/android/dialer/dialpadview/res/values-ar/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-ar/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"مسافة للخلف"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"علامة الجمع"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"بريد صوتي"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"طلب"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"للاتصال بالبريد الصوتي، يجب أولاً إيقاف وضع الطائرة."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"لإعداد البريد الصوتي، انتقل إلى القائمة &gt; الإعدادات."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"إضافة ثانيتين إيقاف مؤقت"</string>
+ <string name="add_wait" msgid="2278146476349811062">"إضافة انتظار"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"استخدام لوحة مفاتيح نغمات باللمس"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"عودة إلى المكالمة الجارية"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"إضافة مكالمة"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"‏جارٍ التحميل من شريحة SIM…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"‏شريحة SIM وجهات الاتصال"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"الاتصال بالرقم <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"لا يمكن الاتصال بهذا الرقم"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-az/strings.xml b/java/com/android/dialer/dialpadview/res/values-az/strings.xml
index 46f218e09..8de688d05 100644
--- a/java/com/android/dialer/dialpadview/res/values-az/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-az/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"geri düyməsi"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"səsli məktub"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"nömrə yığın"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Səsli e-poçta zəng etmək üçün Təyyarə rejimini deaktiv edin."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Səsli e-poçtu ayarlamaq üçün Menyu &gt; Ayarlar bölməsinə daxil olun."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2 saniyəlik pauza əlavə edin"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Gözləmə əlavə edin"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Toxunuş ton klaviaturasından istifadə edin"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Davam edən zəngə qayıdın"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Zəng əlavə edin"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"SIM kartdan yüklənir..."</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM kart kontaktları"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g> nömrəsinə zəng edin"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Bu nömrəyə zəng etmək mümkün deyil"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/dialpadview/res/values-b+sr+Latn/strings.xml
index 24ea30816..c15aee4bf 100644
--- a/java/com/android/dialer/dialpadview/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-b+sr+Latn/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"govorna pošta"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"birajte broj"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Da biste pozvali govornu poštu, prvo isključite režim rada u avionu."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Da biste podesili govornu poštu, idite u Meni &gt; Podešavanja."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Dodaj pauzu od 2 sekunde"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Dodaj čekanje"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Koristi tastaturu za tonsko biranje"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Nazad u poziv koji je u toku"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Dodaj poziv"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Učitava se sa SIM kartice…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Kontakti na SIM kartici"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Pozovi <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Nije moguće pozvati ovaj broj"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-be/strings.xml b/java/com/android/dialer/dialpadview/res/values-be/strings.xml
index db504555e..cbe85f517 100644
--- a/java/com/android/dialer/dialpadview/res/values-be/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-be/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"плюс"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"галасавая пошта"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"набор"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Каб пазваніць на галасавую пошту, спачатку адключыце Рэжым палёту."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Каб наладзіць галасавую пошту, перайдзіце ў раздзел \"Меню &gt; Налады\"."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Дадаць 2-секундную паўзу"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Дадаць чаканне"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Выкарыстанне тонавай клавіятуры"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Вярнуцца да бягучага выкліку"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Дадаць выклік"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Загрузка з SIM-карты..."</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Кантакты SIM-карты"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Выклікаць <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Немагчыма выклікаць гэты нумар"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-bg/strings.xml b/java/com/android/dialer/dialpadview/res/values-bg/strings.xml
index 7a3073d77..1188d7959 100644
--- a/java/com/android/dialer/dialpadview/res/values-bg/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-bg/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"плюс"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"гласова поща"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"набиране"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"За да чуете гласовата си поща, първо изключете самолетния режим."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"За да настроите гласовата поща, отворете „Меню“ &gt; „Настройки“."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Добавяне на пауза от 2 сек"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Добавяне на изчакване"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Използване на тонова клавиатура"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Назад към текущото обаждане"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Добавяне на обаждане"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Зарежда се от SIM картата…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Контакти от SIM картата"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Обаждане на <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Не можете да се обадите на този номер"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-bn/strings.xml b/java/com/android/dialer/dialpadview/res/values-bn/strings.xml
index 98171cfc2..9f3713f6e 100644
--- a/java/com/android/dialer/dialpadview/res/values-bn/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-bn/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"ব্যাক-স্পেস"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"যোগ চিহ্ন"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"ভয়েসমেল"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"ডায়াল করুন"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"ভয়েসমেলে কল করতে, সবার আগে বিমানমোড বন্ধ করুন৷"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"ভয়েসমেল সেট-আপ করতে, মেনু &gt; সেটিংসে যান৷"</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"২-সেকেন্ড বিরতি যোগ করুন"</string>
+ <string name="add_wait" msgid="2278146476349811062">"অপেক্ষা যোগ করুন"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"টাচ-টোন কীপ্যাড ব্যবহার করুন"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"আগের কলে ফিরে যান"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"কল যোগ করুন"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"সিম কার্ড থেকে লোড করা হচ্ছে…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"সিম কার্ডের পরিচিতিগুলি"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g> নম্বরে কল করুন"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"এই নম্বরে কল করা যাবে না"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-bs/strings.xml b/java/com/android/dialer/dialpadview/res/values-bs/strings.xml
index 976866285..4c0527b59 100644
--- a/java/com/android/dialer/dialpadview/res/values-bs/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-bs/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"tipka za brisanje"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"govorna pošta"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"biranje"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Da pozovete govornu poštu, isključite Način rada u avionu."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Da postavite govornu poštu, idite na Meni &gt; Postavke."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Dodajte pauzu od 2 sekunde"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Dodajte čekanje"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Korištenje tastature za tonsko biranje"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Povratak na poziv"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Dodajte poziv"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Učitavanje sa SIM kartice…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Kontakti sa SIM kartice"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Pozivanje broja <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Nije moguće pozvati ovaj broj"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-ca/strings.xml b/java/com/android/dialer/dialpadview/res/values-ca/strings.xml
index 2bd6c711c..eda95b474 100644
--- a/java/com/android/dialer/dialpadview/res/values-ca/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-ca/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"retrocés"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"més"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"missatge de veu"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"marca"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Per trucar a la bústia de veu, primer has de desactivar el mode d\'avió."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Per configurar la bústia de veu, ves a Menú &gt; Configuració."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Afegeix una pausa de 2 segons"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Afegeix una espera"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Utilitza el teclat de tons"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Torna a la trucada en curs"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Afegeix una trucada"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"S\'està carregant des de la targeta SIM..."</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Contactes de la targeta SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Truca al <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"No es pot trucar a aquest número"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-cs/strings.xml b/java/com/android/dialer/dialpadview/res/values-cs/strings.xml
index 6c13e1c47..a97d2132b 100644
--- a/java/com/android/dialer/dialpadview/res/values-cs/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-cs/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"Backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"hlasová zpráva"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"vytočit"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Pokud chcete volat do hlasové schránky, vypněte nejdříve režim letadla."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Pokud chcete nastavit hlasovou schránku, přejděte na nabídku &gt; Nastavení."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Přidat pauzu 2 s"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Přidat čekání"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Použít dotykovou tónovou klávesnici"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Vrátit se k probíhajícímu hovoru"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Přidat hovor"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Načítání ze SIM karty…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Kontakty na SIM kartě"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Zavolat <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Na toto číslo není možné zavolat"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-da/strings.xml b/java/com/android/dialer/dialpadview/res/values-da/strings.xml
index 1df734896..45eb87238 100644
--- a/java/com/android/dialer/dialpadview/res/values-da/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-da/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"tilbagetast"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"telefonsvarer"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"ring op"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Hvis du vil ringe til telefonsvareren, skal du først slå Flytilstand fra."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Gå til Menu &gt; Indstillinger for at konfigurere telefonsvareren."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Tilføj pause på 2 sek."</string>
+ <string name="add_wait" msgid="2278146476349811062">"Tilføj ventetid"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Brug trykknaptastatur"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Vend tilbage til igangværende opkald"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Tilføj opkald"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI-nummer"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID-nummer"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Der indlæses fra SIM-kortet…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Kontaktpersoner på SIM-kortet"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Ring til <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Det er ikke muligt at ringe til dette nummer"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-de/strings.xml b/java/com/android/dialer/dialpadview/res/values-de/strings.xml
index c93ce4d4f..c350c9484 100644
--- a/java/com/android/dialer/dialpadview/res/values-de/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-de/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"Rücktaste"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"Plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"Mailboxnachricht"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"Wählen"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Deaktiviere zunächst den Flugmodus, um die Mailbox anzurufen."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Konfiguriere deine Mailbox unter \"Menü\" &gt; \"Einstellungen\"."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2 Sekunden Pause hinzufügen"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Warten hinzufügen"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Tonwahltasten verwenden"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Zurück zum aktuellen Anruf"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Anruf hinzufügen"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Ladevorgang von SIM-Karte läuft…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Kontakte auf SIM-Karte"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g> anrufen"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Diese Nummer kann nicht angerufen werden"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-el/strings.xml b/java/com/android/dialer/dialpadview/res/values-el/strings.xml
index 1bce64b93..0205f7694 100644
--- a/java/com/android/dialer/dialpadview/res/values-el/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-el/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"συν"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"αυτόματος τηλεφωνητής"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"κλήση"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Για κλήση αυτόματου τηλεφωνητή, πρώτα απενεργοποιήστε τη λειτουργία πτήσης."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Για τη ρύθμιση του αυτόματου τηλεφωνητή, μεταβείτε στο στοιχείο Μενού &gt; Ρυθμίσεις."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Προσθήκη παύσης 2 δευτερολέπτων"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Προσθήκη αναμονής"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Χρησιμοποιήστε το πληκτρολόγιο αφής ηχητικών τόνων"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Επιστροφή στην κλήση που βρίσκεται σε εξέλιξη"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Προσθήκη κλήσης"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Φόρτωση από κάρτα SIM…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Επαφές στην κάρτα SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Κλήση <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Δεν μπορείτε να καλέσετε αυτόν τον αριθμό"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-en-rAU/strings.xml b/java/com/android/dialer/dialpadview/res/values-en-rAU/strings.xml
index 62fc54747..3f16055d7 100644
--- a/java/com/android/dialer/dialpadview/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-en-rAU/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"voicemail"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"dial"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"To call voicemail, first turn off Aeroplane mode."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"To set up voicemail, go to Menu &gt; Settings."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Add 2-sec pause"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Add wait"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Use touch tone keypad"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Return to call in progress"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Add call"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Loading from SIM card…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM card contacts"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Call <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Can\'t call this number"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-en-rGB/strings.xml b/java/com/android/dialer/dialpadview/res/values-en-rGB/strings.xml
index 62fc54747..3f16055d7 100644
--- a/java/com/android/dialer/dialpadview/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-en-rGB/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"voicemail"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"dial"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"To call voicemail, first turn off Aeroplane mode."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"To set up voicemail, go to Menu &gt; Settings."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Add 2-sec pause"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Add wait"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Use touch tone keypad"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Return to call in progress"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Add call"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Loading from SIM card…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM card contacts"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Call <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Can\'t call this number"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-en-rIN/strings.xml b/java/com/android/dialer/dialpadview/res/values-en-rIN/strings.xml
index 62fc54747..3f16055d7 100644
--- a/java/com/android/dialer/dialpadview/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-en-rIN/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"voicemail"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"dial"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"To call voicemail, first turn off Aeroplane mode."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"To set up voicemail, go to Menu &gt; Settings."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Add 2-sec pause"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Add wait"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Use touch tone keypad"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Return to call in progress"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Add call"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Loading from SIM card…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM card contacts"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Call <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Can\'t call this number"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-es-rUS/strings.xml b/java/com/android/dialer/dialpadview/res/values-es-rUS/strings.xml
index 4c2908852..5bf2ae8bd 100644
--- a/java/com/android/dialer/dialpadview/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-es-rUS/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"retroceso"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"más"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"buzón de voz"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"marcar"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Para escuchar los mensajes de tu buzón de voz, desactiva primero el modo avión."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Para configurar el buzón de voz, ve a Menú &gt; Configuración."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Agregar pausa de 2 segundos"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Agregar espera"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Usar teclado numérico"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Regresar a la llamada en curso"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Agregar llamada"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Cargando desde tarjeta SIM…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Contactos de la tarjeta SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Llamar al <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"No se puede llamar a este número"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-es/strings.xml b/java/com/android/dialer/dialpadview/res/values-es/strings.xml
index 7fd6355b2..af3590874 100644
--- a/java/com/android/dialer/dialpadview/res/values-es/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-es/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"retroceso"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"más"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"mensaje de voz"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"marcar"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Para llamar al buzón de voz, debes desactivar el modo avión."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Para configurar el buzón de voz, ve a Menú &gt; Ajustes."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Añadir pausa de 2 segundos"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Añadir espera"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Usar teclado táctil"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Volver a la llamada en curso"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Añadir llamada"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Cargando el número de teléfono de la tarjeta SIM…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Contactos de la tarjeta SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Llamar al <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"No se puede llamar a este número"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-et/strings.xml b/java/com/android/dialer/dialpadview/res/values-et/strings.xml
index e71bd717b..c5e4f5f38 100644
--- a/java/com/android/dialer/dialpadview/res/values-et/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-et/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"tagasilüke"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"pluss"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"kõnepostisõnum"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"helista"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Kõnepostisõnumite kuulamiseks lülitage esmalt välja lennukirežiim."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Kõneposti seadistamiseks tehke valikud Menüü &gt; Seaded."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Lisa kahesekundiline paus"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Lisa ootamine"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Kasuta puutetooniga klahvistikku"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Naase käimasolevale kõnele"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Lisa kõne"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Laadimine SIM-kaardilt …"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM-kaardi kontaktid"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Helistamine numbrile <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Sellele numbrile ei saa helistada"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-eu/strings.xml b/java/com/android/dialer/dialpadview/res/values-eu/strings.xml
index c70948b2e..778b199f8 100644
--- a/java/com/android/dialer/dialpadview/res/values-eu/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-eu/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"atzera tekla"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"gehi"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"erantzungailua"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"markatu"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Ahots-mezuak entzuteko, Hegaldi modua desaktibatu behar duzu."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Erantzungailua konfiguratzeko, joan Menua &gt; Ezarpenak atalera."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Gehitu 2 segundoko pausa"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Gehitu itxaronaldia"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Erabili ukipen-tonuak dituen teklatua"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Itzuli abian den deira"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Gehitu deia"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"SIM txarteletik kargatzen…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM txarteleko kontaktuak"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Deitu <xliff:g id="NUMBER">%s</xliff:g> zenbakira"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Ezin da deitu zenbaki honetara"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-fa/strings.xml b/java/com/android/dialer/dialpadview/res/values-fa/strings.xml
index 716360f99..070ca0059 100644
--- a/java/com/android/dialer/dialpadview/res/values-fa/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-fa/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"برگشت به عقب"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"به‌علاوه"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"پست صوتی"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"شماره‌گیری"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"برای تماس با پست صوتی، ابتدا حالت هواپیما را غیرفعال کنید."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"برای راه‌اندازی پست صوتی به منو &gt; تنظیمات بروید."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"افزودن یک مکث ۲ ثانیه‌ای"</string>
+ <string name="add_wait" msgid="2278146476349811062">"افزودن انتظار"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"استفاده از صفحه‌کلید لمسی"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"برگشت به تماس درحال انجام"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"افزودن تماس"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"در حال بارگیری سیم کارت..."</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"مخاطبین سیم‌کارت"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"تماس با <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"تماس با این شماره ممکن نیست"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-fi/strings.xml b/java/com/android/dialer/dialpadview/res/values-fi/strings.xml
index 63e96f639..0a7a7912b 100644
--- a/java/com/android/dialer/dialpadview/res/values-fi/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-fi/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"askelpalautin"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"ääniviesti"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"soita"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Poista lentokonetila käytöstä ennen vastaajaan soittamista."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Määritä puhelinvastaajan asetukset kohdassa Valikko &gt; Asetukset."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Lisää 2 sekunnin tauko"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Lisää tauko"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Käytä näppäimistöä"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Palaa meneillään olevaan puheluun"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Lisää puhelu"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI-koodi"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Ladataan SIM-kortilta…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM-kortin yhteystiedot"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Soita <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Numeroon ei voi soittaa."</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-fr-rCA/strings.xml b/java/com/android/dialer/dialpadview/res/values-fr-rCA/strings.xml
index bb0454552..3080169ac 100644
--- a/java/com/android/dialer/dialpadview/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-fr-rCA/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"retour arrière"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"messagerie vocale"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"composer"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Veuillez désactiver le mode Avion avant d\'appeler la messagerie vocale."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Pour configurer la messagerie vocale, accédez à Menu &gt; Paramètres."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Ajouter une pause de 2 s"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Ajouter une attente"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Utiliser le clavier DTMF"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Reprendre l\'appel en cours"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Ajouter un appel"</string>
+ <string name="imei" msgid="7961343816043247280">"IIEM"</string>
+ <string name="meid" msgid="5274167198744847659">"IDEM"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Chargement à partir de la carte SIM en cours…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Contacts de la carte SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Appeler le <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Vous ne pouvez pas appeler ce numéro"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-fr/strings.xml b/java/com/android/dialer/dialpadview/res/values-fr/strings.xml
index ea3e67c61..b4fc15222 100644
--- a/java/com/android/dialer/dialpadview/res/values-fr/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-fr/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"retour arrière"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"message vocal"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"composer"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Pour pouvoir appeler la messagerie vocale, vous devez désactiver le mode Avion."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Pour configurer la messagerie vocale, accédez à Menu &gt; Paramètres."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Ajouter une pause de 2 s"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Ajouter une attente"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Utiliser le clavier DTMF"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Reprendre l\'appel en cours"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Ajouter un appel"</string>
+ <string name="imei" msgid="7961343816043247280">"Code IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"Code MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Chargement depuis la carte SIM..."</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Contacts de la carte SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Appeler le <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Impossible d\'appeler ce numéro"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-gl/strings.xml b/java/com/android/dialer/dialpadview/res/values-gl/strings.xml
index d3901949b..25ffc278d 100644
--- a/java/com/android/dialer/dialpadview/res/values-gl/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-gl/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"retroceso"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"máis"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"correo de voz"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"marca"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Para chamar ao correo de voz, primeiro desactiva o modo avión."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Para configurar o correo de voz, accede a Menú &gt; Configuración."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Engadir pausa de 2 segundos"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Engadir espera"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Usar teclado de tons táctiles"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Volver á chamada en curso"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Engadir chamada"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Cargando número da tarxeta SIM…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Contactos da tarxeta SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Chamar ao <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Non é posible chamar a este número"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-gu/strings.xml b/java/com/android/dialer/dialpadview/res/values-gu/strings.xml
index 8962694f9..e4e13b3eb 100644
--- a/java/com/android/dialer/dialpadview/res/values-gu/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-gu/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"પ્લસ"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"વૉઇસમેઇલ"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"ડાયલ કરો"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"વૉઇસમેઇલ પર કૉલ કરવા માટે, પહેલાં એરપ્લેન મોડને બંધ કરો."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"વૉઇસમેઇલ સેટ કરવા માટે, મેનૂ &gt; સેટિંગ્સ પર જાઓ."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2-સેકંડનો વિરામ ઉમેરો"</string>
+ <string name="add_wait" msgid="2278146476349811062">"પ્રતીક્ષા ઉમેરો"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"ટચ ટોન કીપેડનો ઉપયોગ કરો"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"કૉલ પર પાછા આવવું પ્રગતિ પર છે"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"કૉલ ઉમેરો"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"SIM કાર્ડમાંથી લોડ કરી રહ્યાં છીએ…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM કાર્ડ સંપર્કો"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g> પર કૉલ કરો"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"આ નંબર પર કૉલ કરી શકાતો નથી"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-hi/strings.xml b/java/com/android/dialer/dialpadview/res/values-hi/strings.xml
index 4388ec2fa..529f8c729 100644
--- a/java/com/android/dialer/dialpadview/res/values-hi/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-hi/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"धन का चिह्न"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"वॉइसमेल"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"डायल करें"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"वॉइसमेल कॉल करने के लिए, पहले हवाई जहाज़ मोड बंद करें."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"वॉइसमेल सेट अप करने के लिए, मेनू &gt; सेटिंग पर जाएं."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2-सेकंड का विराम जोड़ें"</string>
+ <string name="add_wait" msgid="2278146476349811062">"प्रतीक्षा का समय बढ़ाएं"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"टच टोन कीपैड का उपयोग करें"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"कॉल पर लौटने का कार्य प्रगति पर"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"कॉल जोड़ें"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"SIM कार्ड से लोड हो रहा है…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM कार्ड के संपर्क"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g> पर कॉल करें"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"इस नंबर पर कॉल नहीं किया जा सकता"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-hr/strings.xml b/java/com/android/dialer/dialpadview/res/values-hr/strings.xml
index b904d2303..6ec34d29e 100644
--- a/java/com/android/dialer/dialpadview/res/values-hr/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-hr/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"povratna tipka"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"govorna pošta"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"biraj"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Da biste nazvali govornu poštu, najprije isključite način rada u zrakoplovu."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Da biste postavili govornu poštu, idite na Izbornik &gt; Postavke."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Dodaj pauzu od 2 s."</string>
+ <string name="add_wait" msgid="2278146476349811062">"Dodaj čekanje"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Koristite dodirnu zvučnu tipkovnicu"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Natrag na poziv u tijeku"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Dodaj poziv"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Učitavanje sa SIM kartice..."</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Kontakti na SIM kartici"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Nazovite <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Nije moguće nazvati taj broj"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-hu/strings.xml b/java/com/android/dialer/dialpadview/res/values-hu/strings.xml
index 4b1c854bc..7ef242410 100644
--- a/java/com/android/dialer/dialpadview/res/values-hu/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-hu/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"Backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plusz"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"hangposta"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"tárcsázás"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Hangposta hívásához kapcsolja ki a Repülőgép üzemmódot."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"A hangposta beállításához válassza a Menü &gt; Beállítások pontot."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2 mp-es szünet hozzáadása"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Várakozás hozzáadása"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Hangkódos telefonbillentyűzet használata"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Vissza a folyamatban lévő híváshoz"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Hívás hozzáadása"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Betöltés a SIM-kártyáról…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Névjegyek a SIM-kártyán"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Hívás: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Nem lehet felhívni ezt a számot"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-hy/strings.xml b/java/com/android/dialer/dialpadview/res/values-hy/strings.xml
index 4433c7016..0839922ec 100644
--- a/java/com/android/dialer/dialpadview/res/values-hy/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-hy/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"հետշարժ"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"գումարում"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"ձայնային փոստ"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"համարհավաքել"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Ձայնային փոստին զանգելու համար նախ անջատեք Ինքնաթիռի ռեժիմը:"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Ձայնային փոստը կարգավորելու համար անցեք Ընտրացնակ &gt; Կարգավորումներ:"</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Ավելացնել 2 վայրկյան դադար"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Ավելացնել սպասելաժամանակ"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Օգտագործել տոնային ստեղնաշարը"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Վերադառնալ ընթացիկ զանգին"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Ավելացնել զանգ"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Բեռնվում է SIM քարտից…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM քարտի կոնտակտներ"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Զանգել <xliff:g id="NUMBER">%s</xliff:g> համարին"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Հնարավոր չէ զանգել այս համարին"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-in/strings.xml b/java/com/android/dialer/dialpadview/res/values-in/strings.xml
index 7aa47580a..4f7a05fc1 100644
--- a/java/com/android/dialer/dialpadview/res/values-in/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-in/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"tambah"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"pesan suara"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"panggil"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Untuk memanggil pesan suara, nonaktifkan mode Pesawat terlebih dahulu."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Untuk menyiapkan pesan suara, buka Menu &gt; Setelan."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Tambahkan jeda 2 dtk"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Tambahkan tunggu"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Gunakan keypad nada sentuh"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Kembali ke panggilan sedang berlangsung"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Tambahkan panggilan"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Memuat dari kartu SIM…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Kontak di kartu SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Telepon <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Tidak dapat menelepon nomor ini"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-is/strings.xml b/java/com/android/dialer/dialpadview/res/values-is/strings.xml
index 00f7cefe0..de6b9a239 100644
--- a/java/com/android/dialer/dialpadview/res/values-is/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-is/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"bakklykill"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plús"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"talhólfsskilaboð"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"hringja"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Til að hringja í talhólfið þarftu fyrst að slökkva á flugstillingu."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Til að setja upp talhólf þarftu að opna valmyndina og velja Stillingar."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Bæta við 2 sekúndna töf"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Bæta töf við"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Nota snertitónatakkaborð"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Fara aftur í símtal í gangi"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Bæta símtali við"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Hleður af SIM-kortinu…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Tengiliðir á SIM-korti"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Hringja í <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Ekki er hægt að hringja í þetta númer"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-it/strings.xml b/java/com/android/dialer/dialpadview/res/values-it/strings.xml
index 9c4302af3..cb1b75216 100644
--- a/java/com/android/dialer/dialpadview/res/values-it/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-it/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"più"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"messaggio vocale"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"componi"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Per chiamare la segreteria, disattiva la modalità aereo."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Per configurare la segreteria, seleziona Menu &gt; Impostazioni."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Aggiungi pausa 2 sec"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Aggiungi attesa"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Usa tastierino per selezione a toni"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Torna alla chiamata in corso"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Aggiungi chiamata"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Caricamento da SIM..."</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Contatti della scheda SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Chiama <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Impossibile chiamare questo numero"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-iw/strings.xml b/java/com/android/dialer/dialpadview/res/values-iw/strings.xml
index c27af37cb..a8e784e97 100644
--- a/java/com/android/dialer/dialpadview/res/values-iw/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-iw/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"Backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"פלוס"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"דואר קולי"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"חיוג"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"כדי להתקשר לתא הקולי, קודם עליך להשבית את מצב הטיסה."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"כדי להגדיר את התא הקולי, עליך להיכנס לתפריט &gt; הגדרות."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"הוספת השהיה של 2 שניות"</string>
+ <string name="add_wait" msgid="2278146476349811062">"הוספת השהיה"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"שימוש במקלדת עם צלילי חיוג"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"חזרה לשיחה הפעילה"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"הוספת שיחה"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"‏אנחנו טוענים מכרטיס ה-SIM…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"‏אנשי הקשר בכרטיס ה-SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"התקשרות אל <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"לא ניתן להתקשר אל המספר הזה"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-ja/strings.xml b/java/com/android/dialer/dialpadview/res/values-ja/strings.xml
index d560c88b2..78ab67a4c 100644
--- a/java/com/android/dialer/dialpadview/res/values-ja/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-ja/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"Backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"足す"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"ボイスメール"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"発信"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"機内モードを OFF にしてからボイスメールを呼び出してください。"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"ボイスメールを設定するには、[メニュー] &gt; [設定] の順に開いてください。"</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2 秒間の停止を追加"</string>
+ <string name="add_wait" msgid="2278146476349811062">"待機を追加"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"プッシュホン式キーパッドを使う"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"通話に戻る"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"通話を追加"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"SIM カードから読み込み中…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM カードの連絡先"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g> に発信"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"この番号に発信できません"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-ka/strings.xml b/java/com/android/dialer/dialpadview/res/values-ka/strings.xml
index 28e0319fd..2e3b25bf7 100644
--- a/java/com/android/dialer/dialpadview/res/values-ka/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-ka/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"უკუშლა"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"პლუსი"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"ხმოვანი ფოსტა"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"აკრეფა"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"ხმოვან ფოსტასთან დასაკავშირებლად, პირველ რიგში, გამორთეთ თვითმფრინავის რეჟიმი."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"ხმოვანი ფოსტის დასაყენებლად გადადით: მენიუ &gt; პარამეტრები."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"ორწამიანი პაუზის დამატება"</string>
+ <string name="add_wait" msgid="2278146476349811062">"ლოდინის დამატება"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"ტონური რეჟიმის კლავიატურის გამოყენება"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"მიმდინარე ზარზე დაბრუნება"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"ზარის დამატება"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"მიმდინარეობს ჩატვირთვა SIM ბარათიდან…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM ბარათის კონტაქტები"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"დარეკვა <xliff:g id="NUMBER">%s</xliff:g>-ზე"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"ამ ნომერზე დარეკვა შეუძლებელია"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-kk/strings.xml b/java/com/android/dialer/dialpadview/res/values-kk/strings.xml
index 902a41f59..3906017af 100644
--- a/java/com/android/dialer/dialpadview/res/values-kk/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-kk/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"Backspace пернесі"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"қосу"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"дауыстық пошта"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"теру"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Дауыстық поштаға қоңырау шалу мүмкін болуы үшін, ұшақ режимін өшіру қажет."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Дауыстық поштаны орнату үшін, \"Mәзір &gt; Параметрлер\" тармағына өтіңіз."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2 секундтық үзіліс қосу"</string>
+ <string name="add_wait" msgid="2278146476349811062">"\"Күту\" мүмкіндігін қосу"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Сенсорлы және дыбысты пернетақта"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Басталған қоңырауға оралу"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Жаңа қоңырау қосу"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"SIM картасынан жүктелуде..."</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM контактілері"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g> нөміріне қоңырау шалу"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Бұл нөмірге қоңырау шалу мүмкін емес"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-km/strings.xml b/java/com/android/dialer/dialpadview/res/values-km/strings.xml
index be9483ef9..12b04a579 100644
--- a/java/com/android/dialer/dialpadview/res/values-km/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-km/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"លុប​ថយក្រោយ"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"សារ​ជា​សំឡេង"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"ចុច"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"ដើម្បី​ហៅ​សារ​ជា​សំឡេង ដំបូង​ត្រូវ​បិទ​​មុខងារ​​ពេល​ជិះ​យន្តហោះ។"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"ដើម្បី​កំណត់​សារ​ជា​សំឡេង ចូល​ម៉ឺនុយ &gt; ការ​កំណត់។"</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"បញ្ចូល​ការផ្អាក 2 វិនាទី"</string>
+ <string name="add_wait" msgid="2278146476349811062">"បញ្ចូល​ការ​រង់ចាំ"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"ប្រើ​សំឡេង​ប៉ះ​បន្ទះ​លេខ"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"កំពុង​ត្រឡប់​ទៅកាន់​ការ​ហៅ"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"បញ្ចូល​ការហៅទូរសព្ទ"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"កំពុង​ផ្ទុក​ពី​ស៊ីម​កាត..."</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"ទំនាក់ទំនង​នៅ​ក្នុង​ស៊ីម​កាត"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"ហៅ​ទៅ​កាន់ <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"មិនអាចហៅ​ទៅ​កាន់​លេខនេះបានទេ"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-kn/strings.xml b/java/com/android/dialer/dialpadview/res/values-kn/strings.xml
index 843058026..afc99b62b 100644
--- a/java/com/android/dialer/dialpadview/res/values-kn/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-kn/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"ಸಂಕಲನ"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"ಧ್ವನಿಮೇಲ್"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"ಡಯಲ್"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"ಧ್ವನಿಮೇಲ್‌ಗೆ ಕರೆ ಮಾಡಲು, ಮೊದಲು ಏರ್‌ಪ್ಲೇನ್‌‌ ಮೋಡ್‌‌ ಆಫ್‌ ಮಾಡಿ."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"ಧ್ವನಿಮೇಲ್‌ ಹೊಂದಿಸಲು, ಮೆನು &gt; ಸೆಟ್ಟಿಂಗ್‌ಗಳುಗೆ ಹೋಗಿ."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2-ಸೆ ವಿರಾಮವನ್ನು ಸೇರಿಸಿ"</string>
+ <string name="add_wait" msgid="2278146476349811062">"ನಿರೀಕ್ಷೆಯನ್ನು ಸೇರಿಸಿ"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"ಸ್ಪರ್ಶ ಟೋನ್ ಕೀಪ್ಯಾಡ್ ಬಳಸಿ"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"ಪ್ರತ್ಯತ್ತರ ಕರೆಯು ಪ್ರಗತಿಯಲ್ಲಿದೆ"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"ಕರೆಯನ್ನು ಸೇರಿಸಿ"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"ಸಿಮ್‌ ಕಾರ್ಡ್‌ನಿಂದ ಲೋಡ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"ಸಿಮ್‌ ಕಾರ್ಡ್‌ ಸಂಪರ್ಕಗಳು"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g> ಕರೆ ಮಾಡಿ"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"ಈ ಸಂಖ್ಯೆಗೆ ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-ko/strings.xml b/java/com/android/dialer/dialpadview/res/values-ko/strings.xml
index 748843c60..8366ec5f6 100644
--- a/java/com/android/dialer/dialpadview/res/values-ko/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-ko/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"백스페이스"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"더하기"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"음성사서함"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"전화걸기"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"음성사서함 메시지를 확인하려면 먼저 비행기 모드를 해제하세요."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"음성사서함을 설정하려면 메뉴 &gt; 설정으로 이동하세요."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2초간 일시중지 추가"</string>
+ <string name="add_wait" msgid="2278146476349811062">"대기 시간 추가"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"터치톤 키패드 사용"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"진행 중인 통화로 돌아가기"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"통화 추가"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"SIM 카드에서 로딩 중…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM 카드 연락처"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g>에 전화걸기"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"이 번호에 전화를 걸 수 없습니다."</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-ky/strings.xml b/java/com/android/dialer/dialpadview/res/values-ky/strings.xml
index 703abdb1c..8ce17279e 100644
--- a/java/com/android/dialer/dialpadview/res/values-ky/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-ky/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"артка карай өчүрүү"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"кошуу"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"үн почтасы"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"терүү"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Үн почтасын текшерүү үчүн, алгач Учак режимин өчүрүңүз."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Үн почтасын жөндөө үчүн Меню &gt; Жөндөөлөргө кириңиз."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2-сек. тыныгууну кошуңуз"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Тыныгуу кошуу"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Тоналдык терүү тактасын колдонуу"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Аткарылып жаткан чалууга кайтуу"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Чалууну кошуу"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"SIM-картадан жүктөлүүдө…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM картадагы байланыштар"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g> номерине чалуу"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Бул номерге чалуу мүмкүн болбой жатат"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-lo/strings.xml b/java/com/android/dialer/dialpadview/res/values-lo/strings.xml
index aefc70199..a69e28e99 100644
--- a/java/com/android/dialer/dialpadview/res/values-lo/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-lo/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"ປຸ່ມ backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"ບວກ"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"ຂໍ້ຄວາມສຽງ"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"ໂທ"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"ທ່ານຕ້ອງປິດໂໝດຢູ່ເທິງຍົນກ່ອນເພື່ອໂທຫາເບີຂໍ້ຄວາມສຽງ."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"ເພື່ອຕັ້ງຄ່າຂໍ້ຄວາມສຽງ ໃຫ້ໄປທີ່ ເມນູ &gt; ການຕັ້ງຄ່າ."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"ເພີ່ມການຂັ້ນເວລາ 2 ວິນາທີ"</string>
+ <string name="add_wait" msgid="2278146476349811062">"ເພີ່ມການລໍຖ້າ"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"ໃຊ້ປຸ່ມກົດສັນຍານສຽງ"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"ກັບໄປການໂທທີ່ກຳລັງດຳເນີນຢູ່"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"ເພີ່ມການໂທ"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"ກຳລັງໂຫລດຈາກ SIM card..."</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"ລາຍຊື່ຜູ້ຕິດຕໍ່ SIM card"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"ໂທ​ຫາ <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"ບໍ່​ສາ​ມາດ​ໂທ​ຫາ​ເບີ​ນີ້​ໄດ້"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-lt/strings.xml b/java/com/android/dialer/dialpadview/res/values-lt/strings.xml
index 0e352d032..3f09cdc78 100644
--- a/java/com/android/dialer/dialpadview/res/values-lt/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-lt/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"naikinimo klavišas"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"sudėties ženklas"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"balso pašto pranešimas"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"rinkti numerį"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Jei norite skambinti į balso paštą, išjunkite lėktuvo režimą."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Jei norite nustatyti balso paštą, eikite į meniu &gt; „Nustatymai“."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Pridėti 2 sek. pauzę"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Pridėti laukimą"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Naudoti jutiklinę tonų klaviatūrą"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Grįžti prie vykdomo skambučio"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Pridėti skambutį"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Įkeliama iš SIM kortelės..."</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM kortelės kontaktai"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Skambinti <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Negalima skambinti šiuo numeriu"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-lv/strings.xml b/java/com/android/dialer/dialpadview/res/values-lv/strings.xml
index 4af53a3e5..bcc2039e6 100644
--- a/java/com/android/dialer/dialpadview/res/values-lv/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-lv/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"atpakaļatkāpe"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"pluszīme"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"balss pasts"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"sastādīt numuru"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Lai piekļūtu balss pastam, vispirms izslēdziet lidojuma režīmu."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Lai iestatītu balss pastu, atveriet sadaļu Izvēlne &gt; Iestatījumi."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Pievienot 2 sekundes ilgu pauzi"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Pievienot gaidīšanas funkciju"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Izmantot skārientastatūru"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Atgriezties pie pašreizējā zvana"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Pievienot zvanu"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Notiek ielāde no SIM kartes..."</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM kartes kontaktpersonas"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Zvanīt: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Uz šo numuru nevar piezvanīt."</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-mk/strings.xml b/java/com/android/dialer/dialpadview/res/values-mk/strings.xml
index 2780e8aff..f98deb479 100644
--- a/java/com/android/dialer/dialpadview/res/values-mk/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-mk/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"избриши"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"плус"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"говорна пошта"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"бирај"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"За да се јавите во говорна пошта, исклучете го авионскиот режим."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"За поставување говорна пошта, одете во Мени &gt; Поставки."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Додај пауза од 2 сек."</string>
+ <string name="add_wait" msgid="2278146476349811062">"Додај чекање"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Користете тастатура со тонско бирање"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Вратете се на повик во тек"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Додај повик"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Се вчитува од SIM-картичка…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Контакти од SIM-картичка"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Повикај <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Бројот не може да се повика"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-ml/strings.xml b/java/com/android/dialer/dialpadview/res/values-ml/strings.xml
index 7ef8313d6..77033aa48 100644
--- a/java/com/android/dialer/dialpadview/res/values-ml/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-ml/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"ബാക്ക്‌സ്‌പെയ്‌സ്"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"പ്ലസ്"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"വോയ്‌സ്‌മെയിൽ"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"ഡയൽ ചെയ്യുക"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"വോയ്‌സ്‌മെയിൽ വിളിക്കാൻ ആദ്യം ഫ്ലൈറ്റ് മോഡ് ഓഫാക്കുക."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"വോയ്‌സ്‌മെയിൽ സജ്ജീകരിക്കുന്നതിന്, മെനു &gt; ക്രമീകരണങ്ങൾ എന്നതിലേക്ക് പോകുക."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2 സെക്കൻഡ് താൽക്കാലികമായി നിർത്തൽ ചേർക്കുക"</string>
+ <string name="add_wait" msgid="2278146476349811062">"കാത്തിരിക്കൽ ചേർക്കുക"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"ടച്ച് ടോൺ കീപാഡ് ഉപയോഗിക്കുക"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"വിളിച്ചുകൊണ്ടിരിക്കുന്ന കോളിലേക്ക് മടങ്ങുക"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"കോൾ ചേർക്കുക"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"സിം കാർഡിൽ നിന്നും ലോഡുചെയ്യുന്നു…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"സിം കാർഡ് കോൺടാക്റ്റുകൾ"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"വിളിക്കുക <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"ഈ നമ്പറിലേക്ക് കോൾ ചെയ്യാനാവില്ല"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-mn/strings.xml b/java/com/android/dialer/dialpadview/res/values-mn/strings.xml
index 5bc3bb7db..d03bb9379 100644
--- a/java/com/android/dialer/dialpadview/res/values-mn/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-mn/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"ухраах"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"нэмэх"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"дуут шуудан"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"залгах"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Дуут шуудан руу залгахын тулд эхлээд Нислэгийн горимыг идэвхгүй болгоно уу."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Дуут шууданг тохируулахын тулд Цэс &gt; Тохиргоо руу очно уу."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2-сек зогсолт нэмэх"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Хүлээлт нэмэх"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Хүрэлтээр дуугардаг гар ашиглах"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Үргэлжилж буй дуудлага руу буцах"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Дуудлага нэмэх"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"SIM картаас ачаалж байна…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM картны харилцагч"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g> руу залгах"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Энэ дугаар руу залгах боломжгүй"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-mr/strings.xml b/java/com/android/dialer/dialpadview/res/values-mr/strings.xml
index 6f629e1a8..7b466a426 100644
--- a/java/com/android/dialer/dialpadview/res/values-mr/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-mr/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"अधिक"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"व्हॉइसमेल"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"डायल"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"व्हॉइसमेलला कॉल करण्यासाठी, प्रथम विमान मोड बंद करा."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"व्हॉइसमेल सेट करण्‍यासाठी, मेनू &gt; सेटिंग्‍ज वर जा."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2-सेकंदांचा विराम जोडा"</string>
+ <string name="add_wait" msgid="2278146476349811062">"वाट पाहणे जोडा"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"स्‍पर्श टोन कीपॅडचा वापर करा"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"चालू असलेल्या कॉलवर परत जा"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"कॉल जोडा"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"सिम कार्ड मधून लोड करत आहे…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"सिम कार्ड संपर्क"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g> वर कॉल करा"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"या नंबरवर कॉल करू शकत नाही"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-ms/strings.xml b/java/com/android/dialer/dialpadview/res/values-ms/strings.xml
index f767a2587..a3cbbea88 100644
--- a/java/com/android/dialer/dialpadview/res/values-ms/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-ms/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"undur ruang"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"tambah"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"mel suara"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"dail"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Untuk membuat panggilan ke mel suara, mula-mula matikan mod Pesawat."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Untuk menyediakan mel suara, pergi ke Menu &gt; Tetapan."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Tambah jeda 2 saat"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Tambah penungguan"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Gunakan pad kekunci nada sentuh"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Kembali ke panggilan yang sedang berlangsung"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Tambah panggilan"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Memuatkan daripada kad SIM…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Kenalan kad SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Panggil <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Tidak dapat menghubungi nombor ini"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-my/strings.xml b/java/com/android/dialer/dialpadview/res/values-my/strings.xml
index 877805680..4ece9fa18 100644
--- a/java/com/android/dialer/dialpadview/res/values-my/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-my/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"နောက်ပြန်ဖျက်ခလုတ်"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"အပေါင်း လက္ခဏာ"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"အသံမေးလ်"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"ဖုန်းခေါ်ရန်"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"အသံမေးလ်ခေါ်ဆိုရန်အတွက် လေယာဉ်ပျံမုဒ်ကို ဦးစွာပိတ်ပါ။"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"အသံမေးလ်စနစ်ကို စီစဉ်သတ်မှတ်ရန် မီနူး &gt; ဆက်တင်များသို့ သွားပါ။"</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"၂-စက္ကန့် ခဏရပ်ရန်"</string>
+ <string name="add_wait" msgid="2278146476349811062">"စောင့်ဆိုင်းရန်"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"အသံမြည်ခလုတ်ခုံကို အသုံးပြုရန်"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"လက်ရှိဖုန်းပြောနေမှုသို့ ပြန်သွားရန်"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"နောက်ထပ်ဖုန်းတစ်ခု ခေါ်ဆိုရန်"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"ဆင်းမ်ကဒ်မှ ဖွင့်နေသည်…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"ဆင်းမ်ကဒ်အဆက်အသွယ်များ"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g> ကို ဖုန်းခေါ်ရန်"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"ဤနံပါတ်ကို မခေါ်ဆိုနိုင်ပါ"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-nb/strings.xml b/java/com/android/dialer/dialpadview/res/values-nb/strings.xml
index c0756b25d..0f78eb7cf 100644
--- a/java/com/android/dialer/dialpadview/res/values-nb/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-nb/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"tilbaketast"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"pluss"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"talepost"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"ring"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Du må slå av flymodus før du kan sjekke talepostkassen."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"For å konfigurere talepostfunksjonen, gå til Meny &gt; Innstillinger."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Legg til pause på 2 sek."</string>
+ <string name="add_wait" msgid="2278146476349811062">"Legg til Vent"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Bruk tonetastatur"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Gå tilbake til aktiv samtale"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Nytt anrop"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Henter fra SIM-kort …"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Kontakter på SIM-kort"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Ring <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Kan ikke ringe dette nummeret"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-ne/strings.xml b/java/com/android/dialer/dialpadview/res/values-ne/strings.xml
index 713c6ad96..6369eb7fd 100644
--- a/java/com/android/dialer/dialpadview/res/values-ne/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-ne/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"ब्याकस्पेस"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"जोड"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"भ्वाइसमेल"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"डायल गर्नुहोस्"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"भ्वाइसमेल जाँच गर्न पहिले हवाइजहाज मोडलाई निष्क्रिय पार्नुहोस्।"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"भ्वाइसमेल सेट गर्न मेनु &gt; सेटिङहरूमा जानुहोस्।"</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"२ सेकन्डको पज थप्नुहोस्"</string>
+ <string name="add_wait" msgid="2278146476349811062">"प्रतीक्षाको समय थप्नुहोस्"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"टच टोन किप्याड प्रयोग गर्नुहोस्"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"जारी रहेको कलमा फर्किनुहोस्"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"कल थप्नुहोस्"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"SIM कार्डबाट लोड हुँदै"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM कार्डका सम्पर्क ठेगानाहरू"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g> मा कल गर्नुहोस्"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"यस नम्बरमा कल गर्न सकिँदैन"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-nl/strings.xml b/java/com/android/dialer/dialpadview/res/values-nl/strings.xml
index c7e058409..19911a1fc 100644
--- a/java/com/android/dialer/dialpadview/res/values-nl/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-nl/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"voicemail"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"bellen"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Als je je voicemail wilt bellen, moet je eerst de vliegtuigmodus uitschakelen."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Voor het instellen van voicemail ga je naar Menu &gt; Instellingen."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Pauze van 2 seconden toevoegen"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Wachten toevoegen"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Toetsenblok voor toetsgeluid gebruiken"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Terug naar actieve oproep"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Oproep toevoegen"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Laden vanaf simkaart…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Contacten op simkaart"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g> bellen"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Kan dit nummer niet bellen"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-no/strings.xml b/java/com/android/dialer/dialpadview/res/values-no/strings.xml
index c0756b25d..0f78eb7cf 100644
--- a/java/com/android/dialer/dialpadview/res/values-no/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-no/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"tilbaketast"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"pluss"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"talepost"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"ring"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Du må slå av flymodus før du kan sjekke talepostkassen."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"For å konfigurere talepostfunksjonen, gå til Meny &gt; Innstillinger."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Legg til pause på 2 sek."</string>
+ <string name="add_wait" msgid="2278146476349811062">"Legg til Vent"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Bruk tonetastatur"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Gå tilbake til aktiv samtale"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Nytt anrop"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Henter fra SIM-kort …"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Kontakter på SIM-kort"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Ring <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Kan ikke ringe dette nummeret"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-pa/strings.xml b/java/com/android/dialer/dialpadview/res/values-pa/strings.xml
index 66378e238..be5dc626f 100644
--- a/java/com/android/dialer/dialpadview/res/values-pa/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-pa/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"ਬੈਕਸਪੇਸ"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"ਪਲਸ"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"ਵੌਇਸਮੇਲ"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"ਡਾਇਲ ਕਰੋ"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"ਵੌਇਸਮੇਲ ਨੂੰ ਕਾਲ ਕਰਨ ਲਈ, ਪਹਿਲਾਂ ਜਹਾਜ਼ ਮੋਡ ਬੰਦ ਕਰੋ।"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"ਵੌਇਸਮੇਲ ਸਥਾਪਤ ਕਰਨ ਲਈ, ਮੀਨੂ &gt; ਸੈਟਿੰਗਾਂ \'ਤੇ ਜਾਓ।"</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2-ਸਕਿੰਟ ਦਾ ਵਿਰਾਮ ਸ਼ਾਮਲ ਕਰੋ"</string>
+ <string name="add_wait" msgid="2278146476349811062">"ਉਡੀਕ ਦਾ ਸਮਾਂ ਸ਼ਾਮਲ ਕਰੋ"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"ਸਪਰੱਸ਼ ਧੁਨੀ ਕੀ-ਪੈਡ ਵਰਤੋ"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"ਜਾਰੀ ਕਾਲ \'ਤੇ ਵਾਪਸ ਜਾਓ"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"ਕਾਲ ਸ਼ਾਮਲ ਕਰੋ"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"ਸਿਮ ਕਾਰਡ ਤੋਂ ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"ਸਿਮ ਕਾਰਡ ਸੰਪਰਕ"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g> ਨੂੰ ਕਾਲ ਕਰੋ"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"ਇਸ ਨੰਬਰ \'ਤੇ ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-pl/strings.xml b/java/com/android/dialer/dialpadview/res/values-pl/strings.xml
index b91c2c3d4..e3045b32f 100644
--- a/java/com/android/dialer/dialpadview/res/values-pl/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-pl/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"usuń"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"poczta głosowa"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"wybierz numer"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Aby połączyć się z pocztą głosową, najpierw wyłącz tryb samolotowy."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Aby skonfigurować pocztę głosową, kliknij Menu &gt; Ustawienia."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Dodaj 2-sekundową pauzę"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Dodaj oczekiwanie"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Użyj klawiatury tonowej"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Wróć do aktywnego połączenia"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Dodaj połączenie"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Wczytuję z karty SIM…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Kontakty z karty SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Zadzwoń: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Nie można zadzwonić pod ten numer"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-pt-rBR/strings.xml b/java/com/android/dialer/dialpadview/res/values-pt-rBR/strings.xml
index f5d6b9767..dc530fbd7 100644
--- a/java/com/android/dialer/dialpadview/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-pt-rBR/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"voltar"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"mais"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"correio de voz"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"discar"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Para ligar para o correio de voz, primeiro desative o modo avião."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Para configurar o correio de voz, acesse Menu &gt; Configurações."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Adicionar pausa de 2 segundos"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Adicionar espera"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Usar teclado multifrequencial"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Retornar para a chamada em espera"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Adicionar chamada"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Carregando do cartão SIM..."</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Contatos do cartão SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Ligar para <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Não é possível ligar para este número"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-pt-rPT/strings.xml b/java/com/android/dialer/dialpadview/res/values-pt-rPT/strings.xml
index 8d98b07ba..aa3989272 100644
--- a/java/com/android/dialer/dialpadview/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-pt-rPT/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"retrocesso"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"mais"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"mensagem de correio de voz"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"marcar"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Para efetuar uma chamada para o correio de voz, desative primeiro o modo de avião."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Para configurar o correio de voz, aceda a Menu &gt; Definições."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Adicionar pausa de 2 seg."</string>
+ <string name="add_wait" msgid="2278146476349811062">"Adicionar espera"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Utilizar teclado numérico com tons de toque"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Voltar à chamada em curso"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Adic. cham."</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"A carregar a partir do cartão SIM..."</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Contactos do cartão SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Telefonar para <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Não é possível ligar para este número"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-pt/strings.xml b/java/com/android/dialer/dialpadview/res/values-pt/strings.xml
index f5d6b9767..dc530fbd7 100644
--- a/java/com/android/dialer/dialpadview/res/values-pt/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-pt/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"voltar"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"mais"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"correio de voz"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"discar"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Para ligar para o correio de voz, primeiro desative o modo avião."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Para configurar o correio de voz, acesse Menu &gt; Configurações."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Adicionar pausa de 2 segundos"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Adicionar espera"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Usar teclado multifrequencial"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Retornar para a chamada em espera"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Adicionar chamada"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Carregando do cartão SIM..."</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Contatos do cartão SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Ligar para <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Não é possível ligar para este número"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-ro/strings.xml b/java/com/android/dialer/dialpadview/res/values-ro/strings.xml
index 96075062e..87f48361d 100644
--- a/java/com/android/dialer/dialpadview/res/values-ro/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-ro/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"tasta backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"mesaj vocal"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"apelați"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Pentru a apela mesageria vocală, mai întâi dezactivați modul Avion."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Pentru a configura mesageria vocală, accesați Meniu &gt; Setări."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Adăugați o pauză de 2 secunde"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Adăugați interval de așteptare"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Tastatura tactilă cu sunet"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Reveniți la apelul în curs"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Adăugați un apel"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Se încarcă de pe cardul SIM…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Agenda de pe cardul SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Apelați <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Nu puteți apela acest număr"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-ru/strings.xml b/java/com/android/dialer/dialpadview/res/values-ru/strings.xml
index 5f1721d0b..24dd23c44 100644
--- a/java/com/android/dialer/dialpadview/res/values-ru/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-ru/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"клавиша Backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"плюс"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"голосовая почта"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"набор номера"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Сначала отключите режим полета."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Чтобы настроить голосовую почту, выберите \"Меню &gt; Настройки\"."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Добавить двухсекундную паузу"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Добавить паузу"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Открыть панель тонального набора"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Вернуться к текущему вызову"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Добавить вызов"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Загрузка с SIM-карты…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Контакты на SIM-карте"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Позвонить: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"На этот номер нельзя позвонить"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-si/strings.xml b/java/com/android/dialer/dialpadview/res/values-si/strings.xml
index 54ba2d712..f9c65b2a0 100644
--- a/java/com/android/dialer/dialpadview/res/values-si/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-si/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"backspace බොත්තම"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"ධන"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"හඬ තැපෑල"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"අමතන්න"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"හඬ තැපෑල ඇමතීමට, මුලින්ම ගුවන්යානා ප්‍රකාරය වසන්න."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"හඬ තැපෑල පිහිටුවීමට, මෙනුව &gt; සැකසීම් වෙත යන්න."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"තත්පර 2ක විරාමයක් එක් කරන්න"</string>
+ <string name="add_wait" msgid="2278146476349811062">"රැඳී සිටීම එක් කරන්න"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"ස්පර්ශ නාද යතුරුපෑඩය භාවිතා කරන්න"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"පවතින ඇමතුමට නැවත යන්න"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"ඇමතුම එක් කරන්න"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"SIM කාඩ්පතෙන් පූරණය කරමින්…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM කාඩ්පත් සම්බන්ධතා"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g> අමතන්න"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"මෙම අංකයට ඇමතිය නොහැකිය"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-sk/strings.xml b/java/com/android/dialer/dialpadview/res/values-sk/strings.xml
index ed584ce82..f8d2ae63c 100644
--- a/java/com/android/dialer/dialpadview/res/values-sk/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-sk/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"spätné mazanie"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"hlasová správa"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"vytáčanie"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Ak chcete volať hlasovú schránku, najprv vypnite režim v lietadle."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Ak chcete nastaviť hlasovú schránku, prejdite na ponuku &gt; Nastavenia."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Pridať dvojsekundovú pauzu"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Pridať čakanie"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Použiť dotykovú tónovú klávesnicu"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Vrátiť sa k prebiehajúcemu hovoru"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Pridať hovor"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Načítava sa zo SIM karty..."</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Kontakty na SIM karte"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Volať na číslo <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Na toto číslo sa nedá zavolať"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-sl/strings.xml b/java/com/android/dialer/dialpadview/res/values-sl/strings.xml
index 795a023a7..e406034bb 100644
--- a/java/com/android/dialer/dialpadview/res/values-sl/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-sl/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"vračalka"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"sporočilo v odzivniku"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"pokliči"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Če želite poklicati odzivnik, najprej izklopite način za letalo."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Če želite nastaviti odzivnik, odprite »Meni« &gt; »Nastavitve«."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Dodaj 2 sekundi premora"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Dodaj čakanje"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Uporabi številčnico za tonsko izbiranje"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Nazaj na klic, ki poteka"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Dodaj klic"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Nalaganje s kartice SIM …"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Stiki na kartici SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Pokliči <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Te številke ni mogoče poklicati"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-sq/strings.xml b/java/com/android/dialer/dialpadview/res/values-sq/strings.xml
index 7eb6af5c6..fd112593d 100644
--- a/java/com/android/dialer/dialpadview/res/values-sq/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-sq/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"kthim prapa"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"postë zanore"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"formo numrin"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Për të telefonuar postën zanore, në fillim çaktivizo modalitetin \"në aeroplan\"."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Për të konfiguruar postën zanore, shko te \"Menyja\" &gt; \"Cilësimet\"."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Shto një ndërprerje 2-sekondëshe"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Shto një pritje"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Përdor bllokun e tasteve me prekje"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Kthehu te telefonata në vazhdim"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Shto telefonatë"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Po ngarkon nga karta SIM…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Kontaktet e kartës SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Telefono <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Ky numër nuk mund të telefonohet"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-sr/strings.xml b/java/com/android/dialer/dialpadview/res/values-sr/strings.xml
index fc9d941c9..706881309 100644
--- a/java/com/android/dialer/dialpadview/res/values-sr/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-sr/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"плус"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"говорна пошта"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"бирајте број"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Да бисте позвали говорну пошту, прво искључите режим рада у авиону."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Да бисте подесили говорну пошту, идите у Мени &gt; Подешавања."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Додај паузу од 2 секунде"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Додај чекање"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Користи тастатуру за тонско бирање"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Назад у позив који је у току"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Додај позив"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Учитава се са SIM картице…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Контакти на SIM картици"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Позови <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Није могуће позвати овај број"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-sv/strings.xml b/java/com/android/dialer/dialpadview/res/values-sv/strings.xml
index 7554b522f..00524a89d 100644
--- a/java/com/android/dialer/dialpadview/res/values-sv/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-sv/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"backsteg"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"röstbrevlåda"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"ring"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Om du vill ringa röstbrevlådan måste du först inaktivera flygplansläget."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Välj Meny &gt; Inställningar om du vill konfigurera röstbrevlådan."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Lägg till en paus på 2 sek."</string>
+ <string name="add_wait" msgid="2278146476349811062">"Lägg till väntetid"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Använd tonvalstelefon"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Återvänd till pågående samtal"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Lägg till samtal"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI-kod"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Läser in från SIM-kort …"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Kontakter från SIM-kort"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Ring <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Det går inte att ringa det här numret"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-sw/strings.xml b/java/com/android/dialer/dialpadview/res/values-sw/strings.xml
index 84479f0fa..98ed9cea8 100644
--- a/java/com/android/dialer/dialpadview/res/values-sw/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-sw/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"nafasi ya nyuma"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"jumlisha"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"ujumbe wa sauti"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"piga simu"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Ili usikilize ujumbe wa sauti, kwanza zima Hali ya Ndegeni."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Ili uweke mipangilio ya ujumbe wa sauti, nenda kwenye Menyu &gt; Mipangilio."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Ongeza usitishaji wa sekunde 2"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Ongeza muda wa kusubiri"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Tumia kibao cha kuchapa cha sauti na kugusa"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Rudi kwenye simu inayoendelea"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Ongeza simu"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Inapakia kutoka kwenye SIM kadi…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Anwani za SIM kadi"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Piga simu <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Haiwezi kupiga simu kwa nambari hii"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-ta/strings.xml b/java/com/android/dialer/dialpadview/res/values-ta/strings.xml
index aad784b58..667010db6 100644
--- a/java/com/android/dialer/dialpadview/res/values-ta/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-ta/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"பேக்ஸ்பேஸ்"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"பிளஸ்"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"குரலஞ்சல்"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"டயல் பொத்தான்"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"குரலஞ்சலை அழைக்க, முதலில் விமானப் பயன்முறையை முடக்கவும்."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"குரலஞ்சலை அமைக்க, மெனு &gt; அமைப்புகள் என்பதற்குச் செல்லவும்."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2 வினாடி இடைநிறுத்தத்தைச் சேர்"</string>
+ <string name="add_wait" msgid="2278146476349811062">"காத்திருப்பைச் சேர்"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"டச் டோன் விசைத்தளத்தைப் பயன்படுத்து"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"செயலிலுள்ள அழைப்பிற்குத் திரும்பு"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"அழைப்பைச் சேர்"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"சிம் கார்டிலிருந்து ஏற்றுகிறது…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"சிம் கார்டு தொடர்புகள்"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g> எண்ணை அழை"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"இந்த எண்ணை அழைக்க முடியாது"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-te/strings.xml b/java/com/android/dialer/dialpadview/res/values-te/strings.xml
index eced150a0..5e24667aa 100644
--- a/java/com/android/dialer/dialpadview/res/values-te/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-te/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"బ్యాక్‌స్పేస్"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"కూడిక"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"వాయిస్ మెయిల్"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"డయల్ చేయండి"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"వాయిస్ మెయిల్ కాల్ చేయడానికి, మొదట విమానం మోడ్‌ను ఆపివేయండి."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"వాయిస్ మెయిల్ సెటప్ చేయడానికి, మెను &gt; సెట్టింగ్‌లకు వెళ్లండి."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2-సెకన్ల పాజ్‌ను జోడించండి"</string>
+ <string name="add_wait" msgid="2278146476349811062">"నిరీక్షణ సమయాన్ని జోడించండి"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"టచ్ టోన్ కీప్యాడ్‌ను ఉపయోగించండి"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"ప్రస్తుతం నడుస్తున్న కాల్‌కు తిరిగి వెళ్లండి"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"కాల్ జోడించండి"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"సిమ్ కార్డు నుండి లోడ్ చేస్తోంది…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM కార్డ్ పరిచయాలు"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g>కు కాల్ చేయండి"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"ఈ నంబర్‌కు కాల్ చేయలేరు"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-th/strings.xml b/java/com/android/dialer/dialpadview/res/values-th/strings.xml
index db2c4959e..bb4cabd70 100644
--- a/java/com/android/dialer/dialpadview/res/values-th/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-th/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"ลบถอยหลัง"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"บวก"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"ข้อความเสียง"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"หมุนหมายเลข"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"หากต้องการฟังข้อความเสียง ให้ปิดโหมดใช้งานบนเครื่องบินก่อน"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"หากต้องการตั้งค่าข้อความเสียง ให้ไปที่เมนู &gt; การตั้งค่า"</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"เพิ่มช่วงคั่น 2 วินาที"</string>
+ <string name="add_wait" msgid="2278146476349811062">"เพิ่มการรอ"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"ใช้ปุ่มกดสัญญาณเสียง"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"กลับไปคุยสายต่อ"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"เพิ่มการโทร"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"กำลังโหลดจากซิมการ์ด…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"รายชื่อติดต่อในซิมการ์ด"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"โทร <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"ไม่สามารถโทรไปยังหมายเลขนี้"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-tl/strings.xml b/java/com/android/dialer/dialpadview/res/values-tl/strings.xml
index 223f81e06..d23823e16 100644
--- a/java/com/android/dialer/dialpadview/res/values-tl/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-tl/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"plus"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"voicemail"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"mag-dial"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Upang tumawag sa voicemail, i-off muna ang Airplane mode."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Upang mag-set up ng voicemail, pumunta sa Menu &gt; Mga Setting."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Magdagdag ng pag-pause na 2-seg"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Magdagdag ng paghihintay"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Gumamit ng touch tone na keypad"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Bumalik sa kasalukuyang tawag"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Magdagdag ng tawag"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Naglo-load mula sa SIM card…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Mga contact sa SIM card"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Tawagan ang <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Hindi matawagan ang numerong ito"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-tr/strings.xml b/java/com/android/dialer/dialpadview/res/values-tr/strings.xml
index ae8151178..b7b85013c 100644
--- a/java/com/android/dialer/dialpadview/res/values-tr/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-tr/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"geri tuşu"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"artı"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"sesli mesaj"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"telefonu arar"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Sesli mesajı aramak için öncelikle Uçak modunu kapatın."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Sesli mesajı yapılandırmak için Menü &gt; Ayarlar\'a gidin."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2 saniyelik duraklama ekle"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Bekleme ekle"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Telefon tuş takımını kullan"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Devam eden çağrıya dön"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Çağrı ekle"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"SIM karttan yükleniyor…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM kart kişileri"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Telefon et: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Bu numara aranamaz"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-uk/strings.xml b/java/com/android/dialer/dialpadview/res/values-uk/strings.xml
index 7841c4ca6..c862fcedf 100644
--- a/java/com/android/dialer/dialpadview/res/values-uk/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-uk/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"видалення символів перед курсором"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"плюс"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"голосова пошта"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"дзвонити"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Щоб перевірити голосову пошту, спочатку вимкніть режим польоту."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Щоб налаштувати голосову пошту, перейдіть у Меню &gt; Налаштування."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Додати 2-секундну паузу"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Додати паузу"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Використовувати тональний набір"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Повернутися до поточного виклику"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Додати виклик"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Завантаження із SIM-карти…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Контакти із SIM-карти"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Зателефонувати на номер <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Не можна телефонувати на цей номер"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-ur/strings.xml b/java/com/android/dialer/dialpadview/res/values-ur/strings.xml
index 6a537be9b..a7db8ec2b 100644
--- a/java/com/android/dialer/dialpadview/res/values-ur/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-ur/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"بیک اسپیس"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"جمع"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"صوتی میل"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"ڈائل کریں"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"صوتی میل کو کال کرنے کیلئے، پہلے ہوائی جہاز طرز آف کریں۔"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"صوتی میل سیٹ کرنے کے لئے، مینو &gt; ترتیبات میں جائیں۔"</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2 سیکنڈ کا توقف شامل کریں"</string>
+ <string name="add_wait" msgid="2278146476349811062">"انتظار شامل کریں"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"ٹچ ٹون کی پیڈ کا استعمال کریں"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"جاری کال پر واپس لوٹیں"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"کال شامل کریں"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"‏SIM کارڈ سے لوڈ ہو رہا ہے…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"‏SIM کارڈ کے رابطے"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g> کو کال کریں"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"اس نمبر پر کال نہیں کر سکتے"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-uz/strings.xml b/java/com/android/dialer/dialpadview/res/values-uz/strings.xml
index 6985893d7..2230c2c1e 100644
--- a/java/com/android/dialer/dialpadview/res/values-uz/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-uz/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"orqaga"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"qo‘shuv belgisi"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"ovozli pochta"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"raqam terish"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Ovozli pochtaga qo‘ng‘iroq qilish uchun parvoz rejimidan chiqing."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Ovozli pochtani sozlab olish uchun Menyu &gt; Sozlamalarga o‘ting."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"2 soniyalik pauza qo‘shish"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Pauza qo‘shish"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Tovushli raqam tergichni ochish"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Davom etayotgan chaqiruvga qaytish"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Chaqiruv qo‘shish"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"SIM kartadan yuklanmoqda…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM kartadagi kontaktlar"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"<xliff:g id="NUMBER">%s</xliff:g> raqamiga qo‘ng‘iroq qilish"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Bu raqamga qo‘ng‘iroq qilib bo‘lmaydi"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-vi/strings.xml b/java/com/android/dialer/dialpadview/res/values-vi/strings.xml
index e68a0b5da..5022e79ec 100644
--- a/java/com/android/dialer/dialpadview/res/values-vi/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-vi/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"phím lùi"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"cộng"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"thư thoại"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"quay số"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Để gọi thư thoại, trước tiên hãy tắt Chế độ trên máy bay."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Để thiết lập thư thoại, hãy đi tới Menu &gt; Cài đặt."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Thêm tạm dừng 2 giây"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Thêm chờ"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Sử dụng bàn phím số cảm ứng có âm"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Quay lại cuộc gọi đang thực hiện"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Thêm cuộc gọi"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Đang tải từ thẻ SIM…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Danh bạ trên thẻ SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Gọi <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Không thể gọi số này"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-zh-rCN/strings.xml b/java/com/android/dialer/dialpadview/res/values-zh-rCN/strings.xml
index 262362dd9..8d50e8ec3 100644
--- a/java/com/android/dialer/dialpadview/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-zh-rCN/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"删除"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"加号"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"语音邮件"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"拨号"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"要呼叫语音信箱,请先关闭飞行模式。"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"要设置语音信箱,请转到“菜单”&gt;“设置”。"</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"加入 2 秒暂停时间"</string>
+ <string name="add_wait" msgid="2278146476349811062">"加入等待时间"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"使用按键式键盘"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"返回正在进行的通话"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"添加通话"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"正从 SIM 卡中加载…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM 卡联系人"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"拨打 <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"无法拨打此号码"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-zh-rHK/strings.xml b/java/com/android/dialer/dialpadview/res/values-zh-rHK/strings.xml
index e7bc60682..320217b3e 100644
--- a/java/com/android/dialer/dialpadview/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-zh-rHK/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"退格鍵"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"加號"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"留言"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"撥號"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"如要致電留言信箱,請先關閉飛行模式。"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"如要設定留言信箱,請移至 [選單] &gt; [設定]。"</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"新增 2 秒暫停功能"</string>
+ <string name="add_wait" msgid="2278146476349811062">"新增插播"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"使用觸控音頻鍵盤"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"返回進行中的通話"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"新增通話"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"正在從 SIM 卡載入…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM 卡聯絡人"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"撥打 <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"無法撥打此號碼"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-zh-rTW/strings.xml b/java/com/android/dialer/dialpadview/res/values-zh-rTW/strings.xml
index 21d2b8b1b..b87048f3c 100644
--- a/java/com/android/dialer/dialpadview/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-zh-rTW/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"Backspace 鍵"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"加號"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"語音留言"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"撥號"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"如要撥打語音信箱聽取留言,請先關閉飛航模式。"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"如要設定語音信箱,請依序前往 [選單] &gt; [設定]。"</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"新增 2 秒暫停功能"</string>
+ <string name="add_wait" msgid="2278146476349811062">"新增插播功能"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"使用觸控音鍵盤"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"返回進行中的通話"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"新增通話"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"正在從 SIM 卡載入…"</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"SIM 卡聯絡人"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"撥打 <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"無法撥打這個號碼"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-zu/strings.xml b/java/com/android/dialer/dialpadview/res/values-zu/strings.xml
index 458781f4a..6b1c5f5d7 100644
--- a/java/com/android/dialer/dialpadview/res/values-zu/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-zu/strings.xml
@@ -22,4 +22,18 @@
<string name="description_delete_button" msgid="8431313818404527096">"i-backspace"</string>
<string name="description_image_button_plus" msgid="8936338119824589388">"hlanganisa"</string>
<string name="description_voicemail_button" msgid="4187006295368768215">"ivoyisimeyili"</string>
+ <string name="description_dial_button" msgid="6826108965053146374">"dayela"</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="1728176091017802282">"Ukushayela i-voicemail, vala kuqala imodi Yendiza."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4287602816589585704">"Ukuya emyalezweni wephimbo, yana ezisethweni &gt; zemenyu."</string>
+ <string name="add_2sec_pause" msgid="395591627218789322">"Faka ukumisa okwesikhashana kwamasekhondi angu-2"</string>
+ <string name="add_wait" msgid="2278146476349811062">"Yengeza ukulinda"</string>
+ <string name="dialer_useDtmfDialpad" msgid="6919241568926709507">"Sebenzisa ikhiphedi yethoni yokuthinta"</string>
+ <string name="dialer_returnToInCallScreen" msgid="4111111633248125741">"Buyela kukholi eqhubekayo"</string>
+ <string name="dialer_addAnotherCall" msgid="6842534741272651900">"Engeza ikholi"</string>
+ <string name="imei" msgid="7961343816043247280">"IMEI"</string>
+ <string name="meid" msgid="5274167198744847659">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="4158651660353159679">"Ilayisha kusuka ekhadini le-SIM..."</string>
+ <string name="simContacts_title" msgid="8972942600800349990">"Othintana nabo bekhadi le-SIM"</string>
+ <string name="menu_callNumber" msgid="1898333075466418368">"Shayela <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="4806479823793649894">"Ayikwazi ukushayela le nombolo"</string>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values/colors.xml b/java/com/android/dialer/dialpadview/res/values/colors.xml
index d27468db7..8bea35710 100644
--- a/java/com/android/dialer/dialpadview/res/values/colors.xml
+++ b/java/com/android/dialer/dialpadview/res/values/colors.xml
@@ -17,11 +17,9 @@
<resources>
<!-- Colors for the dialpad -->
<color name="background_dialpad">#fcfcfc</color>
- <color name="background_dialpad_pressed">#ececec</color>
<color name="dialpad_primary_text_color">@color/dialer_theme_color</color>
<color name="dialpad_secondary_text_color">#737373</color>
<color name="dialpad_digits_text_color">#333</color>
- <color name="dialpad_separator_line_color">#dadada</color>
<color name="dialpad_icon_tint">#89000000</color>
<color name="dialpad_voicemail_tint">#919191</color>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values/dimens.xml b/java/com/android/dialer/dialpadview/res/values/dimens.xml
index 210c81697..1e5880a3e 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">36sp</dimen>
+ <dimen name="dialpad_key_numbers_default_size">36dp</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>
@@ -25,17 +25,13 @@
<!-- Zero key should have less space between self and text because "+" is smaller -->
<dimen name="dialpad_zero_key_number_default_margin_bottom">1dp</dimen>
<dimen name="dialpad_symbol_margin_bottom">13dp</dimen>
- <dimen name="dialpad_key_plus_size">18sp</dimen>
- <dimen name="dialpad_horizontal_padding">5dp</dimen>
<dimen name="dialpad_digits_text_size">34sp</dimen>
<dimen name="dialpad_digits_text_min_size">24sp</dimen>
<dimen name="dialpad_digits_height">60dp</dimen>
<dimen name="dialpad_digits_padding">16dp</dimen>
<dimen name="dialpad_digits_menu_left_padding">8dp</dimen>
<dimen name="dialpad_digits_menu_right_padding">10dp</dimen>
- <dimen name="dialpad_center_margin">3dp</dimen>
- <dimen name="dialpad_button_margin">2dp</dimen>
- <dimen name="dialpad_voicemail_icon_padding_top">2dp</dimen>
+ <dimen name="dialpad_voicemail_icon_size">18dp</dimen>
<dimen name="dialpad_key_button_translate_y">100dp</dimen>
<dimen name="dialpad_overflow_margin">8dp</dimen>
<dimen name="dialpad_space_above_keys">14dp</dimen>
@@ -45,4 +41,7 @@
<!-- Top/Bottom padding around the ILD rate display box. -->
<dimen name="ild_margin_height">10dp</dimen>
+
+ <!-- Length of dialpad's shadows in dialer. -->
+ <dimen name="shadow_length">10dp</dimen>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values/strings.xml b/java/com/android/dialer/dialpadview/res/values/strings.xml
index 920e6e25c..b3e92f1d9 100644
--- a/java/com/android/dialer/dialpadview/res/values/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values/strings.xml
@@ -14,7 +14,7 @@
~ See the License for the specific language governing permissions and
~ limitations under the License
-->
-<resources>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="dialpad_star_number" translatable="false">*</string>
<string name="dialpad_pound_number" translatable="false">#</string>
@@ -50,4 +50,61 @@
-->
<string name="description_voicemail_button">voicemail</string>
+ <!-- String describing the Dial ImageButton
+
+ Used by AccessibilityService to announce the purpose of the button.
+ -->
+ <string name="description_dial_button">dial</string>
+
+ <!-- Dialog message which is shown when the user tries to check voicemail
+ while the system is in airplane mode. The user cannot access to
+ voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
+ <string name="dialog_voicemail_airplane_mode_message">To call voicemail, first turn off Airplane mode.</string>
+
+ <!-- Dialog message which is shown when the user tries to check voicemail
+ while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
+ <string name="dialog_voicemail_not_ready_message">To set up voicemail, go to Menu &gt; Settings.</string>
+
+ <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
+ <string name="add_2sec_pause">Add 2-sec pause</string>
+ <string name="add_wait">Add wait</string>
+
+ <!-- Item label: jump to the in-call DTMF dialpad.
+ (Part of a list of options shown in the dialer when another call
+ is already in progress.) -->
+ <string name="dialer_useDtmfDialpad">Use touch tone keypad</string>
+
+ <!-- Item label: jump to the in-call UI.
+ (Part of a list of options shown in the dialer when another call
+ is already in progress.) -->
+ <string name="dialer_returnToInCallScreen">Return to call in progress</string>
+
+ <!-- Item label: use the Dialer's keypad to add another call.
+ (Part of a list of options shown in the dialer when another call
+ is already in progress.) -->
+ <string name="dialer_addAnotherCall">Add call</string>
+
+ <!-- The title of a dialog that displays the IMEI of the phone -->
+ <string name="imei">IMEI</string>
+
+ <!-- The title of a dialog that displays the MEID of the CDMA phone -->
+ <string name="meid">MEID</string>
+
+ <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
+ <string name="simContacts_emptyLoading">Loading from SIM card\u2026</string>
+
+ <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
+ <string name="simContacts_title">SIM card contacts</string>
+
+ <!-- Menu item used to call a contact, containing the number of the contact to call -->
+ <string name="menu_callNumber">Call <xliff:g id="number">%s</xliff:g></string>
+
+
+ <!-- Regular expression for prohibiting certain phone numbers in dialpad.
+ Ignored if empty. -->
+ <string name="config_prohibited_phone_number_regexp" translatable="false"></string>
+
+ <!-- Dialog message which is shown when the user tries to make a phone call
+ to prohibited phone numbers [CHAR LIMIT=NONE] -->
+ <string msgid="4313552620858880999" name="dialog_phone_call_prohibited_message">Can\'t call this number</string>
</resources>