summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/dialpadview
diff options
context:
space:
mode:
authorEric Erfanian <erfanian@google.com>2017-08-31 06:57:16 -0700
committerEric Erfanian <erfanian@google.com>2017-08-31 16:13:53 +0000
commit2ca4318cc1ee57dda907ba2069bd61d162b1baef (patch)
treee282668a9587cf6c1ec7b604dea860400c75c6c7 /java/com/android/dialer/dialpadview
parent68038172793ee0e2ab3e2e56ddfbeb82879d1f58 (diff)
Update Dialer source to latest internal Google revision.
Previously, Android's Dialer app was developed in an internal Google source control system and only exported to public during AOSP drops. The Dialer team is now switching to a public development model similar to the telephony team. This CL represents all internal Google changes that were committed to Dialer between the public O release and today's tip of tree on internal master. This CL squashes those changes into a single commit. In subsequent changes, changes will be exported on a per-commit basis. Test: make, flash install, run Merged-In: I45270eaa8ce732d71a1bd84b08c7fa0e99af3160 Change-Id: I529aaeb88535b9533c0ae4ef4e6c1222d4e0f1c8 PiperOrigin-RevId: 167068436
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>