diff --git a/Android.mk b/Android.mk index 984cd286d284695f8f47a2221b7ffc5694a61464..c3b1094d44376d5bbc839fa6c4631ad81f010caf 100644 --- a/Android.mk +++ b/Android.mk @@ -4,6 +4,12 @@ # * removed com.google.android.geo.API_KEY key. This should be added to # the manifest files in java/com/android/incallui/calllocation/impl/ # and /java/com/android/incallui/maps/impl/ +# * b/62417801 removed translation string variant: +# java/com/android/incallui/res/values-af-mcc262-mnc01/strings.xml +# * b/62343966 include manually generated GRPC service class: +# $ protoc --plugin=protoc-gen-grpc-java=prebuilts/tools/common/m2/repository/io/grpc/protoc-gen-grpc-java/1.0.3/protoc-gen-grpc-java-1.0.3-linux-x86_64.exe \ +# --grpc-java_out=lite:"packages/apps/Dialer/java/com/android/voicemail/impl/" \ +# --proto_path="packages/apps/Dialer/java/com/android/voicemail/impl/transcribe/grpc/" "packages/apps/Dialer/java/com/android/voicemail/impl/transcribe LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) @@ -20,6 +26,7 @@ BASE_DIR := java/com/android SRC_DIRS := \ $(BASE_DIR)/contacts/common \ $(BASE_DIR)/dialer \ + $(BASE_DIR)/dialershared \ $(BASE_DIR)/incallui \ $(BASE_DIR)/voicemail @@ -39,7 +46,7 @@ EXCLUDE_FILES := \ $(BASE_DIR)/incallui/calllocation/impl/TrafficStatsTags.java \ $(BASE_DIR)/incallui/maps/impl/MapsImpl.java \ $(BASE_DIR)/incallui/maps/impl/MapsModule.java \ - $(BASE_DIR)/incallui/maps/impl/StaticMapFragment.java + $(BASE_DIR)/incallui/maps/impl/StaticMapFragment.java \ # Exclude testing only class, not used anywhere here EXCLUDE_FILES += \ @@ -62,6 +69,7 @@ RES_DIRS := \ $(BASE_DIR)/dialer/calllog/ui/res \ $(BASE_DIR)/dialer/calllogutils/res \ $(BASE_DIR)/dialer/common/res \ + $(BASE_DIR)/dialer/contactactions/res \ $(BASE_DIR)/dialer/contactsfragment/res \ $(BASE_DIR)/dialer/dialpadview/res \ $(BASE_DIR)/dialer/interactions/res \ @@ -69,12 +77,14 @@ RES_DIRS := \ $(BASE_DIR)/dialer/oem/res \ $(BASE_DIR)/dialer/phonenumberutil/res \ $(BASE_DIR)/dialer/postcall/res \ + $(BASE_DIR)/dialer/searchfragment/res \ $(BASE_DIR)/dialer/shortcuts/res \ $(BASE_DIR)/dialer/speeddial/res \ $(BASE_DIR)/dialer/theme/res \ $(BASE_DIR)/dialer/util/res \ $(BASE_DIR)/dialer/voicemailstatus/res \ $(BASE_DIR)/dialer/widget/res \ + $(BASE_DIR)/dialershared/bubble/res \ $(BASE_DIR)/incallui/answer/impl/affordance/res \ $(BASE_DIR)/incallui/answer/impl/answermethod/res \ $(BASE_DIR)/incallui/answer/impl/hint/res \ @@ -88,6 +98,7 @@ RES_DIRS := \ $(BASE_DIR)/incallui/incall/impl/res \ $(BASE_DIR)/incallui/res \ $(BASE_DIR)/incallui/sessiondata/res \ + $(BASE_DIR)/incallui/speakerbuttonlogic/res \ $(BASE_DIR)/incallui/telecomeventui/res \ $(BASE_DIR)/incallui/video/impl/res \ $(BASE_DIR)/incallui/video/protocol/res \ @@ -113,6 +124,7 @@ DIALER_MANIFEST_FILES += \ $(BASE_DIR)/dialer/calllog/ui/AndroidManifest.xml \ $(BASE_DIR)/dialer/calllogutils/AndroidManifest.xml \ $(BASE_DIR)/dialer/common/AndroidManifest.xml \ + $(BASE_DIR)/dialer/contactactions/AndroidManifest.xml \ $(BASE_DIR)/dialer/contactsfragment/AndroidManifest.xml \ $(BASE_DIR)/dialer/dialpadview/AndroidManifest.xml \ $(BASE_DIR)/dialer/interactions/AndroidManifest.xml \ @@ -120,6 +132,7 @@ DIALER_MANIFEST_FILES += \ $(BASE_DIR)/dialer/oem/AndroidManifest.xml \ $(BASE_DIR)/dialer/phonenumberutil/AndroidManifest.xml \ $(BASE_DIR)/dialer/postcall/AndroidManifest.xml \ + $(BASE_DIR)/dialer/searchfragment/AndroidManifest.xml \ $(BASE_DIR)/dialer/shortcuts/AndroidManifest.xml \ $(BASE_DIR)/dialer/simulator/impl/AndroidManifest.xml \ $(BASE_DIR)/dialer/speeddial/AndroidManifest.xml \ @@ -127,6 +140,7 @@ DIALER_MANIFEST_FILES += \ $(BASE_DIR)/dialer/util/AndroidManifest.xml \ $(BASE_DIR)/dialer/voicemailstatus/AndroidManifest.xml \ $(BASE_DIR)/dialer/widget/AndroidManifest.xml \ + $(BASE_DIR)/dialershared/bubble/AndroidManifest.xml \ $(BASE_DIR)/incallui/AndroidManifest.xml \ $(BASE_DIR)/incallui/answer/impl/affordance/AndroidManifest.xml \ $(BASE_DIR)/incallui/answer/impl/AndroidManifest.xml \ @@ -139,12 +153,13 @@ DIALER_MANIFEST_FILES += \ $(BASE_DIR)/incallui/hold/AndroidManifest.xml \ $(BASE_DIR)/incallui/incall/impl/AndroidManifest.xml \ $(BASE_DIR)/incallui/sessiondata/AndroidManifest.xml \ + $(BASE_DIR)/incallui/speakerbuttonlogic/AndroidManifest.xml \ $(BASE_DIR)/incallui/telecomeventui/AndroidManifest.xml \ $(BASE_DIR)/incallui/video/impl/AndroidManifest.xml \ $(BASE_DIR)/incallui/video/protocol/AndroidManifest.xml \ $(BASE_DIR)/incallui/wifi/AndroidManifest.xml \ $(BASE_DIR)/voicemail/impl/AndroidManifest.xml \ - $(BASE_DIR)/voicemail/permissions.xml \ + $(BASE_DIR)/voicemail/AndroidManifest.xml \ # Merge all manifest files. @@ -180,6 +195,7 @@ LOCAL_AAPT_FLAGS := \ --extra-packages com.android.dialer.calllog.ui \ --extra-packages com.android.dialer.calllogutils \ --extra-packages com.android.dialer.common \ + --extra-packages com.android.dialer.contactactions \ --extra-packages com.android.dialer.contactsfragment \ --extra-packages com.android.dialer.dialpadview \ --extra-packages com.android.dialer.interactions \ @@ -187,12 +203,14 @@ LOCAL_AAPT_FLAGS := \ --extra-packages com.android.dialer.oem \ --extra-packages com.android.dialer.phonenumberutil \ --extra-packages com.android.dialer.postcall \ + --extra-packages com.android.dialer.searchfragment \ --extra-packages com.android.dialer.shortcuts \ --extra-packages com.android.dialer.speeddial \ --extra-packages com.android.dialer.theme \ --extra-packages com.android.dialer.util \ --extra-packages com.android.dialer.voicemailstatus \ --extra-packages com.android.dialer.widget \ + --extra-packages com.android.dialershared.bubble \ --extra-packages com.android.incallui \ --extra-packages com.android.incallui.answer.impl \ --extra-packages com.android.incallui.answer.impl.affordance \ @@ -209,6 +227,7 @@ LOCAL_AAPT_FLAGS := \ --extra-packages com.android.incallui.incall.impl \ --extra-packages com.android.incallui.maps.impl \ --extra-packages com.android.incallui.sessiondata \ + --extra-packages com.android.incallui.speakerbuttonlogic \ --extra-packages com.android.incallui.telecomeventui \ --extra-packages com.android.incallui.video \ --extra-packages com.android.incallui.video.impl \ @@ -223,6 +242,7 @@ LOCAL_AAPT_FLAGS := \ LOCAL_STATIC_JAVA_LIBRARIES := \ android-common \ + android-support-dynamic-animation \ com.android.vcard \ dialer-commons-io-target \ dialer-dagger2-target \ @@ -230,6 +250,11 @@ LOCAL_STATIC_JAVA_LIBRARIES := \ dialer-gifdecoder-target \ dialer-glide-target \ dialer-guava-target \ + dialer-grpc-all-target \ + dialer-grpc-core-target \ + dialer-grpc-okhttp-target \ + dialer-grpc-protobuf-lite-target \ + dialer-grpc-stub-target \ dialer-javax-annotation-api-target \ dialer-javax-inject-target \ dialer-libshortcutbadger-target \ @@ -251,6 +276,11 @@ LOCAL_STATIC_ANDROID_LIBRARIES := \ LOCAL_JAVA_LIBRARIES := \ org.apache.http.legacy \ dialer-auto-value \ + dialer-grpc-all \ + dialer-grpc-core \ + dialer-grpc-okhttp \ + dialer-grpc-protobuf-lite \ + dialer-grpc-stub \ # Libraries needed by the compiler (JACK) to generate code. PROCESSOR_LIBRARIES_TARGET := \ @@ -314,6 +344,11 @@ LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \ dialer-dagger2:../../../prebuilts/tools/common/m2/repository/com/google/dagger/dagger/2.7/dagger-2.7$(COMMON_JAVA_PACKAGE_SUFFIX) \ dialer-dagger2-producers:../../../prebuilts/tools/common/m2/repository/com/google/dagger/dagger-producers/2.7/dagger-producers-2.7$(COMMON_JAVA_PACKAGE_SUFFIX) \ dialer-guava:../../../prebuilts/tools/common/m2/repository/com/google/guava/guava/20.0/guava-20.0$(COMMON_JAVA_PACKAGE_SUFFIX) \ + dialer-grpc-all:../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-all/1.0.3/grpc-all-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) \ + dialer-grpc-core:../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-core/1.0.3/grpc-core-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) \ + dialer-grpc-okhttp:../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-okhttp/1.0.3/grpc-okhttp-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) \ + dialer-grpc-protobuf-lite:../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-protobuf-lite/1.0.3/grpc-protobuf-lite-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) \ + dialer-grpc-stub:../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-stub/1.0.3/grpc-stub-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) \ dialer-javax-annotation-api:../../../prebuilts/tools/common/m2/repository/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2$(COMMON_JAVA_PACKAGE_SUFFIX) \ dialer-javax-inject:../../../prebuilts/tools/common/m2/repository/javax/inject/javax.inject/1/javax.inject-1$(COMMON_JAVA_PACKAGE_SUFFIX) @@ -432,3 +467,53 @@ LOCAL_UNINSTALLABLE_MODULE := true include $(BUILD_PREBUILT) include $(CLEAR_VARS) + +LOCAL_MODULE_CLASS := JAVA_LIBRARIES +LOCAL_MODULE := dialer-grpc-core-target +LOCAL_SDK_VERSION := current +LOCAL_SRC_FILES := ../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-core/1.0.3/grpc-core-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) +LOCAL_UNINSTALLABLE_MODULE := true + +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) + +LOCAL_MODULE_CLASS := JAVA_LIBRARIES +LOCAL_MODULE := dialer-grpc-okhttp-target +LOCAL_SDK_VERSION := current +LOCAL_SRC_FILES := ../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-okhttp/1.0.3/grpc-okhttp-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) +LOCAL_UNINSTALLABLE_MODULE := true + +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) + +LOCAL_MODULE_CLASS := JAVA_LIBRARIES +LOCAL_MODULE := dialer-grpc-protobuf-lite-target +LOCAL_SDK_VERSION := current +LOCAL_SRC_FILES := ../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-protobuf-lite/1.0.3/grpc-protobuf-lite-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) +LOCAL_UNINSTALLABLE_MODULE := true + +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) + +LOCAL_MODULE_CLASS := JAVA_LIBRARIES +LOCAL_MODULE := dialer-grpc-stub-target +LOCAL_SDK_VERSION := current +LOCAL_SRC_FILES := ../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-stub/1.0.3/grpc-stub-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) +LOCAL_UNINSTALLABLE_MODULE := true + +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) + +LOCAL_MODULE_CLASS := JAVA_LIBRARIES +LOCAL_MODULE := dialer-grpc-all-target +LOCAL_SDK_VERSION := current +LOCAL_SRC_FILES := ../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-all/1.0.3/grpc-all-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) +LOCAL_UNINSTALLABLE_MODULE := true + +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index c04f8bec98a71ef940fc1d61867bac9902f12bee..7966a55a43a65f8d254b88550a4dcc929422108c 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -16,8 +16,8 @@ + android:versionCode="140000" + android:versionName="11.0"> + + diff --git a/assets/quantum/res/drawable/quantum_ic_call_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_call_vd_theme_24.xml new file mode 100644 index 0000000000000000000000000000000000000000..1fbafeb833c764f7cedede49814e4c01ab532c37 --- /dev/null +++ b/assets/quantum/res/drawable/quantum_ic_call_vd_theme_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/assets/quantum/res/drawable/quantum_ic_close_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_close_vd_theme_24.xml new file mode 100644 index 0000000000000000000000000000000000000000..3f9973200c2d41c36d5f050d5be961b3cbff14f7 --- /dev/null +++ b/assets/quantum/res/drawable/quantum_ic_close_vd_theme_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/assets/quantum/res/drawable/quantum_ic_enterprise_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_enterprise_vd_theme_24.xml index 4f1fd4920fcb1c68a7d3b6a03dcaaa01fa237b6b..6495ac7eb3b3671350b60b4537aae0544c2453b7 100644 --- a/assets/quantum/res/drawable/quantum_ic_enterprise_vd_theme_24.xml +++ b/assets/quantum/res/drawable/quantum_ic_enterprise_vd_theme_24.xml @@ -7,4 +7,4 @@ - \ No newline at end of file + diff --git a/assets/quantum/res/drawable/quantum_ic_hd_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_hd_vd_theme_24.xml index c67509cbfe0ceb16f90fda6b83f74076a4adacb3..b6da8a048173cef82a64b3aefedbb912c39b9c69 100644 --- a/assets/quantum/res/drawable/quantum_ic_hd_vd_theme_24.xml +++ b/assets/quantum/res/drawable/quantum_ic_hd_vd_theme_24.xml @@ -7,4 +7,4 @@ - \ No newline at end of file + diff --git a/assets/quantum/res/drawable/quantum_ic_history_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_history_vd_theme_24.xml new file mode 100644 index 0000000000000000000000000000000000000000..d8567f54b3815a0c26171c03c6742e3292933f28 --- /dev/null +++ b/assets/quantum/res/drawable/quantum_ic_history_vd_theme_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/assets/quantum/res/drawable/quantum_ic_message_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_message_vd_theme_24.xml new file mode 100644 index 0000000000000000000000000000000000000000..280fa262c16923ac1659e10ae1d131568b3c87ec --- /dev/null +++ b/assets/quantum/res/drawable/quantum_ic_message_vd_theme_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/assets/quantum/res/drawable/quantum_ic_person_add_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_person_add_vd_theme_24.xml new file mode 100644 index 0000000000000000000000000000000000000000..cf4e563df2370b69426c3f4e35bc46c458044066 --- /dev/null +++ b/assets/quantum/res/drawable/quantum_ic_person_add_vd_theme_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/assets/quantum/res/drawable/quantum_ic_search_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_search_vd_theme_24.xml new file mode 100644 index 0000000000000000000000000000000000000000..083d63644da18ec0a897b42db7977aacdcc06776 --- /dev/null +++ b/assets/quantum/res/drawable/quantum_ic_search_vd_theme_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/assets/quantum/res/drawable/quantum_ic_videocam_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_videocam_vd_theme_24.xml new file mode 100644 index 0000000000000000000000000000000000000000..429061af062194f930a97ff06220ae6410f54a0c --- /dev/null +++ b/assets/quantum/res/drawable/quantum_ic_videocam_vd_theme_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/java/com/android/contacts/common/ClipboardUtils.java b/java/com/android/contacts/common/ClipboardUtils.java index 9345b0f9c193917737f7122049f629de83c90b7d..3d7683941369aad7cf022933e502532eed71c91a 100644 --- a/java/com/android/contacts/common/ClipboardUtils.java +++ b/java/com/android/contacts/common/ClipboardUtils.java @@ -24,8 +24,6 @@ import android.widget.Toast; public class ClipboardUtils { - private static final String TAG = "ClipboardUtils"; - private ClipboardUtils() {} /** diff --git a/java/com/android/contacts/common/ContactPhotoManager.java b/java/com/android/contacts/common/ContactPhotoManager.java index 169348b25f17648fae2f56b96efc7bd5599efa76..3e1a78f638593d331eb88af3a7b655e038421462 100644 --- a/java/com/android/contacts/common/ContactPhotoManager.java +++ b/java/com/android/contacts/common/ContactPhotoManager.java @@ -36,14 +36,6 @@ import com.android.dialer.util.PermissionsUtil; /** Asynchronously loads contact photos and maintains a cache of photos. */ public abstract class ContactPhotoManager implements ComponentCallbacks2 { - /** Contact type constants used for default letter images */ - public static final int TYPE_PERSON = LetterTileDrawable.TYPE_PERSON; - - public static final int TYPE_SPAM = LetterTileDrawable.TYPE_SPAM; - public static final int TYPE_BUSINESS = LetterTileDrawable.TYPE_BUSINESS; - public static final int TYPE_VOICEMAIL = LetterTileDrawable.TYPE_VOICEMAIL; - public static final int TYPE_DEFAULT = LetterTileDrawable.TYPE_DEFAULT; - public static final int TYPE_GENERIC_AVATAR = LetterTileDrawable.TYPE_GENERIC_AVATAR; /** Scale and offset default constants used for default letter images */ public static final float SCALE_DEFAULT = 1.0f; @@ -88,7 +80,7 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 { if (!TextUtils.isEmpty(request.identifier)) { builder.appendQueryParameter(IDENTIFIER_PARAM_KEY, request.identifier); } - if (request.contactType != TYPE_DEFAULT) { + if (request.contactType != LetterTileDrawable.TYPE_DEFAULT) { builder.appendQueryParameter(CONTACT_TYPE_PARAM_KEY, String.valueOf(request.contactType)); } if (request.scale != SCALE_DEFAULT) { @@ -114,7 +106,7 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 { public static String appendBusinessContactType(String photoUrl) { Uri uri = Uri.parse(photoUrl); Builder builder = uri.buildUpon(); - builder.encodedFragment(String.valueOf(TYPE_BUSINESS)); + builder.encodedFragment(String.valueOf(LetterTileDrawable.TYPE_BUSINESS)); return builder.build().toString(); } @@ -147,7 +139,7 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 { String encodedFragment = photoUri.getEncodedFragment(); return !TextUtils.isEmpty(encodedFragment) - && encodedFragment.equals(String.valueOf(TYPE_BUSINESS)); + && encodedFragment.equals(String.valueOf(LetterTileDrawable.TYPE_BUSINESS)); } protected static DefaultImageRequest getDefaultImageRequestFromUri(Uri uri) { @@ -378,7 +370,7 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 { * be returned. */ public static final DefaultImageRequest EMPTY_DEFAULT_BUSINESS_IMAGE_REQUEST = - new DefaultImageRequest(null, null, TYPE_BUSINESS, false); + new DefaultImageRequest(null, null, LetterTileDrawable.TYPE_BUSINESS, false); /** * Used to indicate that a circular drawable that represents a contact without any contact * details should be returned. @@ -390,7 +382,7 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 { * should be returned. */ public static final DefaultImageRequest EMPTY_CIRCULAR_BUSINESS_IMAGE_REQUEST = - new DefaultImageRequest(null, null, TYPE_BUSINESS, true); + new DefaultImageRequest(null, null, LetterTileDrawable.TYPE_BUSINESS, true); /** The contact's display name. The display name is used to */ public String displayName; /** @@ -403,10 +395,9 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 { /** * The type of this contact. This contact type may be used to decide the kind of image to use in * the case where a unique letter cannot be generated from the contact's display name and - * identifier. See: {@link #TYPE_PERSON} {@link #TYPE_BUSINESS} {@link #TYPE_PERSON} {@link - * #TYPE_DEFAULT} + * identifier. */ - public int contactType = TYPE_DEFAULT; + public @LetterTileDrawable.ContactType int contactType = LetterTileDrawable.TYPE_DEFAULT; /** * The amount to scale the letter or bitmap to, as a ratio of its default size (from a range of * 0.0f to 2.0f). The default value is 1.0f. @@ -429,7 +420,13 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 { public DefaultImageRequest() {} public DefaultImageRequest(String displayName, String identifier, boolean isCircular) { - this(displayName, identifier, TYPE_DEFAULT, SCALE_DEFAULT, OFFSET_DEFAULT, isCircular); + this( + displayName, + identifier, + LetterTileDrawable.TYPE_DEFAULT, + SCALE_DEFAULT, + OFFSET_DEFAULT, + isCircular); } public DefaultImageRequest( diff --git a/java/com/android/contacts/common/ContactPhotoManagerImpl.java b/java/com/android/contacts/common/ContactPhotoManagerImpl.java index 2e6ff9fdc4de68360dc24221bd69e1d7e6acfdf1..28ecf3421726d1a3cb7d17c553faade39c54aa3c 100644 --- a/java/com/android/contacts/common/ContactPhotoManagerImpl.java +++ b/java/com/android/contacts/common/ContactPhotoManagerImpl.java @@ -53,9 +53,9 @@ import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import com.android.contacts.common.util.BitmapUtil; -import com.android.contacts.common.util.TrafficStatsTags; import com.android.contacts.common.util.UriUtils; import com.android.dialer.common.LogUtil; +import com.android.dialer.constants.TrafficStatsTags; import com.android.dialer.util.PermissionsUtil; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -634,8 +634,9 @@ class ContactPhotoManagerImpl extends ContactPhotoManager implements Callback { } return true; } + default: + return false; } - return false; } public void ensureLoaderThread() { diff --git a/java/com/android/contacts/common/ContactStatusUtil.java b/java/com/android/contacts/common/ContactStatusUtil.java index 97d84c876627d25373547004ae1a7133f067aad6..c5347e778c071701ce149e42827ae3c1bdce4046 100644 --- a/java/com/android/contacts/common/ContactStatusUtil.java +++ b/java/com/android/contacts/common/ContactStatusUtil.java @@ -23,8 +23,6 @@ import android.provider.ContactsContract.StatusUpdates; /** Provides static function to get default contact status message. */ public class ContactStatusUtil { - private static final String TAG = "ContactStatusUtil"; - public static String getStatusString(Context context, int presence) { Resources resources = context.getResources(); switch (presence) { diff --git a/java/com/android/contacts/common/ContactsUtils.java b/java/com/android/contacts/common/ContactsUtils.java index 60af44b9afeaeb6b903295017a5e14fa650bdcd3..66ccc90e7c2beb8c34f5ba20b51cb56df464e562 100644 --- a/java/com/android/contacts/common/ContactsUtils.java +++ b/java/com/android/contacts/common/ContactsUtils.java @@ -16,184 +16,17 @@ package com.android.contacts.common; -import android.content.Context; -import android.content.Intent; -import android.database.Cursor; -import android.net.Uri; -import android.provider.ContactsContract.CommonDataKinds.Im; -import android.provider.ContactsContract.DisplayPhoto; +import android.provider.ContactsContract.Contacts; import android.support.annotation.IntDef; -import android.text.TextUtils; -import android.util.Pair; -import com.android.contacts.common.compat.ContactsCompat; import com.android.contacts.common.compat.DirectoryCompat; -import com.android.contacts.common.model.AccountTypeManager; -import com.android.contacts.common.model.account.AccountWithDataSet; -import com.android.contacts.common.model.dataitem.ImDataItem; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; -import java.util.List; public class ContactsUtils { // Telecomm related schemes are in CallUtil - public static final String SCHEME_IMTO = "imto"; - public static final String SCHEME_MAILTO = "mailto"; - public static final String SCHEME_SMSTO = "smsto"; public static final long USER_TYPE_CURRENT = 0; public static final long USER_TYPE_WORK = 1; - private static final String TAG = "ContactsUtils"; - private static final int DEFAULT_THUMBNAIL_SIZE = 96; - private static int sThumbnailSize = -1; - - /** - * This looks up the provider name defined in ProviderNames from the predefined IM protocol id. - * This is used for interacting with the IM application. - * - * @param protocol the protocol ID - * @return the provider name the IM app uses for the given protocol, or null if no provider is - * defined for the given protocol - * @hide - */ - public static String lookupProviderNameFromId(int protocol) { - switch (protocol) { - case Im.PROTOCOL_GOOGLE_TALK: - return ProviderNames.GTALK; - case Im.PROTOCOL_AIM: - return ProviderNames.AIM; - case Im.PROTOCOL_MSN: - return ProviderNames.MSN; - case Im.PROTOCOL_YAHOO: - return ProviderNames.YAHOO; - case Im.PROTOCOL_ICQ: - return ProviderNames.ICQ; - case Im.PROTOCOL_JABBER: - return ProviderNames.JABBER; - case Im.PROTOCOL_SKYPE: - return ProviderNames.SKYPE; - case Im.PROTOCOL_QQ: - return ProviderNames.QQ; - } - return null; - } - - /** - * Test if the given {@link CharSequence} contains any graphic characters, first checking {@link - * TextUtils#isEmpty(CharSequence)} to handle null. - */ - public static boolean isGraphic(CharSequence str) { - return !TextUtils.isEmpty(str) && TextUtils.isGraphic(str); - } - - /** Returns true if two objects are considered equal. Two null references are equal here. */ - public static boolean areObjectsEqual(Object a, Object b) { - return a == b || (a != null && a.equals(b)); - } - - /** Returns true if two {@link Intent}s are both null, or have the same action. */ - public static final boolean areIntentActionEqual(Intent a, Intent b) { - if (a == b) { - return true; - } - if (a == null || b == null) { - return false; - } - return TextUtils.equals(a.getAction(), b.getAction()); - } - - public static boolean areGroupWritableAccountsAvailable(Context context) { - final List accounts = - AccountTypeManager.getInstance(context).getGroupWritableAccounts(); - return !accounts.isEmpty(); - } - - /** - * Returns the size (width and height) of thumbnail pictures as configured in the provider. This - * can safely be called from the UI thread, as the provider can serve this without performing a - * database access - */ - public static int getThumbnailSize(Context context) { - if (sThumbnailSize == -1) { - final Cursor c = - context - .getContentResolver() - .query( - DisplayPhoto.CONTENT_MAX_DIMENSIONS_URI, - new String[] {DisplayPhoto.THUMBNAIL_MAX_DIM}, - null, - null, - null); - if (c != null) { - try { - if (c.moveToFirst()) { - sThumbnailSize = c.getInt(0); - } - } finally { - c.close(); - } - } - } - return sThumbnailSize != -1 ? sThumbnailSize : DEFAULT_THUMBNAIL_SIZE; - } - - private static Intent getCustomImIntent(ImDataItem im, int protocol) { - String host = im.getCustomProtocol(); - final String data = im.getData(); - if (TextUtils.isEmpty(data)) { - return null; - } - if (protocol != Im.PROTOCOL_CUSTOM) { - // Try bringing in a well-known host for specific protocols - host = ContactsUtils.lookupProviderNameFromId(protocol); - } - if (TextUtils.isEmpty(host)) { - return null; - } - final String authority = host.toLowerCase(); - final Uri imUri = - new Uri.Builder().scheme(SCHEME_IMTO).authority(authority).appendPath(data).build(); - final Intent intent = new Intent(Intent.ACTION_SENDTO, imUri); - return intent; - } - - /** - * Returns the proper Intent for an ImDatItem. If available, a secondary intent is stored in the - * second Pair slot - */ - public static Pair buildImIntent(Context context, ImDataItem im) { - Intent intent = null; - Intent secondaryIntent = null; - final boolean isEmail = im.isCreatedFromEmail(); - - if (!isEmail && !im.isProtocolValid()) { - return new Pair<>(null, null); - } - - final String data = im.getData(); - if (TextUtils.isEmpty(data)) { - return new Pair<>(null, null); - } - - final int protocol = isEmail ? Im.PROTOCOL_GOOGLE_TALK : im.getProtocol(); - - if (protocol == Im.PROTOCOL_GOOGLE_TALK) { - final int chatCapability = im.getChatCapability(); - if ((chatCapability & Im.CAPABILITY_HAS_CAMERA) != 0) { - intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message")); - secondaryIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?call")); - } else if ((chatCapability & Im.CAPABILITY_HAS_VOICE) != 0) { - // Allow Talking and Texting - intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message")); - secondaryIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?call")); - } else { - intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message")); - } - } else { - // Build an IM Intent - intent = getCustomImIntent(im, protocol); - } - return new Pair<>(intent, secondaryIntent); - } /** * Determine UserType from directory id and contact id. @@ -232,27 +65,13 @@ public class ContactsUtils { : USER_TYPE_CURRENT; } // Only check contact id if directory id is null - if (contactId != null && contactId != 0L && ContactsCompat.isEnterpriseContactId(contactId)) { + if (contactId != null && contactId != 0L && Contacts.isEnterpriseContactId(contactId)) { return USER_TYPE_WORK; } else { return USER_TYPE_CURRENT; } } - // TODO find a proper place for the canonical version of these - public interface ProviderNames { - - String YAHOO = "Yahoo"; - String GTALK = "GTalk"; - String MSN = "MSN"; - String ICQ = "ICQ"; - String AIM = "AIM"; - String XMPP = "XMPP"; - String JABBER = "JABBER"; - String SKYPE = "SKYPE"; - String QQ = "QQ"; - } - /** * UserType indicates the user type of the contact. If the contact is from Work User (Work Profile * in Android Multi-User System), it's {@link #USER_TYPE_WORK}, otherwise, {@link diff --git a/java/com/android/contacts/common/GeoUtil.java b/java/com/android/contacts/common/GeoUtil.java deleted file mode 100644 index 50b0cd9e37779ed86a894cff040dc0f7d4345521..0000000000000000000000000000000000000000 --- a/java/com/android/contacts/common/GeoUtil.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (C) 2012 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.contacts.common; - -import android.app.Application; -import android.content.Context; -import com.android.contacts.common.location.CountryDetector; -import com.google.i18n.phonenumbers.NumberParseException; -import com.google.i18n.phonenumbers.PhoneNumberUtil; -import com.google.i18n.phonenumbers.Phonenumber; -import com.google.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder; -import java.util.Locale; - -/** Static methods related to Geo. */ -public class GeoUtil { - - /** - * Returns the country code of the country the user is currently in. Before calling this method, - * make sure that {@link CountryDetector#initialize(Context)} has already been called in {@link - * Application#onCreate()}. - * - * @return The ISO 3166-1 two letters country code of the country the user is in. - */ - public static String getCurrentCountryIso(Context context) { - // The {@link CountryDetector} should never return null so this is safe to return as-is. - return CountryDetector.getInstance(context).getCurrentCountryIso(); - } - - public static String getGeocodedLocationFor(Context context, String phoneNumber) { - final PhoneNumberOfflineGeocoder geocoder = PhoneNumberOfflineGeocoder.getInstance(); - final PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance(); - try { - final Phonenumber.PhoneNumber structuredPhoneNumber = - phoneNumberUtil.parse(phoneNumber, getCurrentCountryIso(context)); - final Locale locale = context.getResources().getConfiguration().locale; - return geocoder.getDescriptionForNumber(structuredPhoneNumber, locale); - } catch (NumberParseException e) { - return null; - } - } -} diff --git a/java/com/android/contacts/common/MoreContactUtils.java b/java/com/android/contacts/common/MoreContactUtils.java index 028f899715446f2fcfb19a010bfbf9374d82bcec..26241b34f802833a04e96c2c84fc905db637d751 100644 --- a/java/com/android/contacts/common/MoreContactUtils.java +++ b/java/com/android/contacts/common/MoreContactUtils.java @@ -16,7 +16,6 @@ package com.android.contacts.common; -import android.content.Context; import android.content.Intent; import android.graphics.Rect; import android.net.Uri; @@ -24,7 +23,6 @@ import android.provider.ContactsContract; import android.telephony.PhoneNumberUtils; import android.text.TextUtils; import android.view.View; -import android.widget.TextView; import com.android.contacts.common.model.account.AccountType; import com.google.i18n.phonenumbers.NumberParseException; import com.google.i18n.phonenumbers.PhoneNumberUtil; @@ -193,40 +191,6 @@ public class MoreContactUtils { return rect; } - /** - * Returns a header view based on the R.layout.list_separator, where the containing {@link - * android.widget.TextView} is set using the given textResourceId. - */ - public static TextView createHeaderView(Context context, int textResourceId) { - final TextView textView = (TextView) View.inflate(context, R.layout.list_separator, null); - textView.setText(context.getString(textResourceId)); - return textView; - } - - /** - * Set the top padding on the header view dynamically, based on whether the header is in the first - * row or not. - */ - public static void setHeaderViewBottomPadding( - Context context, TextView textView, boolean isFirstRow) { - final int topPadding; - if (isFirstRow) { - topPadding = - (int) - context - .getResources() - .getDimension(R.dimen.frequently_contacted_title_top_margin_when_first_row); - } else { - topPadding = - (int) context.getResources().getDimension(R.dimen.frequently_contacted_title_top_margin); - } - textView.setPaddingRelative( - textView.getPaddingStart(), - topPadding, - textView.getPaddingEnd(), - textView.getPaddingBottom()); - } - /** * Returns the intent to launch for the given invitable account type and contact lookup URI. This * will return null if the account type is not invitable (i.e. there is no {@link diff --git a/java/com/android/contacts/common/compat/ContactsCompat.java b/java/com/android/contacts/common/compat/ContactsCompat.java index 39d0b55d376d1cc349b18540264b204c93613a21..e0c9b7e53190387d84e174709658729fa26369a8 100644 --- a/java/com/android/contacts/common/compat/ContactsCompat.java +++ b/java/com/android/contacts/common/compat/ContactsCompat.java @@ -21,7 +21,6 @@ import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; import android.provider.ContactsContract; import android.provider.ContactsContract.Contacts; -import com.android.dialer.compat.CompatUtils; /** Compatibility class for {@link ContactsContract.Contacts} */ public class ContactsCompat { @@ -29,8 +28,6 @@ public class ContactsCompat { // TODO: Use N APIs private static final Uri ENTERPRISE_CONTENT_FILTER_URI = Uri.withAppendedPath(Contacts.CONTENT_URI, "filter_enterprise"); - // Copied from ContactsContract.Contacts#ENTERPRISE_CONTACT_ID_BASE, which is hidden. - private static final long ENTERPRISE_CONTACT_ID_BASE = 1000000000; /** Not instantiable. */ private ContactsCompat() {} @@ -41,17 +38,4 @@ public class ContactsCompat { } return Contacts.CONTENT_FILTER_URI; } - - /** - * Return {@code true} if a contact ID is from the contacts provider on the enterprise profile. - */ - public static boolean isEnterpriseContactId(long contactId) { - if (CompatUtils.isLollipopCompatible()) { - return Contacts.isEnterpriseContactId(contactId); - } else { - // copied from ContactsContract.Contacts.isEnterpriseContactId - return (contactId >= ENTERPRISE_CONTACT_ID_BASE) - && (contactId < ContactsContract.Profile.MIN_ID); - } - } } diff --git a/java/com/android/contacts/common/compat/PhoneAccountCompat.java b/java/com/android/contacts/common/compat/PhoneAccountCompat.java index 6a24ec033530efdc9eb2d848340aca08f9291347..aa22c68613a42fad8ef5960a89a50b923aac126e 100644 --- a/java/com/android/contacts/common/compat/PhoneAccountCompat.java +++ b/java/com/android/contacts/common/compat/PhoneAccountCompat.java @@ -20,33 +20,10 @@ import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; import android.support.annotation.Nullable; import android.telecom.PhoneAccount; -import android.util.Log; -import com.android.dialer.compat.CompatUtils; /** Compatiblity class for {@link android.telecom.PhoneAccount} */ public class PhoneAccountCompat { - private static final String TAG = PhoneAccountCompat.class.getSimpleName(); - - /** - * Gets the {@link Icon} associated with the given {@link PhoneAccount} - * - * @param phoneAccount the PhoneAccount from which to retrieve the Icon - * @return the Icon, or null - */ - @Nullable - public static Icon getIcon(@Nullable PhoneAccount phoneAccount) { - if (phoneAccount == null) { - return null; - } - - if (CompatUtils.isMarshmallowCompatible()) { - return phoneAccount.getIcon(); - } - - return null; - } - /** * Builds and returns an icon {@code Drawable} to represent this {@code PhoneAccount} in a user * interface. @@ -61,44 +38,16 @@ public class PhoneAccountCompat { if (phoneAccount == null || context == null) { return null; } - - if (CompatUtils.isMarshmallowCompatible()) { - return createIconDrawableMarshmallow(phoneAccount, context); - } - - if (CompatUtils.isLollipopMr1Compatible()) { - return createIconDrawableLollipopMr1(phoneAccount, context); - } - return null; + return createIconDrawableMarshmallow(phoneAccount, context); } @Nullable private static Drawable createIconDrawableMarshmallow( PhoneAccount phoneAccount, Context context) { - Icon accountIcon = getIcon(phoneAccount); + Icon accountIcon = phoneAccount.getIcon(); if (accountIcon == null) { return null; } return accountIcon.loadDrawable(context); } - - @Nullable - private static Drawable createIconDrawableLollipopMr1( - PhoneAccount phoneAccount, Context context) { - try { - return (Drawable) - PhoneAccount.class - .getMethod("createIconDrawable", Context.class) - .invoke(phoneAccount, context); - } catch (ReflectiveOperationException e) { - return null; - } catch (Throwable t) { - Log.e( - TAG, - "Unexpected exception when attempting to call " - + "android.telecom.PhoneAccount#createIconDrawable", - t); - return null; - } - } } diff --git a/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java b/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java index 960b340d8ad01aa8babcaa2fad8d18f532890f0c..a6cfe07cde07592301c468dc52dd9770268bcc8f 100644 --- a/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java +++ b/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java @@ -17,13 +17,7 @@ package com.android.contacts.common.compat; import android.telephony.PhoneNumberUtils; -import android.text.Spannable; -import android.text.TextUtils; import android.text.style.TtsSpan; -import com.android.dialer.compat.CompatUtils; -import com.google.i18n.phonenumbers.NumberParseException; -import com.google.i18n.phonenumbers.PhoneNumberUtil; -import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber; /** * This class contains static utility methods extracted from PhoneNumberUtils, and the methods were @@ -37,138 +31,16 @@ public class PhoneNumberUtilsCompat { /** Not instantiable. */ private PhoneNumberUtilsCompat() {} - public static String normalizeNumber(String phoneNumber) { - if (CompatUtils.isLollipopCompatible()) { - return PhoneNumberUtils.normalizeNumber(phoneNumber); - } else { - return normalizeNumberInternal(phoneNumber); - } - } - - /** Implementation copied from {@link PhoneNumberUtils#normalizeNumber} */ - private static String normalizeNumberInternal(String phoneNumber) { - if (TextUtils.isEmpty(phoneNumber)) { - return ""; - } - StringBuilder sb = new StringBuilder(); - int len = phoneNumber.length(); - for (int i = 0; i < len; i++) { - char c = phoneNumber.charAt(i); - // Character.digit() supports ASCII and Unicode digits (fullwidth, Arabic-Indic, etc.) - int digit = Character.digit(c, 10); - if (digit != -1) { - sb.append(digit); - } else if (sb.length() == 0 && c == '+') { - sb.append(c); - } else if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) { - return normalizeNumber(PhoneNumberUtils.convertKeypadLettersToDigits(phoneNumber)); - } - } - return sb.toString(); - } - public static String formatNumber( String phoneNumber, String phoneNumberE164, String defaultCountryIso) { - if (CompatUtils.isLollipopCompatible()) { return PhoneNumberUtils.formatNumber(phoneNumber, phoneNumberE164, defaultCountryIso); - } else { - // This method was deprecated in API level 21, so it's only used on pre-L SDKs. - return PhoneNumberUtils.formatNumber(phoneNumber); - } } public static CharSequence createTtsSpannable(CharSequence phoneNumber) { - if (CompatUtils.isMarshmallowCompatible()) { - return PhoneNumberUtils.createTtsSpannable(phoneNumber); - } else { - return createTtsSpannableInternal(phoneNumber); - } + return PhoneNumberUtils.createTtsSpannable(phoneNumber); } public static TtsSpan createTtsSpan(String phoneNumber) { - if (CompatUtils.isMarshmallowCompatible()) { - return PhoneNumberUtils.createTtsSpan(phoneNumber); - } else if (CompatUtils.isLollipopCompatible()) { - return createTtsSpanLollipop(phoneNumber); - } else { - return null; - } - } - - /** Copied from {@link PhoneNumberUtils#createTtsSpannable} */ - private static CharSequence createTtsSpannableInternal(CharSequence phoneNumber) { - if (phoneNumber == null) { - return null; - } - Spannable spannable = Spannable.Factory.getInstance().newSpannable(phoneNumber); - addTtsSpanInternal(spannable, 0, spannable.length()); - return spannable; - } - - /** Compat method for addTtsSpan, see {@link PhoneNumberUtils#addTtsSpan} */ - public static void addTtsSpan(Spannable s, int start, int endExclusive) { - if (CompatUtils.isMarshmallowCompatible()) { - PhoneNumberUtils.addTtsSpan(s, start, endExclusive); - } else { - addTtsSpanInternal(s, start, endExclusive); - } - } - - /** Copied from {@link PhoneNumberUtils#addTtsSpan} */ - private static void addTtsSpanInternal(Spannable s, int start, int endExclusive) { - s.setSpan( - createTtsSpan(s.subSequence(start, endExclusive).toString()), - start, - endExclusive, - Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); - } - - /** Copied from {@link PhoneNumberUtils#createTtsSpan} */ - private static TtsSpan createTtsSpanLollipop(String phoneNumberString) { - if (phoneNumberString == null) { - return null; - } - - // Parse the phone number - final PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance(); - PhoneNumber phoneNumber = null; - try { - // Don't supply a defaultRegion so this fails for non-international numbers because - // we don't want to TalkBalk to read a country code (e.g. +1) if it is not already - // present - phoneNumber = phoneNumberUtil.parse(phoneNumberString, /* defaultRegion */ null); - } catch (NumberParseException ignored) { - } - - // Build a telephone tts span - final TtsSpan.TelephoneBuilder builder = new TtsSpan.TelephoneBuilder(); - if (phoneNumber == null) { - // Strip separators otherwise TalkBack will be silent - // (this behavior was observed with TalkBalk 4.0.2 from their alpha channel) - builder.setNumberParts(splitAtNonNumerics(phoneNumberString)); - } else { - if (phoneNumber.hasCountryCode()) { - builder.setCountryCode(Integer.toString(phoneNumber.getCountryCode())); - } - builder.setNumberParts(Long.toString(phoneNumber.getNationalNumber())); - } - return builder.build(); - } - - /** - * Split a phone number using spaces, ignoring anything that is not a digit - * - * @param number A {@code CharSequence} before splitting, e.g., "+20(123)-456#" - * @return A {@code String} after splitting, e.g., "20 123 456". - */ - private static String splitAtNonNumerics(CharSequence number) { - StringBuilder sb = new StringBuilder(number.length()); - for (int i = 0; i < number.length(); i++) { - sb.append(PhoneNumberUtils.isISODigit(number.charAt(i)) ? number.charAt(i) : " "); - } - // It is very important to remove extra spaces. At time of writing, any leading or trailing - // spaces, or any sequence of more than one space, will confuse TalkBack and cause the TTS - // span to be non-functional! - return sb.toString().replaceAll(" +", " ").trim(); + return PhoneNumberUtils.createTtsSpan(phoneNumber); } } diff --git a/java/com/android/contacts/common/compat/TelephonyManagerCompat.java b/java/com/android/contacts/common/compat/TelephonyManagerCompat.java index 7e4803ca5e0cd15d162c6e1d581184f354a22ed4..4a16fb8555d38f6b4259582418c19dc6df317830 100644 --- a/java/com/android/contacts/common/compat/TelephonyManagerCompat.java +++ b/java/com/android/contacts/common/compat/TelephonyManagerCompat.java @@ -27,7 +27,6 @@ import android.telecom.PhoneAccountHandle; import android.telephony.TelephonyManager; import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; -import com.android.dialer.compat.CompatUtils; import java.lang.reflect.InvocationTargetException; public class TelephonyManagerCompat { @@ -48,31 +47,6 @@ public class TelephonyManagerCompat { private static final String SECRET_CODE_ACTION = "android.provider.Telephony.SECRET_CODE"; - /** - * @param telephonyManager The telephony manager instance to use for method calls. - * @return true if the current device is "voice capable". - *

"Voice capable" means that this device supports circuit-switched (i.e. voice) phone - * calls over the telephony network, and is allowed to display the in-call UI while a cellular - * voice call is active. This will be false on "data only" devices which can't make voice - * calls and don't support any in-call UI. - *

Note: the meaning of this flag is subtly different from the - * PackageManager.FEATURE_TELEPHONY system feature, which is available on any device with a - * telephony radio, even if the device is data-only. - */ - public static boolean isVoiceCapable(@Nullable TelephonyManager telephonyManager) { - if (telephonyManager == null) { - return false; - } - if (CompatUtils.isLollipopMr1Compatible() - || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "isVoiceCapable")) { - // isVoiceCapable was unhidden in L-MR1 - return telephonyManager.isVoiceCapable(); - } - final int phoneType = telephonyManager.getPhoneType(); - return phoneType == TelephonyManager.PHONE_TYPE_CDMA - || phoneType == TelephonyManager.PHONE_TYPE_GSM; - } - /** * Returns the number of phones available. Returns 1 for Single standby mode (Single SIM * functionality) Returns 2 for Dual standby mode.(Dual SIM functionality) @@ -85,31 +59,7 @@ public class TelephonyManagerCompat { if (telephonyManager == null) { return 1; } - if (CompatUtils.isMarshmallowCompatible() - || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "getPhoneCount")) { - return telephonyManager.getPhoneCount(); - } - return 1; - } - - /** - * Returns the unique device ID of a subscription, for example, the IMEI for GSM and the MEID for - * CDMA phones. Return null if device ID is not available. - * - *

Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE} - * - * @param telephonyManager The telephony manager instance to use for method calls. - * @param slotId of which deviceID is returned - */ - public static String getDeviceId(@Nullable TelephonyManager telephonyManager, int slotId) { - if (telephonyManager == null) { - return null; - } - if (CompatUtils.isMarshmallowCompatible() - || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "getDeviceId", Integer.class)) { - return telephonyManager.getDeviceId(slotId); - } - return null; + return telephonyManager.getPhoneCount(); } /** @@ -119,14 +69,7 @@ public class TelephonyManagerCompat { * @return {@code true} if the device supports TTY mode, and {@code false} otherwise. */ public static boolean isTtyModeSupported(@Nullable TelephonyManager telephonyManager) { - if (telephonyManager == null) { - return false; - } - if (CompatUtils.isMarshmallowCompatible() - || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "isTtyModeSupported")) { - return telephonyManager.isTtyModeSupported(); - } - return false; + return telephonyManager != null && telephonyManager.isTtyModeSupported(); } /** @@ -138,15 +81,7 @@ public class TelephonyManagerCompat { */ public static boolean isHearingAidCompatibilitySupported( @Nullable TelephonyManager telephonyManager) { - if (telephonyManager == null) { - return false; - } - if (CompatUtils.isMarshmallowCompatible() - || CompatUtils.isMethodAvailable( - TELEPHONY_MANAGER_CLASS, "isHearingAidCompatibilitySupported")) { - return telephonyManager.isHearingAidCompatibilitySupported(); - } - return false; + return telephonyManager != null && telephonyManager.isHearingAidCompatibilitySupported(); } /** diff --git a/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java b/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java index 5687f6fbf06d53b7d6c83027d146d892f005379e..43eae589d707a7a8c1c734a80b0a6b24bbfd9c91 100644 --- a/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java +++ b/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java @@ -15,274 +15,18 @@ */ package com.android.contacts.common.compat.telecom; -import android.app.Activity; -import android.content.Intent; -import android.net.Uri; import android.support.annotation.Nullable; -import android.telecom.PhoneAccount; import android.telecom.PhoneAccountHandle; import android.telecom.TelecomManager; -import android.telephony.PhoneNumberUtils; -import android.telephony.TelephonyManager; -import android.text.TextUtils; -import com.android.dialer.compat.CompatUtils; -import java.util.ArrayList; -import java.util.List; /** Compatibility class for {@link android.telecom.TelecomManager}. */ public class TelecomManagerCompat { - public static final String TELECOM_MANAGER_CLASS = "android.telecom.TelecomManager"; - // TODO: remove once this is available in android.telecom.Call // b/33779976 public static final String EXTRA_LAST_EMERGENCY_CALLBACK_TIME_MILLIS = "android.telecom.extra.LAST_EMERGENCY_CALLBACK_TIME_MILLIS"; - /** - * Places a new outgoing call to the provided address using the system telecom service with the - * specified intent. - * - * @param activity {@link Activity} used to start another activity for the given intent - * @param telecomManager the {@link TelecomManager} used to place a call, if possible - * @param intent the intent for the call - */ - public static void placeCall( - @Nullable Activity activity, - @Nullable TelecomManager telecomManager, - @Nullable Intent intent) { - if (activity == null || telecomManager == null || intent == null) { - return; - } - if (CompatUtils.isMarshmallowCompatible()) { - telecomManager.placeCall(intent.getData(), intent.getExtras()); - return; - } - activity.startActivityForResult(intent, 0); - } - - /** - * Get the URI for running an adn query. - * - * @param telecomManager the {@link TelecomManager} used for method calls, if possible. - * @param accountHandle The handle for the account to derive an adn query URI for or {@code null} - * to return a URI which will use the default account. - * @return The URI (with the content:// scheme) specific to the specified {@link PhoneAccount} for - * the the content retrieve. - */ - public static Uri getAdnUriForPhoneAccount( - @Nullable TelecomManager telecomManager, PhoneAccountHandle accountHandle) { - if (telecomManager != null - && (CompatUtils.isMarshmallowCompatible() - || CompatUtils.isMethodAvailable( - TELECOM_MANAGER_CLASS, "getAdnUriForPhoneAccount", PhoneAccountHandle.class))) { - return telecomManager.getAdnUriForPhoneAccount(accountHandle); - } - return Uri.parse("content://icc/adn"); - } - - /** - * Returns a list of {@link PhoneAccountHandle}s which can be used to make and receive phone - * calls. The returned list includes only those accounts which have been explicitly enabled by the - * user. - * - * @param telecomManager the {@link TelecomManager} used for method calls, if possible. - * @return A list of PhoneAccountHandle objects. - */ - public static List getCallCapablePhoneAccounts( - @Nullable TelecomManager telecomManager) { - if (telecomManager != null - && (CompatUtils.isMarshmallowCompatible() - || CompatUtils.isMethodAvailable( - TELECOM_MANAGER_CLASS, "getCallCapablePhoneAccounts"))) { - return telecomManager.getCallCapablePhoneAccounts(); - } - return new ArrayList<>(); - } - - /** - * Used to determine the currently selected default dialer package. - * - * @param telecomManager the {@link TelecomManager} used for method calls, if possible. - * @return package name for the default dialer package or null if no package has been selected as - * the default dialer. - */ - @Nullable - public static String getDefaultDialerPackage(@Nullable TelecomManager telecomManager) { - if (telecomManager != null && CompatUtils.isDefaultDialerCompatible()) { - return telecomManager.getDefaultDialerPackage(); - } - return null; - } - - /** - * Return the {@link PhoneAccount} which will be used to place outgoing calls to addresses with - * the specified {@code uriScheme}. This PhoneAccount will always be a member of the list which is - * returned from invoking {@link TelecomManager#getCallCapablePhoneAccounts()}. The specific - * account returned depends on the following priorities: - * - *

1. If the user-selected default PhoneAccount supports the specified scheme, it will be - * returned. 2. If there exists only one PhoneAccount that supports the specified scheme, it will - * be returned. - * - *

If no PhoneAccount fits the criteria above, this method will return {@code null}. - * - * @param telecomManager the {@link TelecomManager} used for method calls, if possible. - * @param uriScheme The URI scheme. - * @return The {@link PhoneAccountHandle} corresponding to the account to be used. - */ - @Nullable - public static PhoneAccountHandle getDefaultOutgoingPhoneAccount( - @Nullable TelecomManager telecomManager, @Nullable String uriScheme) { - if (telecomManager != null - && (CompatUtils.isMarshmallowCompatible() - || CompatUtils.isMethodAvailable( - TELECOM_MANAGER_CLASS, "getDefaultOutgoingPhoneAccount", String.class))) { - return telecomManager.getDefaultOutgoingPhoneAccount(uriScheme); - } - return null; - } - - /** - * Return the line 1 phone number for given phone account. - * - * @param telecomManager the {@link TelecomManager} to use in the event that {@link - * TelecomManager#getLine1Number(PhoneAccountHandle)} is available - * @param telephonyManager the {@link TelephonyManager} to use if TelecomManager#getLine1Number is - * unavailable - * @param phoneAccountHandle the phoneAccountHandle upon which to check the line one number - * @return the line one number - */ - @Nullable - public static String getLine1Number( - @Nullable TelecomManager telecomManager, - @Nullable TelephonyManager telephonyManager, - @Nullable PhoneAccountHandle phoneAccountHandle) { - if (telecomManager != null && CompatUtils.isMarshmallowCompatible()) { - return telecomManager.getLine1Number(phoneAccountHandle); - } - if (telephonyManager != null) { - return telephonyManager.getLine1Number(); - } - return null; - } - - /** - * Return whether a given phone number is the configured voicemail number for a particular phone - * account. - * - * @param telecomManager the {@link TelecomManager} to use for checking the number. - * @param accountHandle The handle for the account to check the voicemail number against - * @param number The number to look up. - */ - public static boolean isVoiceMailNumber( - @Nullable TelecomManager telecomManager, - @Nullable PhoneAccountHandle accountHandle, - @Nullable String number) { - if (telecomManager != null - && (CompatUtils.isMarshmallowCompatible() - || CompatUtils.isMethodAvailable( - TELECOM_MANAGER_CLASS, - "isVoiceMailNumber", - PhoneAccountHandle.class, - String.class))) { - return telecomManager.isVoiceMailNumber(accountHandle, number); - } - return PhoneNumberUtils.isVoiceMailNumber(number); - } - - /** - * Return the {@link PhoneAccount} for a specified {@link PhoneAccountHandle}. Object includes - * resources which can be used in a user interface. - * - * @param telecomManager the {@link TelecomManager} used for method calls, if possible. - * @param account The {@link PhoneAccountHandle}. - * @return The {@link PhoneAccount} object or null if it doesn't exist. - */ - @Nullable - public static PhoneAccount getPhoneAccount( - @Nullable TelecomManager telecomManager, @Nullable PhoneAccountHandle accountHandle) { - if (telecomManager != null - && (CompatUtils.isMethodAvailable( - TELECOM_MANAGER_CLASS, "getPhoneAccount", PhoneAccountHandle.class))) { - return telecomManager.getPhoneAccount(accountHandle); - } - return null; - } - - /** - * Return the voicemail number for a given phone account. - * - * @param telecomManager The {@link TelecomManager} object to use for retrieving the voicemail - * number if accountHandle is specified. - * @param telephonyManager The {@link TelephonyManager} object to use for retrieving the voicemail - * number if accountHandle is null. - * @param accountHandle The handle for the phone account. - * @return The voicemail number for the phone account, and {@code null} if one has not been - * configured. - */ - @Nullable - public static String getVoiceMailNumber( - @Nullable TelecomManager telecomManager, - @Nullable TelephonyManager telephonyManager, - @Nullable PhoneAccountHandle accountHandle) { - if (telecomManager != null - && (CompatUtils.isMethodAvailable( - TELECOM_MANAGER_CLASS, "getVoiceMailNumber", PhoneAccountHandle.class))) { - return telecomManager.getVoiceMailNumber(accountHandle); - } else if (telephonyManager != null) { - return telephonyManager.getVoiceMailNumber(); - } - return null; - } - - /** - * Processes the specified dial string as an MMI code. MMI codes are any sequence of characters - * entered into the dialpad that contain a "*" or "#". Some of these sequences launch special - * behavior through handled by Telephony. - * - * @param telecomManager The {@link TelecomManager} object to use for handling MMI. - * @param dialString The digits to dial. - * @return {@code true} if the digits were processed as an MMI code, {@code false} otherwise. - */ - public static boolean handleMmi( - @Nullable TelecomManager telecomManager, - @Nullable String dialString, - @Nullable PhoneAccountHandle accountHandle) { - if (telecomManager == null || TextUtils.isEmpty(dialString)) { - return false; - } - if (CompatUtils.isMarshmallowCompatible()) { - return telecomManager.handleMmi(dialString, accountHandle); - } - - Object handleMmiResult = - CompatUtils.invokeMethod( - telecomManager, - "handleMmi", - new Class[] {PhoneAccountHandle.class, String.class}, - new Object[] {accountHandle, dialString}); - if (handleMmiResult != null) { - return (boolean) handleMmiResult; - } - - return telecomManager.handleMmi(dialString); - } - - /** - * Silences the ringer if a ringing call exists. Noop if {@link TelecomManager#silenceRinger()} is - * unavailable. - * - * @param telecomManager the TelecomManager to use to silence the ringer. - */ - public static void silenceRinger(@Nullable TelecomManager telecomManager) { - if (telecomManager != null - && (CompatUtils.isMarshmallowCompatible() - || CompatUtils.isMethodAvailable(TELECOM_MANAGER_CLASS, "silenceRinger"))) { - telecomManager.silenceRinger(); - } - } - /** * Returns the current SIM call manager. Apps must be prepared for this method to return null, * indicating that there currently exists no registered SIM call manager. @@ -292,9 +36,7 @@ public class TelecomManagerCompat { */ @Nullable public static PhoneAccountHandle getSimCallManager(TelecomManager telecomManager) { - if (telecomManager != null - && (CompatUtils.isMarshmallowCompatible() - || CompatUtils.isMethodAvailable(TELECOM_MANAGER_CLASS, "getSimCallManager"))) { + if (telecomManager != null) { return telecomManager.getSimCallManager(); } return null; diff --git a/java/com/android/contacts/common/dialog/CallSubjectDialog.java b/java/com/android/contacts/common/dialog/CallSubjectDialog.java index 0e793710282635c0831210256f489c8c48929d1e..88fac0256dcd636b665a9becf7a050df5ed2ddb9 100644 --- a/java/com/android/contacts/common/dialog/CallSubjectDialog.java +++ b/java/com/android/contacts/common/dialog/CallSubjectDialog.java @@ -45,7 +45,7 @@ import android.widget.QuickContactBadge; import android.widget.TextView; import com.android.contacts.common.ContactPhotoManager; import com.android.contacts.common.R; -import com.android.contacts.common.compat.telecom.TelecomManagerCompat; +import com.android.contacts.common.lettertiles.LetterTileDrawable; import com.android.dialer.animation.AnimUtils; import com.android.dialer.callintent.CallInitiationType; import com.android.dialer.callintent.CallIntentBuilder; @@ -154,11 +154,7 @@ public class CallSubjectDialog extends Activity { .setCallSubject(subject) .build(); - TelecomManagerCompat.placeCall( - CallSubjectDialog.this, - (TelecomManager) getSystemService(Context.TELECOM_SERVICE), - intent); - + getSystemService(TelecomManager.class).placeCall(intent.getData(), intent.getExtras()); mSubjectHistory.add(subject); saveSubjectHistory(mSubjectHistory); finish(); @@ -202,7 +198,7 @@ public class CallSubjectDialog extends Activity { number /* number */, null /* displayNumber */, null /* numberLabel */, - ContactPhotoManager.TYPE_DEFAULT, + LetterTileDrawable.TYPE_DEFAULT, null /* phoneAccountHandle */); } @@ -356,7 +352,7 @@ public class CallSubjectDialog extends Activity { mNumber = arguments.getString(ARG_NUMBER); mDisplayNumber = arguments.getString(ARG_DISPLAY_NUMBER); mNumberLabel = arguments.getString(ARG_NUMBER_LABEL); - mContactType = arguments.getInt(ARG_CONTACT_TYPE, ContactPhotoManager.TYPE_DEFAULT); + mContactType = arguments.getInt(ARG_CONTACT_TYPE, LetterTileDrawable.TYPE_DEFAULT); mPhoneAccountHandle = arguments.getParcelable(ARG_PHONE_ACCOUNT_HANDLE); } diff --git a/java/com/android/contacts/common/format/FormatUtils.java b/java/com/android/contacts/common/format/FormatUtils.java deleted file mode 100644 index 727c15b83032f4bcb0c8d5cf17101bc30e1ca821..0000000000000000000000000000000000000000 --- a/java/com/android/contacts/common/format/FormatUtils.java +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.contacts.common.format; - -import android.database.CharArrayBuffer; -import android.graphics.Typeface; -import android.support.annotation.VisibleForTesting; -import android.text.SpannableString; -import android.text.style.StyleSpan; -import java.util.Arrays; - -/** Assorted utility methods related to text formatting in Contacts. */ -public class FormatUtils { - - /** - * Finds the earliest point in buffer1 at which the first part of buffer2 matches. For example, - * overlapPoint("abcd", "cdef") == 2. - */ - public static int overlapPoint(CharArrayBuffer buffer1, CharArrayBuffer buffer2) { - if (buffer1 == null || buffer2 == null) { - return -1; - } - return overlapPoint( - Arrays.copyOfRange(buffer1.data, 0, buffer1.sizeCopied), - Arrays.copyOfRange(buffer2.data, 0, buffer2.sizeCopied)); - } - - /** - * Finds the earliest point in string1 at which the first part of string2 matches. For example, - * overlapPoint("abcd", "cdef") == 2. - */ - @VisibleForTesting - public static int overlapPoint(String string1, String string2) { - if (string1 == null || string2 == null) { - return -1; - } - return overlapPoint(string1.toCharArray(), string2.toCharArray()); - } - - /** - * Finds the earliest point in array1 at which the first part of array2 matches. For example, - * overlapPoint("abcd", "cdef") == 2. - */ - public static int overlapPoint(char[] array1, char[] array2) { - if (array1 == null || array2 == null) { - return -1; - } - int count1 = array1.length; - int count2 = array2.length; - - // Ignore matching tails of the two arrays. - while (count1 > 0 && count2 > 0 && array1[count1 - 1] == array2[count2 - 1]) { - count1--; - count2--; - } - - int size = count2; - for (int i = 0; i < count1; i++) { - if (i + size > count1) { - size = count1 - i; - } - int j; - for (j = 0; j < size; j++) { - if (array1[i + j] != array2[j]) { - break; - } - } - if (j == size) { - return i; - } - } - - return -1; - } - - /** - * Applies the given style to a range of the input CharSequence. - * - * @param style The style to apply (see the style constants in {@link Typeface}). - * @param input The CharSequence to style. - * @param start Starting index of the range to style (will be clamped to be a minimum of 0). - * @param end Ending index of the range to style (will be clamped to a maximum of the input - * length). - * @param flags Bitmask for configuring behavior of the span. See {@link android.text.Spanned}. - * @return The styled CharSequence. - */ - public static CharSequence applyStyleToSpan( - int style, CharSequence input, int start, int end, int flags) { - // Enforce bounds of the char sequence. - start = Math.max(0, start); - end = Math.min(input.length(), end); - SpannableString text = new SpannableString(input); - text.setSpan(new StyleSpan(style), start, end, flags); - return text; - } - - @VisibleForTesting - public static void copyToCharArrayBuffer(String text, CharArrayBuffer buffer) { - if (text != null) { - char[] data = buffer.data; - if (data == null || data.length < text.length()) { - buffer.data = text.toCharArray(); - } else { - text.getChars(0, text.length(), data, 0); - } - buffer.sizeCopied = text.length(); - } else { - buffer.sizeCopied = 0; - } - } - - /** Returns a String that represents the content of the given {@link CharArrayBuffer}. */ - @VisibleForTesting - public static String charArrayBufferToString(CharArrayBuffer buffer) { - return new String(buffer.data, 0, buffer.sizeCopied); - } - - /** - * Finds the index of the first word that starts with the given prefix. - * - *

If not found, returns -1. - * - * @param text the text in which to search for the prefix - * @param prefix the text to find, in upper case letters - */ - public static int indexOfWordPrefix(CharSequence text, String prefix) { - if (prefix == null || text == null) { - return -1; - } - - int textLength = text.length(); - int prefixLength = prefix.length(); - - if (prefixLength == 0 || textLength < prefixLength) { - return -1; - } - - int i = 0; - while (i < textLength) { - // Skip non-word characters - while (i < textLength && !Character.isLetterOrDigit(text.charAt(i))) { - i++; - } - - if (i + prefixLength > textLength) { - return -1; - } - - // Compare the prefixes - int j; - for (j = 0; j < prefixLength; j++) { - if (Character.toUpperCase(text.charAt(i + j)) != prefix.charAt(j)) { - break; - } - } - if (j == prefixLength) { - return i; - } - - // Skip this word - while (i < textLength && Character.isLetterOrDigit(text.charAt(i))) { - i++; - } - } - - return -1; - } -} diff --git a/java/com/android/contacts/common/format/TextHighlighter.java b/java/com/android/contacts/common/format/TextHighlighter.java index 30c03fdf33ae97bb83888ab35ecfe438ba3f1093..f397f0429b0f3a3b81514d33a2981b490fcca604 100644 --- a/java/com/android/contacts/common/format/TextHighlighter.java +++ b/java/com/android/contacts/common/format/TextHighlighter.java @@ -24,8 +24,6 @@ import android.widget.TextView; /** Highlights the text in a text field. */ public class TextHighlighter { - private static final boolean DEBUG = false; - private final String TAG = TextHighlighter.class.getSimpleName(); private int mTextStyle; private CharacterStyle mTextStyleSpan; @@ -81,7 +79,7 @@ public class TextHighlighter { } final String trimmedPrefix = prefix.substring(prefixStart); - int index = FormatUtils.indexOfWordPrefix(text, trimmedPrefix); + int index = indexOfWordPrefix(text, trimmedPrefix); if (index != -1) { final SpannableString result = new SpannableString(text); result.setSpan(mTextStyleSpan, index, index + trimmedPrefix.length(), 0 /* flags */); @@ -90,4 +88,55 @@ public class TextHighlighter { return text; } } + + /** + * Finds the index of the first word that starts with the given prefix. + * + *

If not found, returns -1. + * + * @param text the text in which to search for the prefix + * @param prefix the text to find, in upper case letters + */ + public static int indexOfWordPrefix(CharSequence text, String prefix) { + if (prefix == null || text == null) { + return -1; + } + + int textLength = text.length(); + int prefixLength = prefix.length(); + + if (prefixLength == 0 || textLength < prefixLength) { + return -1; + } + + int i = 0; + while (i < textLength) { + // Skip non-word characters + while (i < textLength && !Character.isLetterOrDigit(text.charAt(i))) { + i++; + } + + if (i + prefixLength > textLength) { + return -1; + } + + // Compare the prefixes + int j; + for (j = 0; j < prefixLength; j++) { + if (Character.toUpperCase(text.charAt(i + j)) != prefix.charAt(j)) { + break; + } + } + if (j == prefixLength) { + return i; + } + + // Skip this word + while (i < textLength && Character.isLetterOrDigit(text.charAt(i))) { + i++; + } + } + + return -1; + } } diff --git a/java/com/android/contacts/common/format/testing/SpannedTestUtils.java b/java/com/android/contacts/common/format/testing/SpannedTestUtils.java deleted file mode 100644 index 293d9d5adf57f6c2341913e9b82aab3ada6aad4e..0000000000000000000000000000000000000000 --- a/java/com/android/contacts/common/format/testing/SpannedTestUtils.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.contacts.common.format.testing; - -import android.test.suitebuilder.annotation.SmallTest; -import android.text.Html; -import android.text.SpannableString; -import android.text.Spanned; -import android.text.TextUtils; -import android.text.style.StyleSpan; -import android.widget.TextView; -import junit.framework.Assert; - -/** Utility class to check the value of spanned text in text views. */ -@SmallTest -public class SpannedTestUtils { - - /** - * Checks that the text contained in the text view matches the given HTML text. - * - * @param expectedHtmlText the expected text to be in the text view - * @param textView the text view from which to get the text - */ - public static void checkHtmlText(String expectedHtmlText, TextView textView) { - String actualHtmlText = Html.toHtml((Spanned) textView.getText()); - if (TextUtils.isEmpty(expectedHtmlText)) { - // If the text is empty, it does not add the

bits to it. - Assert.assertEquals("", actualHtmlText); - } else { - Assert.assertEquals("

" + expectedHtmlText + "

\n", actualHtmlText); - } - } - - /** - * Assert span exists in the correct location. - * - * @param seq The spannable string to check. - * @param start The starting index. - * @param end The ending index. - */ - public static void assertPrefixSpan(CharSequence seq, int start, int end) { - Assert.assertTrue(seq instanceof Spanned); - Spanned spannable = (Spanned) seq; - - if (start > 0) { - Assert.assertEquals(0, getNumForegroundColorSpansBetween(spannable, 0, start - 1)); - } - Assert.assertEquals(1, getNumForegroundColorSpansBetween(spannable, start, end)); - Assert.assertEquals( - 0, getNumForegroundColorSpansBetween(spannable, end + 1, spannable.length() - 1)); - } - - private static int getNumForegroundColorSpansBetween(Spanned value, int start, int end) { - return value.getSpans(start, end, StyleSpan.class).length; - } - - /** - * Asserts that the given character sequence is not a Spanned object and text is correct. - * - * @param seq The sequence to check. - * @param expected The expected text. - */ - public static void assertNotSpanned(CharSequence seq, String expected) { - Assert.assertFalse(seq instanceof Spanned); - Assert.assertEquals(expected, seq); - } - - public static int getNextTransition(SpannableString seq, int start) { - return seq.nextSpanTransition(start, seq.length(), StyleSpan.class); - } -} diff --git a/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java b/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java index 88522c44bbc67f640227c42cfe9547a35b8c14bf..5e77b696b9e73690f33b8386c26054c087801667 100644 --- a/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java +++ b/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java @@ -30,8 +30,10 @@ import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.support.annotation.IntDef; import android.support.annotation.Nullable; +import android.telecom.TelecomManager; import android.text.TextUtils; import com.android.contacts.common.R; +import com.android.contacts.common.lettertiles.LetterTileDrawable.ContactType; import com.android.dialer.common.Assert; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -406,4 +408,30 @@ public class LetterTileDrawable extends Drawable { } return this; } + + /** + * Returns the appropriate LetterTileDrawable.TYPE_ based on the given primitive conditions. + * + *

If no special state is detected, yields TYPE_DEFAULT + */ + public static @ContactType int getContactTypeFromPrimitives( + boolean isVoicemailNumber, + boolean isSpam, + boolean isBusiness, + int numberPresentation, + boolean isConference) { + if (isVoicemailNumber) { + return LetterTileDrawable.TYPE_VOICEMAIL; + } else if (isSpam) { + return LetterTileDrawable.TYPE_SPAM; + } else if (isBusiness) { + return LetterTileDrawable.TYPE_BUSINESS; + } else if (numberPresentation == TelecomManager.PRESENTATION_RESTRICTED) { + return LetterTileDrawable.TYPE_GENERIC_AVATAR; + } else if (isConference) { + return LetterTileDrawable.TYPE_CONFERENCE; + } else { + return LetterTileDrawable.TYPE_DEFAULT; + } + } } diff --git a/java/com/android/contacts/common/list/ContactEntryListAdapter.java b/java/com/android/contacts/common/list/ContactEntryListAdapter.java index 18bbae3824813a21fe80958a5baef2cd84ad05a3..064214ef2c527a953202f8a712098a40ee11efb1 100644 --- a/java/com/android/contacts/common/list/ContactEntryListAdapter.java +++ b/java/com/android/contacts/common/list/ContactEntryListAdapter.java @@ -26,7 +26,6 @@ import android.provider.ContactsContract.CommonDataKinds.Phone; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Directory; import android.text.TextUtils; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -39,7 +38,10 @@ import com.android.contacts.common.ContactsUtils; import com.android.contacts.common.R; import com.android.contacts.common.compat.DirectoryCompat; import com.android.contacts.common.util.SearchUtil; +import com.android.dialer.common.LogUtil; import com.android.dialer.compat.CompatUtils; +import com.android.dialer.logging.InteractionEvent; +import com.android.dialer.logging.Logger; import java.util.HashSet; /** @@ -354,7 +356,7 @@ public abstract class ContactEntryListAdapter extends IndexerListAdapter { if (cursor.getCount() == 0) { // Directory table must have at least local directory, without which this adapter will // enter very weird state. - Log.e( + LogUtil.e( TAG, "Directory search loader returned an empty cursor, which implies we have " + "no directory entries.", @@ -678,6 +680,9 @@ public abstract class ContactEntryListAdapter extends IndexerListAdapter { // mimetype here is reasonable. quickContact.setPrioritizedMimeType(Phone.CONTENT_ITEM_TYPE); } + Logger.get(mContext) + .logQuickContactOnTouch( + quickContact, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_SEARCH, true); if (photoId != 0 || photoUriColumn == -1) { getPhotoLoader().loadThumbnail(quickContact, photoId, mDarkTheme, mCircularPhotos, null); diff --git a/java/com/android/contacts/common/list/ContactEntryListFragment.java b/java/com/android/contacts/common/list/ContactEntryListFragment.java index 278175c0bd371b3df7b97fd85218caa97b4e3b57..146986f75a6829a8f27e6dae9e98af80b16c1de1 100644 --- a/java/com/android/contacts/common/list/ContactEntryListFragment.java +++ b/java/com/android/contacts/common/list/ContactEntryListFragment.java @@ -555,7 +555,6 @@ public abstract class ContactEntryListFragment(); - mNumberHighlightSequence = new ArrayList<>(); - } - - public ContactListItemView( - Context context, - AttributeSet attrs, - boolean supportVideoCallIcon, - boolean supportCallAndShare) { + public ContactListItemView(Context context, AttributeSet attrs, boolean supportVideoCallIcon) { this(context, attrs); mSupportVideoCall = supportVideoCallIcon; - mSupportCallAndShare = supportCallAndShare; } public ContactListItemView(Context context, AttributeSet attrs) { @@ -284,19 +273,20 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj mNameHighlightSequence = new ArrayList<>(); mNumberHighlightSequence = new ArrayList<>(); + mCallToActionView = new ImageView(getContext()); + mCallToActionView.setId(R.id.call_to_action); + mCallToActionView.setLayoutParams(new LayoutParams(mCallToActionSize, mCallToActionSize)); + mCallToActionView.setScaleType(ScaleType.CENTER); + mCallToActionView.setImageTintList( + ContextCompat.getColorStateList(getContext(), R.color.search_video_call_icon_tint)); + addView(mCallToActionView); + setLayoutDirection(View.LAYOUT_DIRECTION_LOCALE); } - public static PhotoPosition getDefaultPhotoPosition(boolean opposite) { - final Locale locale = Locale.getDefault(); - final int layoutDirection = TextUtils.getLayoutDirectionFromLocale(locale); - switch (layoutDirection) { - case View.LAYOUT_DIRECTION_RTL: - return (opposite ? PhotoPosition.LEFT : PhotoPosition.RIGHT); - case View.LAYOUT_DIRECTION_LTR: - default: - return (opposite ? PhotoPosition.RIGHT : PhotoPosition.LEFT); - } + public static PhotoPosition getDefaultPhotoPosition() { + int layoutDirection = TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()); + return layoutDirection == View.LAYOUT_DIRECTION_RTL ? PhotoPosition.RIGHT : PhotoPosition.LEFT; } /** @@ -333,35 +323,47 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj * @param position The position in the adapter of the call to action. */ public void setCallToAction(@CallToAction int action, Listener listener, int position) { - int drawable; + mCallToAction = action; + mPosition = position; + + Drawable drawable; int description; OnClickListener onClickListener; - if (action == CALL_AND_SHARE && mSupportCallAndShare) { - drawable = R.drawable.ic_call_and_share; - description = R.string.description_search_video_call; + if (action == CALL_AND_SHARE) { + drawable = getContext().getResources().getDrawable(R.drawable.ic_phone_attach); + drawable.setAutoMirrored(true); + description = R.string.description_search_call_and_share; onClickListener = v -> listener.onCallAndShareIconClicked(position); } else if (action == VIDEO && mSupportVideoCall) { - drawable = R.drawable.ic_search_video_call; - description = R.string.description_search_call_and_share; + drawable = + getContext().getResources().getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24); + drawable.setAutoMirrored(true); + description = R.string.description_search_video_call; onClickListener = v -> listener.onVideoCallIconClicked(position); + } else if (action == LIGHTBRINGER) { + drawable = + getContext().getResources().getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24); + drawable.setAutoMirrored(true); + description = R.string.description_search_video_call; + onClickListener = v -> listener.onLightbringerIconClicked(position); } else { - if (mCallToAction != null) { - mCallToAction.setVisibility(View.GONE); - mCallToAction.setOnClickListener(null); - } + mCallToActionView.setVisibility(View.GONE); + mCallToActionView.setOnClickListener(null); return; } - if (mCallToAction == null) { - mCallToAction = new ImageView(getContext()); - mCallToAction.setLayoutParams(new LayoutParams(mCallToActionSize, mCallToActionSize)); - mCallToAction.setScaleType(ScaleType.CENTER); - addView(mCallToAction); - } - mCallToAction.setContentDescription(getContext().getString(description)); - mCallToAction.setOnClickListener(onClickListener); - mCallToAction.setImageResource(drawable); - mCallToAction.setVisibility(View.VISIBLE); + mCallToActionView.setContentDescription(getContext().getString(description)); + mCallToActionView.setOnClickListener(onClickListener); + mCallToActionView.setImageDrawable(drawable); + mCallToActionView.setVisibility(View.VISIBLE); + } + + public @CallToAction int getCallToAction() { + return mCallToAction; + } + + public int getPosition() { + return mPosition; } /** @@ -376,18 +378,6 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj mSupportVideoCall = supportVideoCall; } - /** - * Sets whether the view supports a call and share icon. This is independent of whether the view - * is actually showing an icon. Support for the icon ensures that the layout leaves space for it, - * should it be shown. - * - * @param supportCallAndShare {@code true} if the call and share icon is supported, {@code false} - * otherwise. - */ - public void setSupportCallAndShareIcon(boolean supportCallAndShare) { - mSupportCallAndShare = supportCallAndShare; - } - @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // We will match parent's width and wrap content vertically, but make sure @@ -423,9 +413,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj effectiveWidth -= mHeaderWidth + mGapBetweenImageAndText; } - if (mSupportVideoCall || mSupportCallAndShare) { - effectiveWidth -= (mCallToActionSize + mCallToActionMargin); - } + effectiveWidth -= (mCallToActionSize + mCallToActionMargin); // Go over all visible text views and measure actual width of each of them. // Also calculate their heights to get the total height for this entire view. @@ -496,11 +484,9 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj mStatusTextViewHeight = mPresenceIcon.getMeasuredHeight(); } - if ((mSupportVideoCall || mSupportCallAndShare) && isVisible(mCallToAction)) { - mCallToAction.measure( - MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY), - MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY)); - } + mCallToActionView.measure( + MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY), + MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY)); if (isVisible(mWorkProfileIcon)) { mWorkProfileIcon.measure( @@ -629,34 +615,30 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj leftBound += mTextIndent; } - if (mSupportVideoCall || mSupportCallAndShare) { - // Place the call to action at the end of the list (e.g. take into account RTL mode). - if (isVisible(mCallToAction)) { - // Center the icon vertically - final int callToActionTop = topBound + (height - topBound - mCallToActionSize) / 2; + // Place the call to action at the end of the list (e.g. take into account RTL mode). + // Center the icon vertically + final int callToActionTop = topBound + (height - topBound - mCallToActionSize) / 2; - if (!isLayoutRtl) { - // When photo is on left, icon is placed on the right edge. - mCallToAction.layout( - rightBound - mCallToActionSize, - callToActionTop, - rightBound, - callToActionTop + mCallToActionSize); - } else { - // When photo is on right, icon is placed on the left edge. - mCallToAction.layout( - leftBound, - callToActionTop, - leftBound + mCallToActionSize, - callToActionTop + mCallToActionSize); - } - } + if (!isLayoutRtl) { + // When photo is on left, icon is placed on the right edge. + mCallToActionView.layout( + rightBound - mCallToActionSize, + callToActionTop, + rightBound, + callToActionTop + mCallToActionSize); + } else { + // When photo is on right, icon is placed on the left edge. + mCallToActionView.layout( + leftBound, + callToActionTop, + leftBound + mCallToActionSize, + callToActionTop + mCallToActionSize); + } - if (mPhotoPosition == PhotoPosition.LEFT) { - rightBound -= (mCallToActionSize + mCallToActionMargin); - } else { - leftBound += mCallToActionSize + mCallToActionMargin; - } + if (mPhotoPosition == PhotoPosition.LEFT) { + rightBound -= (mCallToActionSize + mCallToActionMargin); + } else { + leftBound += mCallToActionSize + mCallToActionMargin; } // Center text vertically, then apply the top offset. @@ -901,9 +883,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj } if (mQuickContact == null) { mQuickContact = new QuickContactBadge(getContext()); - if (CompatUtils.isLollipopCompatible()) { - mQuickContact.setOverlay(null); - } + mQuickContact.setOverlay(null); mQuickContact.setLayoutParams(getDefaultPhotoLayoutParams()); if (mNameTextView != null) { mQuickContact.setContentDescription( @@ -1008,9 +988,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj mNameTextView.setGravity(Gravity.CENTER_VERTICAL); mNameTextView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START); mNameTextView.setId(R.id.cliv_name_textview); - if (CompatUtils.isLollipopCompatible()) { - mNameTextView.setElegantTextHeight(false); - } + mNameTextView.setElegantTextHeight(false); addView(mNameTextView); } return mNameTextView; @@ -1056,6 +1034,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj * exists. */ public void setPhoneNumber(String text) { + mPhoneNumber = text; if (text == null) { if (mDataView != null) { mDataView.setVisibility(View.GONE); @@ -1086,6 +1065,10 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj } } + public String getPhoneNumber() { + return mPhoneNumber; + } + private void setMarqueeText(TextView textView, CharSequence text) { if (getTextEllipsis() == TruncateAt.MARQUEE) { // To show MARQUEE correctly (with END effect during non-active state), we need @@ -1109,9 +1092,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj mDataView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START); mDataView.setActivated(isActivated()); mDataView.setId(R.id.cliv_data_view); - if (CompatUtils.isLollipopCompatible()) { - mDataView.setElegantTextHeight(false); - } + mDataView.setElegantTextHeight(false); addView(mDataView); } return mDataView; @@ -1469,28 +1450,17 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj forceLayout(); } - public void setPhotoPosition(PhotoPosition photoPosition) { - mPhotoPosition = photoPosition; - } - /** * Set drawable resources directly for the drawable resource of the photo view. * - * @param drawableId Id of drawable resource. + * @param drawable A drawable resource. */ - public void setDrawableResource(int drawableId) { + public void setDrawable(Drawable drawable) { ImageView photo = getPhotoView(); photo.setScaleType(ImageView.ScaleType.CENTER); - final Drawable drawable = ContextCompat.getDrawable(getContext(), drawableId); - final int iconColor = ContextCompat.getColor(getContext(), R.color.search_shortcut_icon_color); - if (CompatUtils.isLollipopCompatible()) { - photo.setImageDrawable(drawable); - photo.setImageTintList(ColorStateList.valueOf(iconColor)); - } else { - final Drawable drawableWrapper = DrawableCompat.wrap(drawable).mutate(); - DrawableCompat.setTint(drawableWrapper, iconColor); - photo.setImageDrawable(drawableWrapper); - } + int iconColor = ContextCompat.getColor(getContext(), R.color.search_shortcut_icon_color); + photo.setImageDrawable(drawable); + photo.setImageTintList(ColorStateList.valueOf(iconColor)); } @Override diff --git a/java/com/android/contacts/common/list/ContactTileView.java b/java/com/android/contacts/common/list/ContactTileView.java index 9273b0583f3d149b9cd460a4ca92e10be679a910..15582d684923b57d3bfbb9631100127f7fea228f 100644 --- a/java/com/android/contacts/common/list/ContactTileView.java +++ b/java/com/android/contacts/common/list/ContactTileView.java @@ -19,7 +19,6 @@ import android.content.Context; import android.graphics.Rect; import android.net.Uri; import android.util.AttributeSet; -import android.util.Log; import android.view.View; import android.widget.FrameLayout; import android.widget.ImageView; @@ -28,6 +27,9 @@ import com.android.contacts.common.ContactPhotoManager; import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest; import com.android.contacts.common.MoreContactUtils; import com.android.contacts.common.R; +import com.android.dialer.callintent.CallInitiationType; +import com.android.dialer.callintent.CallSpecificAppData; +import com.android.dialer.common.LogUtil; /** A ContactTile displays a contact's picture and name */ public abstract class ContactTileView extends FrameLayout { @@ -60,8 +62,14 @@ public abstract class ContactTileView extends FrameLayout { if (mListener == null) { return; } + CallSpecificAppData callSpecificAppData = + CallSpecificAppData.newBuilder() + .setCallInitiationType(CallInitiationType.Type.SPEED_DIAL) + .build(); mListener.onContactSelected( - getLookupUri(), MoreContactUtils.getTargetRectFromView(ContactTileView.this)); + getLookupUri(), + MoreContactUtils.getTargetRectFromView(ContactTileView.this), + callSpecificAppData); } }; } @@ -97,7 +105,7 @@ public abstract class ContactTileView extends FrameLayout { } } else { - Log.w(TAG, "contactPhotoManager not set"); + LogUtil.w(TAG, "contactPhotoManager not set"); } } else { setVisibility(View.INVISIBLE); @@ -163,9 +171,10 @@ public abstract class ContactTileView extends FrameLayout { public interface Listener { /** Notification that the contact was selected; no specific action is dictated. */ - void onContactSelected(Uri contactLookupUri, Rect viewRect); + void onContactSelected( + Uri contactLookupUri, Rect viewRect, CallSpecificAppData callSpecificAppData); /** Notification that the specified number is to be called. */ - void onCallNumberDirectly(String phoneNumber); + void onCallNumberDirectly(String phoneNumber, CallSpecificAppData callSpecificAppData); } } diff --git a/java/com/android/contacts/common/list/PhoneNumberListAdapter.java b/java/com/android/contacts/common/list/PhoneNumberListAdapter.java index 9a490d78a8a3ac0c57527359b6edb30b3ebc2d3a..65e6f2da2d7a4d824772652a81eba3261846e568 100644 --- a/java/com/android/contacts/common/list/PhoneNumberListAdapter.java +++ b/java/com/android/contacts/common/list/PhoneNumberListAdapter.java @@ -30,7 +30,6 @@ import android.provider.ContactsContract.Directory; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; -import com.android.contacts.common.ContactPhotoManager; import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest; import com.android.contacts.common.ContactsUtils; import com.android.contacts.common.R; @@ -38,15 +37,17 @@ import com.android.contacts.common.compat.CallableCompat; import com.android.contacts.common.compat.DirectoryCompat; import com.android.contacts.common.compat.PhoneCompat; import com.android.contacts.common.extensions.PhoneDirectoryExtenderAccessor; +import com.android.contacts.common.lettertiles.LetterTileDrawable; import com.android.contacts.common.list.ContactListItemView.CallToAction; import com.android.contacts.common.preference.ContactsPreferences; import com.android.contacts.common.util.Constants; -import com.android.dialer.callcomposer.CallComposerContact; import com.android.dialer.common.LogUtil; import com.android.dialer.compat.CompatUtils; +import com.android.dialer.dialercontact.DialerContact; import com.android.dialer.enrichedcall.EnrichedCallCapabilities; import com.android.dialer.enrichedcall.EnrichedCallComponent; import com.android.dialer.enrichedcall.EnrichedCallManager; +import com.android.dialer.lightbringer.LightbringerComponent; import com.android.dialer.location.GeoUtil; import com.android.dialer.util.CallUtil; import java.util.ArrayList; @@ -68,16 +69,15 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { // A list of extended directories to add to the directories from the database private final List mExtendedDirectories; private final CharSequence mUnknownNameText; - private final boolean mCallAndShareEnabled; + private final boolean mIsPresenceEnabled; + protected final boolean mIsImsVideoEnabled; + // Extended directories will have ID's that are higher than any of the id's from the database, // so that we can identify them and set them up properly. If no extended directories // exist, this will be Long.MAX_VALUE private long mFirstExtendedDirectoryId = Long.MAX_VALUE; - private ContactListItemView.PhotoPosition mPhotoPosition; private boolean mUseCallableUri; private Listener mListener; - private boolean mIsVideoEnabled; - private boolean mIsPresenceEnabled; public PhoneNumberListAdapter(Context context) { super(context); @@ -88,11 +88,8 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { PhoneDirectoryExtenderAccessor.get(mContext).getExtendedDirectories(mContext); int videoCapabilities = CallUtil.getVideoCallingAvailability(context); - mIsVideoEnabled = (videoCapabilities & CallUtil.VIDEO_CALLING_ENABLED) != 0; + mIsImsVideoEnabled = CallUtil.isVideoEnabled(context); mIsPresenceEnabled = (videoCapabilities & CallUtil.VIDEO_CALLING_PRESENCE) != 0; - - // TODO - mCallAndShareEnabled = true; } @Override @@ -249,10 +246,10 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { return item != null ? item.getString(PhoneQuery.LOOKUP_KEY) : null; } - public CallComposerContact getCallComposerContact(int position) { + public DialerContact getDialerContact(int position) { Cursor cursor = (Cursor) getItem(position); if (cursor == null) { - LogUtil.e("PhoneNumberListAdapter.getCallComposerContact", "cursor was null."); + LogUtil.e("PhoneNumberListAdapter.getDialerContact", "cursor was null."); return null; } @@ -263,11 +260,11 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { Contacts.getLookupUri( cursor.getLong(PhoneQuery.CONTACT_ID), cursor.getString(PhoneQuery.LOOKUP_KEY)); - CallComposerContact.Builder contact = CallComposerContact.newBuilder(); + DialerContact.Builder contact = DialerContact.newBuilder(); contact .setNumber(number) .setPhotoId(cursor.getLong(PhoneQuery.PHOTO_ID)) - .setContactType(ContactPhotoManager.TYPE_DEFAULT) + .setContactType(LetterTileDrawable.TYPE_DEFAULT) .setNameOrNumber(displayName) .setNumberLabel( Phone.getTypeLabel( @@ -297,7 +294,6 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { ContactListItemView view = super.newView(context, partition, cursor, position, parent); view.setUnknownNameText(mUnknownNameText); view.setQuickContactEnabled(isQuickContactEnabled()); - view.setPhotoPosition(mPhotoPosition); return view; } @@ -401,13 +397,17 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { int carrierPresence = cursor.getInt(PhoneQuery.CARRIER_PRESENCE); boolean isPresent = (carrierPresence & Phone.CARRIER_PRESENCE_VT_CAPABLE) != 0; - boolean isVideoIconShown = mIsVideoEnabled && (!mIsPresenceEnabled || isPresent); + boolean isVideoIconShown = mIsImsVideoEnabled && (!mIsPresenceEnabled || isPresent); if (isVideoIconShown) { action = ContactListItemView.VIDEO; } } - if (isCallAndShareEnabled() && action == ContactListItemView.NONE && number != null) { + if (LightbringerComponent.get(mContext).getLightbringer().isReachable(mContext, number)) { + action = ContactListItemView.LIGHTBRINGER; + } + + if (action == ContactListItemView.NONE) { EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager(); EnrichedCallCapabilities capabilities = manager.getCapabilities(number); if (capabilities != null && capabilities.supportsCallComposer()) { @@ -481,14 +481,6 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { } } - public ContactListItemView.PhotoPosition getPhotoPosition() { - return mPhotoPosition; - } - - public void setPhotoPosition(ContactListItemView.PhotoPosition photoPosition) { - mPhotoPosition = photoPosition; - } - public void setUseCallableUri(boolean useCallableUri) { mUseCallableUri = useCallableUri; } @@ -570,14 +562,12 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { mListener = listener; } - public boolean isCallAndShareEnabled() { - return mCallAndShareEnabled; - } - public interface Listener { void onVideoCallIconClicked(int position); + void onLightbringerIconClicked(int position); + void onCallAndShareIconClicked(int position); } @@ -642,18 +632,14 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { static { final List projectionList = new ArrayList<>(Arrays.asList(PROJECTION_PRIMARY_INTERNAL)); - if (CompatUtils.isMarshmallowCompatible()) { - projectionList.add(Phone.CARRIER_PRESENCE); // 9 - } + projectionList.add(Phone.CARRIER_PRESENCE); // 9 PROJECTION_PRIMARY = projectionList.toArray(new String[projectionList.size()]); } static { final List projectionList = new ArrayList<>(Arrays.asList(PROJECTION_ALTERNATIVE_INTERNAL)); - if (CompatUtils.isMarshmallowCompatible()) { - projectionList.add(Phone.CARRIER_PRESENCE); // 9 - } + projectionList.add(Phone.CARRIER_PRESENCE); // 9 PROJECTION_ALTERNATIVE = projectionList.toArray(new String[projectionList.size()]); } } diff --git a/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java b/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java index 8f25f82a579e0060cc133c196ea8aaae59d25fc9..79e670010c828b46fb2cdf23990bc6bfb1aac7f7 100644 --- a/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java +++ b/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java @@ -29,15 +29,18 @@ import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import com.android.contacts.common.R; +import com.android.contacts.common.list.PhoneNumberListAdapter.Listener; import com.android.contacts.common.util.AccountFilterUtil; -import com.android.dialer.callcomposer.CallComposerContact; import com.android.dialer.callintent.CallInitiationType; import com.android.dialer.callintent.CallInitiationType.Type; import com.android.dialer.callintent.CallSpecificAppData; import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; +import com.android.dialer.dialercontact.DialerContact; import com.android.dialer.enrichedcall.EnrichedCallComponent; import com.android.dialer.enrichedcall.EnrichedCallManager; +import com.android.dialer.lightbringer.LightbringerComponent; +import com.android.dialer.logging.DialerImpression; import com.android.dialer.logging.Logger; import com.android.dialer.protos.ProtoParsers; import java.util.Set; @@ -61,9 +64,6 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment mLoadFinishedListeners = new ArraySet<>(); private CursorReranker mCursorReranker; @@ -71,7 +71,7 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment in the future private static final int[] ATTRS = @@ -54,20 +59,6 @@ public class ViewPagerTabs extends HorizontalScrollView implements ViewPager.OnP android.R.attr.textAllCaps }; - static { - if (CompatUtils.isLollipopCompatible()) { - VIEW_BOUNDS_OUTLINE_PROVIDER = - new ViewOutlineProvider() { - @Override - public void getOutline(View view, Outline outline) { - outline.setRect(0, 0, view.getWidth(), view.getHeight()); - } - }; - } else { - VIEW_BOUNDS_OUTLINE_PROVIDER = null; - } - } - /** * Linearlayout that will contain the TextViews serving as tabs. This is the only child of the * parent HorizontalScrollView. @@ -111,10 +102,8 @@ public class ViewPagerTabs extends HorizontalScrollView implements ViewPager.OnP new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT)); a.recycle(); - if (CompatUtils.isLollipopCompatible()) { - // enable shadow casting from view bounds - setOutlineProvider(VIEW_BOUNDS_OUTLINE_PROVIDER); - } + // enable shadow casting from view bounds + setOutlineProvider(VIEW_BOUNDS_OUTLINE_PROVIDER); } public void setViewPager(ViewPager viewPager) { diff --git a/java/com/android/contacts/common/location/CountryDetector.java b/java/com/android/contacts/common/location/CountryDetector.java deleted file mode 100644 index 7d9e42b38e6b2743099c63504439a04b8ba0cee4..0000000000000000000000000000000000000000 --- a/java/com/android/contacts/common/location/CountryDetector.java +++ /dev/null @@ -1,221 +0,0 @@ -/* - * Copyright (C) 2016 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.contacts.common.location; - -import android.app.PendingIntent; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.SharedPreferences; -import android.location.Geocoder; -import android.location.Location; -import android.location.LocationManager; -import android.preference.PreferenceManager; -import android.telephony.TelephonyManager; -import android.text.TextUtils; -import android.util.Log; -import com.android.dialer.util.PermissionsUtil; -import java.util.Locale; - -/** - * This class is used to detect the country where the user is. It is a simplified version of the - * country detector service in the framework. The sources of country location are queried in the - * following order of reliability: - * - *

    - *
  • Mobile network - *
  • Location manager - *
  • SIM's country - *
  • User's default locale - *
- * - * As far as possible this class tries to replicate the behavior of the system's country detector - * service: 1) Order in priority of sources of country location 2) Mobile network information - * provided by CDMA phones is ignored 3) Location information is updated every 12 hours (instead of - * 24 hours in the system) 4) Location updates only uses the {@link - * LocationManager#PASSIVE_PROVIDER} to avoid active use of the GPS 5) If a location is successfully - * obtained and geocoded, we never fall back to use of the SIM's country (for the system, the - * fallback never happens without a reboot) 6) Location is not used if the device does not implement - * a {@link android.location.Geocoder} - */ -public class CountryDetector { - - public static final String KEY_PREFERENCE_TIME_UPDATED = "preference_time_updated"; - public static final String KEY_PREFERENCE_CURRENT_COUNTRY = "preference_current_country"; - private static final String TAG = "CountryDetector"; - // Wait 12 hours between updates - private static final long TIME_BETWEEN_UPDATES_MS = 1000L * 60 * 60 * 12; - // Minimum distance before an update is triggered, in meters. We don't need this to be too - // exact because all we care about is what country the user is in. - private static final long DISTANCE_BETWEEN_UPDATES_METERS = 5000; - private static CountryDetector sInstance; - private final TelephonyManager mTelephonyManager; - private final LocationManager mLocationManager; - private final LocaleProvider mLocaleProvider; - // Used as a default country code when all the sources of country data have failed in the - // exceedingly rare event that the device does not have a default locale set for some reason. - private static final String DEFAULT_COUNTRY_ISO = "US"; - private final Context mContext; - - private CountryDetector(Context context) { - this( - context, - (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE), - (LocationManager) context.getSystemService(Context.LOCATION_SERVICE), - new LocaleProvider()); - } - - private CountryDetector( - Context context, - TelephonyManager telephonyManager, - LocationManager locationManager, - LocaleProvider localeProvider) { - mTelephonyManager = telephonyManager; - mLocationManager = locationManager; - mLocaleProvider = localeProvider; - mContext = context; - - registerForLocationUpdates(context, mLocationManager); - } - - public static void registerForLocationUpdates(Context context, LocationManager locationManager) { - if (!PermissionsUtil.hasLocationPermissions(context)) { - Log.w(TAG, "No location permissions, not registering for location updates."); - return; - } - - if (!Geocoder.isPresent()) { - // Certain devices do not have an implementation of a geocoder - in that case there is - // no point trying to get location updates because we cannot retrieve the country based - // on the location anyway. - return; - } - final Intent activeIntent = new Intent(context, LocationChangedReceiver.class); - final PendingIntent pendingIntent = - PendingIntent.getBroadcast(context, 0, activeIntent, PendingIntent.FLAG_UPDATE_CURRENT); - - locationManager.requestLocationUpdates( - LocationManager.PASSIVE_PROVIDER, - TIME_BETWEEN_UPDATES_MS, - DISTANCE_BETWEEN_UPDATES_METERS, - pendingIntent); - } - - /** - * Returns the instance of the country detector. {@link #initialize(Context)} must have been - * called previously. - * - * @return the initialized country detector. - */ - public static synchronized CountryDetector getInstance(Context context) { - if (sInstance == null) { - sInstance = new CountryDetector(context.getApplicationContext()); - } - return sInstance; - } - - /** Factory method for {@link CountryDetector} that allows the caller to provide mock objects. */ - public CountryDetector getInstanceForTest( - Context context, - TelephonyManager telephonyManager, - LocationManager locationManager, - LocaleProvider localeProvider, - Geocoder geocoder) { - return new CountryDetector(context, telephonyManager, locationManager, localeProvider); - } - - public String getCurrentCountryIso() { - String result = null; - if (isNetworkCountryCodeAvailable()) { - result = getNetworkBasedCountryIso(); - } - if (TextUtils.isEmpty(result)) { - result = getLocationBasedCountryIso(); - } - if (TextUtils.isEmpty(result)) { - result = getSimBasedCountryIso(); - } - if (TextUtils.isEmpty(result)) { - result = getLocaleBasedCountryIso(); - } - if (TextUtils.isEmpty(result)) { - result = DEFAULT_COUNTRY_ISO; - } - return result.toUpperCase(Locale.US); - } - - /** @return the country code of the current telephony network the user is connected to. */ - private String getNetworkBasedCountryIso() { - return mTelephonyManager.getNetworkCountryIso(); - } - - /** @return the geocoded country code detected by the {@link LocationManager}. */ - private String getLocationBasedCountryIso() { - if (!Geocoder.isPresent() || !PermissionsUtil.hasLocationPermissions(mContext)) { - return null; - } - final SharedPreferences sharedPreferences = - PreferenceManager.getDefaultSharedPreferences(mContext); - return sharedPreferences.getString(KEY_PREFERENCE_CURRENT_COUNTRY, null); - } - - /** @return the country code of the SIM card currently inserted in the device. */ - private String getSimBasedCountryIso() { - return mTelephonyManager.getSimCountryIso(); - } - - /** @return the country code of the user's currently selected locale. */ - private String getLocaleBasedCountryIso() { - Locale defaultLocale = mLocaleProvider.getDefaultLocale(); - if (defaultLocale != null) { - return defaultLocale.getCountry(); - } - return null; - } - - private boolean isNetworkCountryCodeAvailable() { - // On CDMA TelephonyManager.getNetworkCountryIso() just returns the SIM's country code. - // In this case, we want to ignore the value returned and fallback to location instead. - return mTelephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM; - } - - /** - * Class that can be used to return the user's default locale. This is in its own class so that it - * can be mocked out. - */ - public static class LocaleProvider { - - public Locale getDefaultLocale() { - return Locale.getDefault(); - } - } - - public static class LocationChangedReceiver extends BroadcastReceiver { - - @Override - public void onReceive(final Context context, Intent intent) { - if (!intent.hasExtra(LocationManager.KEY_LOCATION_CHANGED)) { - return; - } - - final Location location = - (Location) intent.getExtras().get(LocationManager.KEY_LOCATION_CHANGED); - - UpdateCountryService.updateCountry(context, location); - } - } -} diff --git a/java/com/android/contacts/common/location/UpdateCountryService.java b/java/com/android/contacts/common/location/UpdateCountryService.java deleted file mode 100644 index f23e09e2050bc1563b8718174d4e79812f468b2b..0000000000000000000000000000000000000000 --- a/java/com/android/contacts/common/location/UpdateCountryService.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (C) 2016 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.contacts.common.location; - -import android.app.IntentService; -import android.content.Context; -import android.content.Intent; -import android.content.SharedPreferences; -import android.content.SharedPreferences.Editor; -import android.location.Address; -import android.location.Geocoder; -import android.location.Location; -import android.preference.PreferenceManager; -import android.util.Log; -import java.io.IOException; -import java.util.List; - -/** - * Service used to perform asynchronous geocoding from within a broadcast receiver. Given a {@link - * Location}, convert it into a country code, and save it in shared preferences. - */ -public class UpdateCountryService extends IntentService { - - private static final String TAG = UpdateCountryService.class.getSimpleName(); - - private static final String ACTION_UPDATE_COUNTRY = "saveCountry"; - - private static final String KEY_INTENT_LOCATION = "location"; - - public UpdateCountryService() { - super(TAG); - } - - public static void updateCountry(Context context, Location location) { - final Intent serviceIntent = new Intent(context, UpdateCountryService.class); - serviceIntent.setAction(ACTION_UPDATE_COUNTRY); - serviceIntent.putExtra(UpdateCountryService.KEY_INTENT_LOCATION, location); - context.startService(serviceIntent); - } - - @Override - protected void onHandleIntent(Intent intent) { - if (intent == null) { - Log.d(TAG, "onHandleIntent: could not handle null intent"); - return; - } - if (ACTION_UPDATE_COUNTRY.equals(intent.getAction())) { - final Location location = intent.getParcelableExtra(KEY_INTENT_LOCATION); - final String country = getCountryFromLocation(getApplicationContext(), location); - - if (country == null) { - return; - } - - final SharedPreferences prefs = - PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); - - final Editor editor = prefs.edit(); - editor.putLong(CountryDetector.KEY_PREFERENCE_TIME_UPDATED, System.currentTimeMillis()); - editor.putString(CountryDetector.KEY_PREFERENCE_CURRENT_COUNTRY, country); - editor.commit(); - } - } - - /** - * Given a {@link Location}, return a country code. - * - * @return the ISO 3166-1 two letter country code - */ - private String getCountryFromLocation(Context context, Location location) { - final Geocoder geocoder = new Geocoder(context); - String country = null; - try { - double latitude = location.getLatitude(); - // Latitude has to be between 90 and -90 (latitude of north and south poles wrt equator) - if (latitude <= 90 && latitude >= -90) { - final List
addresses = - geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1); - if (addresses != null && addresses.size() > 0) { - country = addresses.get(0).getCountryCode(); - } - } else { - Log.w(TAG, "Invalid latitude"); - } - } catch (IOException e) { - Log.w(TAG, "Exception occurred when getting geocoded country from location"); - } - return country; - } -} diff --git a/java/com/android/contacts/common/model/ContactLoader.java b/java/com/android/contacts/common/model/ContactLoader.java index 55464b1611590739b4c3bc6fb2168ad8de982a64..7ef3b73a0930d973026210222de142bc7681edb5 100644 --- a/java/com/android/contacts/common/model/ContactLoader.java +++ b/java/com/android/contacts/common/model/ContactLoader.java @@ -522,6 +522,7 @@ public class ContactLoader extends AsyncTaskLoader { cursorColumnToContentValues(cursor, cv, ContactQuery.TIMES_USED); cursorColumnToContentValues(cursor, cv, ContactQuery.LAST_TIME_USED); cursorColumnToContentValues(cursor, cv, ContactQuery.CARRIER_PRESENCE); + return cv; } diff --git a/java/com/android/contacts/common/model/account/BaseAccountType.java b/java/com/android/contacts/common/model/account/BaseAccountType.java index 8e9ba738cfa3461965231636dd896d8fc7306c5e..ccdad36419c083b0369dd5113f3f394480ba575c 100644 --- a/java/com/android/contacts/common/model/account/BaseAccountType.java +++ b/java/com/android/contacts/common/model/account/BaseAccountType.java @@ -307,7 +307,7 @@ public abstract class BaseAccountType extends AccountType { DataKind kind = addKind( new DataKind(Phone.CONTENT_ITEM_TYPE, R.string.phoneLabelsGroup, Weight.PHONE, true)); - kind.iconAltRes = R.drawable.quantum_ic_message_white_24; + kind.iconAltRes = R.drawable.quantum_ic_message_vd_theme_24; kind.iconAltDescriptionRes = R.string.sms; kind.actionHeader = new PhoneActionInflater(); kind.actionAltHeader = new PhoneActionAltInflater(); @@ -1228,7 +1228,7 @@ public abstract class BaseAccountType extends AccountType { new PhoneActionInflater(), new SimpleInflater(Phone.NUMBER)); - kind.iconAltRes = R.drawable.quantum_ic_message_white_24; + kind.iconAltRes = R.drawable.quantum_ic_message_vd_theme_24; kind.iconAltDescriptionRes = R.string.sms; kind.actionAltHeader = new PhoneActionAltInflater(); diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_ab_search.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_ab_search.png deleted file mode 100644 index d86b2195afb90f0a4fbc29808538530ad76b764d..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_ab_search.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_arrow_back_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_arrow_back_24dp.png deleted file mode 100644 index ddbb2c459647e3b93d068e37de24f02c4b6dc3e3..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_arrow_back_24dp.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_business_white_120dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_business_white_120dp.png deleted file mode 100644 index d5942dcad2de787175d0dd426ed91096e2b77e28..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_business_white_120dp.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_call_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_call_24dp.png deleted file mode 100644 index 4dc5065155baeba719d76845d4398431c289cde0..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_call_24dp.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_close_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_close_dk.png deleted file mode 100644 index 9695529351a0e736fc7b469572eaffff0bff0f89..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_close_dk.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_create_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_create_24dp.png deleted file mode 100644 index 540ab4deeaf68d799ce6b01a2b7679a7c78b1e8b..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_create_24dp.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_group_white_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_group_white_24dp.png deleted file mode 100644 index 017e4bbf71ec8e30561efa3b7f84a4bc1523b075..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_group_white_24dp.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_history_white_drawable_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_history_white_drawable_24dp.png deleted file mode 100644 index 703d30b92583a3fc339d8a4bf341f0853410eb86..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_history_white_drawable_24dp.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_info_outline_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_info_outline_24dp.png deleted file mode 100644 index c7b1113cfef22bcec86ead7ae67be12326276cab..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_info_outline_24dp.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_back.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_back.png deleted file mode 100644 index deb3a6dc1db49106b72e5fe195d2dd41f6c243a6..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_back.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_dk.png deleted file mode 100644 index 06bd18fbb32cb70607f68fd2ec8318e54e9da1f7..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_dk.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_lt.png deleted file mode 100644 index d829d11e20aa80a6ef27e56b5956502d89b0240d..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_lt.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_overflow_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_overflow_lt.png deleted file mode 100644 index 1ba12950c81dd66dc20f2b1877211c8c4019e222..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_overflow_lt.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_dk.png deleted file mode 100644 index 5ff3ac57484a0e11d87f932faf68900feaad7315..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_dk.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_lt.png deleted file mode 100644 index b4ebfc7b2ebb9363ccdd308ada2ba4045a632e47..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_lt.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_remove_field_holo_light.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_remove_field_holo_light.png deleted file mode 100644 index 03fd2fb108bc599a117eb739751d9157ceb432c0..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_remove_field_holo_light.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_dk.png deleted file mode 100644 index e8cb0f5fec5b5599df3d1c9a4fb1f513066bedac..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_dk.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_holo_light.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_holo_light.png deleted file mode 100644 index 45137967c532567a1e553b89f90b951c8b63390d..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_holo_light.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_lt.png deleted file mode 100644 index 1c9bb81fa728fb670f55c5b7c34d647d3ec8a948..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_lt.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_person_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_person_24dp.png deleted file mode 100644 index 56708b0bad6c193edb0bb0c7f39897566aff4b20..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_person_24dp.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_rx_videocam.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_rx_videocam.png deleted file mode 100644 index ccdda670172b4521f169c01e47b47535d61613bc..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_rx_videocam.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_tx_videocam.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_tx_videocam.png deleted file mode 100644 index 603ddc8950b3d6ce62d05b586fe1672fdc182f6b..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_tx_videocam.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_videocam.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_videocam.png deleted file mode 100644 index 97905c9f59f2e9e1a39596965bd1840d52c4a424..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_videocam.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_voicemail_avatar.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_voicemail_avatar.png deleted file mode 100644 index 2121878ae9db8a3aaa4f0872780ee49f474c992b..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/ic_voicemail_avatar.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_activated_holo.9.png deleted file mode 100644 index 4ea7afa00e2bfe057472ed5a196080fc80ad7383..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/list_activated_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_background_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_background_holo.9.png deleted file mode 100644 index cddf9be75cb961b8eb07c840f03b94cf9d75c4f0..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/list_background_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_focused_holo.9.png deleted file mode 100644 index 86578be45ae3fbbd3a3c0be96fd487cdca7f95b1..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/list_focused_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_longpressed_holo_light.9.png deleted file mode 100644 index e9afcc9248a49f4cfd95a0cb07504add2789043a..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/list_longpressed_holo_light.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_pressed_holo_light.9.png deleted file mode 100644 index 2054530ed2870bfa7dbc60a2d142ba3776e63d33..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/list_pressed_holo_light.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_section_divider_holo_custom.9.png deleted file mode 100644 index a0f17568e27a95f5854a49244dbbbb5f3b616490..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/list_section_divider_holo_custom.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_title_holo.9.png deleted file mode 100644 index ae937176e07806c0253f2ad1b2a98af020c7048f..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-hdpi/list_title_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_focused_holo.9.png deleted file mode 100644 index 4139942d6882b4de3cccf96de261072d85bbb4f2..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_focused_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_section_divider_holo_custom.9.png deleted file mode 100644 index 569d28f543c606a2d7c59a30a02b050b4a06b666..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_section_divider_holo_custom.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_title_holo.9.png deleted file mode 100644 index 5ec4c96a7ec79659fb416d9f8c3242ff006290d8..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_title_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_focused_holo.9.png deleted file mode 100644 index 4139942d6882b4de3cccf96de261072d85bbb4f2..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_focused_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_section_divider_holo_custom.9.png deleted file mode 100644 index 065ff62ceee695bd6e83b065562790f8ee46a930..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_section_divider_holo_custom.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_title_holo.9.png deleted file mode 100644 index 013d5e711b34c8919dcdcf8811bf6d4612e22653..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_title_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-hdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-hdpi/list_activated_holo.9.png deleted file mode 100644 index 947f03cecca31f3a3fedd9781b9702455363d023..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-hdpi/list_activated_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-mdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-mdpi/list_activated_holo.9.png deleted file mode 100644 index 6d09d72788e0fcca869f201a1111399c91f19d0b..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-mdpi/list_activated_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-xhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-xhdpi/list_activated_holo.9.png deleted file mode 100644 index 63c7456f04b82ea7179f900829c30a8182538ea4..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-xhdpi/list_activated_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_focused_holo.9.png deleted file mode 100644 index 4139942d6882b4de3cccf96de261072d85bbb4f2..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_focused_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_section_divider_holo_custom.9.png deleted file mode 100644 index af5855420ec10eafba6256c00a976bf9c77c741e..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_section_divider_holo_custom.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_title_holo.9.png deleted file mode 100644 index cb801ac1b711324673e9380ae3856df337e73727..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_title_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_activated_holo.9.png deleted file mode 100644 index 3bf8e03623c94b68d31963ffe7e59c72c3dcc059..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-mdpi/list_activated_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_focused_holo.9.png deleted file mode 100644 index 86578be45ae3fbbd3a3c0be96fd487cdca7f95b1..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-mdpi/list_focused_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_longpressed_holo_light.9.png deleted file mode 100644 index 3226ab760aaa0c15b1fcab6d993bce639f0676dd..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-mdpi/list_longpressed_holo_light.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_pressed_holo_light.9.png deleted file mode 100644 index 061904c42c15f2f314d8a27a7665453463586a93..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-mdpi/list_pressed_holo_light.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_section_divider_holo_custom.9.png deleted file mode 100644 index 1d9371de077a7d6e059f17d13af1e6addbd3298c..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-mdpi/list_section_divider_holo_custom.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-sw600dp-hdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-sw600dp-hdpi/list_activated_holo.9.png deleted file mode 100644 index 046b24a9638c19b54393ae38c14124d7b1ecb375..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-sw600dp-hdpi/list_activated_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-sw600dp-mdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-sw600dp-mdpi/list_activated_holo.9.png deleted file mode 100644 index 1ff3373701ccf18b5423d5dcdb0a9132523e870b..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-sw600dp-mdpi/list_activated_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-sw600dp-xhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-sw600dp-xhdpi/list_activated_holo.9.png deleted file mode 100644 index 2eb7c7ebc37bc4f7abed2c22a5ddff26788478fa..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-sw600dp-xhdpi/list_activated_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_activated_holo.9.png deleted file mode 100644 index eda10e6123e1e1383c4617228ec0c96680d60dc7..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-xhdpi/list_activated_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_focused_holo.9.png deleted file mode 100644 index 86578be45ae3fbbd3a3c0be96fd487cdca7f95b1..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-xhdpi/list_focused_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_longpressed_holo_light.9.png deleted file mode 100644 index 5532e88c2c65f7fc9f37bf5a90c5868864b47c9d..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-xhdpi/list_longpressed_holo_light.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_pressed_holo_light.9.png deleted file mode 100644 index f4af9265719d65e1c500c2a9de627aff162a18cc..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-xhdpi/list_pressed_holo_light.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_section_divider_holo_custom.9.png deleted file mode 100644 index 8fb0636cf583b0c47a0c5476e8b95e2c9481b448..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-xhdpi/list_section_divider_holo_custom.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_activated_holo.9.png deleted file mode 100644 index 52c00ddcd2b715610e2c6bc9f2ac220fe0bda0cd..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-xxhdpi/list_activated_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_focused_holo.9.png deleted file mode 100644 index 3e4ca684e950e83576cce90e907d8d6c42a1ede4..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-xxhdpi/list_focused_holo.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_longpressed_holo_light.9.png deleted file mode 100644 index 230d649bf730871f6f538cd7cf957d0aa894f899..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-xxhdpi/list_longpressed_holo_light.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_pressed_holo_light.9.png deleted file mode 100644 index 1352a1702a7bd044d5e9eb2424f2501b3360abe8..0000000000000000000000000000000000000000 Binary files a/java/com/android/contacts/common/res/drawable-xxhdpi/list_pressed_holo_light.9.png and /dev/null differ diff --git a/java/com/android/contacts/common/res/drawable/ic_search_add_contact.xml b/java/com/android/contacts/common/res/drawable/ic_search_add_contact.xml deleted file mode 100644 index 476212d24f4ab91f2ae0ffb798534832d1295895..0000000000000000000000000000000000000000 --- a/java/com/android/contacts/common/res/drawable/ic_search_add_contact.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - diff --git a/java/com/android/contacts/common/res/drawable/list_selector_background_transition_holo_light.xml b/java/com/android/contacts/common/res/drawable/list_selector_background_transition_holo_light.xml deleted file mode 100644 index 35fff99c271ac042de294898040141151843f5e5..0000000000000000000000000000000000000000 --- a/java/com/android/contacts/common/res/drawable/list_selector_background_transition_holo_light.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - diff --git a/java/com/android/contacts/common/res/layout/dialog_call_subject.xml b/java/com/android/contacts/common/res/layout/dialog_call_subject.xml index a33b2ac8573779398af4be980a68711dbbe68400..df8e8d299020f5b2bddf30e5f51e688b840953dc 100644 --- a/java/com/android/contacts/common/res/layout/dialog_call_subject.xml +++ b/java/com/android/contacts/common/res/layout/dialog_call_subject.xml @@ -129,7 +129,7 @@ android:layout_height="25dp" android:layout_alignParentStart="true" android:layout_centerVertical="true" - android:src="@drawable/quantum_ic_history_white_24" + android:src="@drawable/quantum_ic_history_vd_theme_24" android:tint="@color/call_subject_history_icon"/> diff --git a/java/com/android/contacts/common/res/values-af/strings.xml b/java/com/android/contacts/common/res/values-af/strings.xml index 52e612da9e68e51e6f0cf68db351eecceaaf5a7d..48e4158f01d859c4fe4b66e84610c0510b2f3cf8 100644 --- a/java/com/android/contacts/common/res/values-af/strings.xml +++ b/java/com/android/contacts/common/res/values-af/strings.xml @@ -248,7 +248,7 @@ "Tik \'n nota om saam met oproep te stuur …" "STUUR EN BEL" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s-oortjie" %1$s-oortjie %2$d ongelese items. diff --git a/java/com/android/contacts/common/res/values-am/strings.xml b/java/com/android/contacts/common/res/values-am/strings.xml index 0283fbb0ad70e688cb197267720241c38ac1f514..4121474f070abb113347fa18b09bf099280af6bb 100644 --- a/java/com/android/contacts/common/res/values-am/strings.xml +++ b/java/com/android/contacts/common/res/values-am/strings.xml @@ -248,7 +248,7 @@ "ከጥሪ ጋር ለመላክ የማስታወሻ ጽሑፍ ይተይቡ ..." "ላክ እና ደውል" "%1$s / %2$s" - "%1$s%2$s" + "%1$s%2$s" "የ%1$s ትር።" %1$s ትር። %2$d ያልተነበቡ ንጥሎች። diff --git a/java/com/android/contacts/common/res/values-ar/strings.xml b/java/com/android/contacts/common/res/values-ar/strings.xml index a3862fe09ee454debbd2f9731e5d822fbabab3b4..98fb057d4c8dc06a5e74eebb01743c00287e407a 100644 --- a/java/com/android/contacts/common/res/values-ar/strings.xml +++ b/java/com/android/contacts/common/res/values-ar/strings.xml @@ -252,7 +252,7 @@ "اكتب ملاحظة لإرسالها مع المكالمة ..." "إرسال واتصال" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "علامة تبويب %1$s." %1$s علامة تبويب. %2$d عناصر غير مقروءة. diff --git a/java/com/android/contacts/common/res/values-az/strings.xml b/java/com/android/contacts/common/res/values-az/strings.xml index 94337712725bba4babbd57b7d72e42421a307f25..813ada7f737b11ebe7a91fa5561074ca9e64d522 100644 --- a/java/com/android/contacts/common/res/values-az/strings.xml +++ b/java/com/android/contacts/common/res/values-az/strings.xml @@ -248,7 +248,7 @@ "Zəng ilə göndərmək üçün qeyd yazın..." "GÖNDƏRİN VƏ ZƏNG EDİN" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s tabel." %1$s tabel. %2$d oxunmamış element. diff --git a/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml b/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml index fc99567f104edcaa580289158900fc17eb9ab343..3eccfc65413d3d2f06178e36e71730677838b0bb 100644 --- a/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml +++ b/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml @@ -249,7 +249,7 @@ "Unesite belešku koju ćete poslati uz poziv..." "POŠALJI I POZOVI" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Kartica %1$s." Kartica %1$s. %2$d nepročitana stavka. diff --git a/java/com/android/contacts/common/res/values-be/strings.xml b/java/com/android/contacts/common/res/values-be/strings.xml index a9652a1c104af7de5efbff5cb25be240771e1e1c..99922a874f03f62f84bb4497f3fc172c3af243bd 100644 --- a/java/com/android/contacts/common/res/values-be/strings.xml +++ b/java/com/android/contacts/common/res/values-be/strings.xml @@ -250,7 +250,7 @@ "Увесці нататку для адпраўкі з выклікам…" "АДПРАВІЦЬ І ВЫКЛІКАЦЬ" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "Укладка %1$s." Укладка %1$s. %2$d непрачытаны элемент. diff --git a/java/com/android/contacts/common/res/values-bg/strings.xml b/java/com/android/contacts/common/res/values-bg/strings.xml index 0b57eb6a5ae089f642b0ff1ea75e42dec66b7b8c..c2ebd2736cccc959722ebf6fab7084e6c9ae69f5 100644 --- a/java/com/android/contacts/common/res/values-bg/strings.xml +++ b/java/com/android/contacts/common/res/values-bg/strings.xml @@ -248,7 +248,7 @@ "Напишете придружаваща бележка, която ще се изпрати при извършване на обаждането..." "ИЗПРАЩАНЕ И ОБАЖДАНЕ" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Раздел „%1$s“." Раздел „%1$s“. %2$d непрочетени елемента. diff --git a/java/com/android/contacts/common/res/values-bn/strings.xml b/java/com/android/contacts/common/res/values-bn/strings.xml index 8e783d129e2a73051614b52d98fa864e675af316..47e9b020e105cf74a78f0f8a2aa9a42bab22394f 100644 --- a/java/com/android/contacts/common/res/values-bn/strings.xml +++ b/java/com/android/contacts/common/res/values-bn/strings.xml @@ -248,7 +248,7 @@ "কলের সাথে পাঠানোর জন্য একটি নোট লিখুন ..." "পাঠান এবং কল করুন" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s ট্যাব৷" %1$s ট্যাব৷ %2$dটি অপঠিত আইটেম৷ diff --git a/java/com/android/contacts/common/res/values-bs/strings.xml b/java/com/android/contacts/common/res/values-bs/strings.xml index 278f6a8d06e47b8eb253f4140baa3c5ab485a148..305a7468a87f874e7c1e9e5734ddeb7bbdf8fb7a 100644 --- a/java/com/android/contacts/common/res/values-bs/strings.xml +++ b/java/com/android/contacts/common/res/values-bs/strings.xml @@ -249,7 +249,7 @@ "Upišite bilješku koja će se poslati uz poziv ..." "POŠALJI I POZOVI" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "Kartica %1$s." Kartica %1$s. %2$d nepročitana stavka. diff --git a/java/com/android/contacts/common/res/values-ca/strings.xml b/java/com/android/contacts/common/res/values-ca/strings.xml index ad31a01b6e198c496ba85193368b1699cddb8a79..8e80686951c620ce37c29f2d27dd8ce1905e5bbf 100644 --- a/java/com/android/contacts/common/res/values-ca/strings.xml +++ b/java/com/android/contacts/common/res/values-ca/strings.xml @@ -248,7 +248,7 @@ "Escriu una nota per enviar-la juntament amb la trucada..." "ENVIA I TRUCA" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Pestanya %1$s" Pestanya %1$s: %2$d elements no llegits diff --git a/java/com/android/contacts/common/res/values-cs/strings.xml b/java/com/android/contacts/common/res/values-cs/strings.xml index ab54be93aa4e1a6ffb4faecb6613d3a3a19518ff..7aea200b16c9143d3f34b796d95d49c01b3ec26b 100644 --- a/java/com/android/contacts/common/res/values-cs/strings.xml +++ b/java/com/android/contacts/common/res/values-cs/strings.xml @@ -250,7 +250,7 @@ "Zadejte poznámku, která se odešle pomocí volání…" "ODESLAT A ZAVOLAT" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Karta %1$s." Karta %1$s. %2$d nepřečtené položky. diff --git a/java/com/android/contacts/common/res/values-da/strings.xml b/java/com/android/contacts/common/res/values-da/strings.xml index 965d04a732f42a17d252ccdbcf2fdfa0c8a3f55e..430895a712e4e9dd9d8ef4afc169bcfc35e38ec3 100644 --- a/java/com/android/contacts/common/res/values-da/strings.xml +++ b/java/com/android/contacts/common/res/values-da/strings.xml @@ -248,7 +248,7 @@ "Indtast en note, som skal sendes ved opkald..." "SEND OG RING" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Fanen %1$s." Fanen %1$s. %2$d ulæst element. diff --git a/java/com/android/contacts/common/res/values-de/strings.xml b/java/com/android/contacts/common/res/values-de/strings.xml index 60c5e6806e9e61b150517b26ef55c453a58ae4be..a46f278c1542b364f71473076f9bb0eea5eed497 100644 --- a/java/com/android/contacts/common/res/values-de/strings.xml +++ b/java/com/android/contacts/common/res/values-de/strings.xml @@ -248,7 +248,7 @@ "Notiz eingeben, die beim Anrufen gesendet wird..." "SENDEN UND ANRUFEN" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Tab \"%1$s\"." Tab \"%1$s\". %2$d ungelesene Elemente. diff --git a/java/com/android/contacts/common/res/values-el/strings.xml b/java/com/android/contacts/common/res/values-el/strings.xml index 9af3bc55af6e59b93578c4a4dbbf14ccf75f0a2f..567b8fb52333b8766ca630a299ca0a45855c917f 100644 --- a/java/com/android/contacts/common/res/values-el/strings.xml +++ b/java/com/android/contacts/common/res/values-el/strings.xml @@ -248,7 +248,7 @@ "Πληκτρολογήστε μια σημείωση για αποστολή με την κλήση…" "ΑΠΟΣΤΟΛΗ ΚΑΙ ΚΛΗΣΗ" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "Καρτέλα %1$s." Καρτέλα %1$s. %2$d μη αναγνωσμένα στοιχεία. diff --git a/java/com/android/contacts/common/res/values-en-rAU/strings.xml b/java/com/android/contacts/common/res/values-en-rAU/strings.xml index 996c6ee18761de6809f47c4a9aeac542875c8087..660993d2e6c92d254cb03e0cdd4830ca60bdcaa2 100644 --- a/java/com/android/contacts/common/res/values-en-rAU/strings.xml +++ b/java/com/android/contacts/common/res/values-en-rAU/strings.xml @@ -248,7 +248,7 @@ "Type a note to send with call ..." "SEND & CALL" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s tab." %1$s tab. %2$d unread items. diff --git a/java/com/android/contacts/common/res/values-en-rGB/strings.xml b/java/com/android/contacts/common/res/values-en-rGB/strings.xml index 996c6ee18761de6809f47c4a9aeac542875c8087..660993d2e6c92d254cb03e0cdd4830ca60bdcaa2 100644 --- a/java/com/android/contacts/common/res/values-en-rGB/strings.xml +++ b/java/com/android/contacts/common/res/values-en-rGB/strings.xml @@ -248,7 +248,7 @@ "Type a note to send with call ..." "SEND & CALL" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s tab." %1$s tab. %2$d unread items. diff --git a/java/com/android/contacts/common/res/values-en-rIN/strings.xml b/java/com/android/contacts/common/res/values-en-rIN/strings.xml index 996c6ee18761de6809f47c4a9aeac542875c8087..660993d2e6c92d254cb03e0cdd4830ca60bdcaa2 100644 --- a/java/com/android/contacts/common/res/values-en-rIN/strings.xml +++ b/java/com/android/contacts/common/res/values-en-rIN/strings.xml @@ -248,7 +248,7 @@ "Type a note to send with call ..." "SEND & CALL" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s tab." %1$s tab. %2$d unread items. diff --git a/java/com/android/contacts/common/res/values-es-rUS/strings.xml b/java/com/android/contacts/common/res/values-es-rUS/strings.xml index acb563cab4d6dca00a2628d38d2d44c48b99ef77..1c0339a6a480bf1489f15ad59566f49f163391a8 100644 --- a/java/com/android/contacts/common/res/values-es-rUS/strings.xml +++ b/java/com/android/contacts/common/res/values-es-rUS/strings.xml @@ -248,7 +248,7 @@ "Escribe una nota para enviar con la llamada…" "ENVIAR Y LLAMAR" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Pestaña %1$s." Pestaña %1$s. %2$d elementos no leídos. diff --git a/java/com/android/contacts/common/res/values-es/strings.xml b/java/com/android/contacts/common/res/values-es/strings.xml index def7a447c26a7c43fe46f4d7a1c2ee7de5a8146f..b0956ec6a30d53be5a3c066b63bdfd05a2bd17e1 100644 --- a/java/com/android/contacts/common/res/values-es/strings.xml +++ b/java/com/android/contacts/common/res/values-es/strings.xml @@ -248,7 +248,7 @@ "Escribe una nota para enviarla con la llamada..." "ENVIAR Y LLAMAR" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Pestaña %1$s." Pestaña %1$s. %2$d elementos no leídos. diff --git a/java/com/android/contacts/common/res/values-et/strings.xml b/java/com/android/contacts/common/res/values-et/strings.xml index c80d54214865945667d6d23302e9bd6ee9e904d8..e152f595ae92625a84aedbe0ab7f2aaaf5b55da4 100644 --- a/java/com/android/contacts/common/res/values-et/strings.xml +++ b/java/com/android/contacts/common/res/values-et/strings.xml @@ -248,7 +248,7 @@ "Sisestage märkus, mis koos kõnega saata ..." "SAADA JA HELISTA" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Vahekaart %1$s." Vahekaart %1$s. %2$d lugemata üksust. diff --git a/java/com/android/contacts/common/res/values-eu/strings.xml b/java/com/android/contacts/common/res/values-eu/strings.xml index 868d668b56054338e443550a29920c60f60a91de..967b6354091dfc3bed021eb9f201d19b5992663f 100644 --- a/java/com/android/contacts/common/res/values-eu/strings.xml +++ b/java/com/android/contacts/common/res/values-eu/strings.xml @@ -248,7 +248,7 @@ "Idatzi deiarekin batera bidali beharreko oharra…" "BIDALI ETA DEITU" "%1$s/%2$s" - "%1$s%2$s" + "%1$s: %2$s" "%1$s fitxa." %1$s fitxa. Irakurri gabeko %2$d elementu. diff --git a/java/com/android/contacts/common/res/values-fa/strings.xml b/java/com/android/contacts/common/res/values-fa/strings.xml index dda10647c64248cbee40a86008069e3316e07119..3650e46710ce8f11372a190a2f5a2f13113b8f84 100644 --- a/java/com/android/contacts/common/res/values-fa/strings.xml +++ b/java/com/android/contacts/common/res/values-fa/strings.xml @@ -248,7 +248,7 @@ "یادداشتی بنویسید که همراه تماس ارسال شود…" "ارسال و تماس" "%1$s / ‏%2$s" - "%1$s%2$s" + "%1$s %2$s" "برگه «%1$s»." برگه «%1$s». %2$d مورد خوانده‌نشده. diff --git a/java/com/android/contacts/common/res/values-fi/strings.xml b/java/com/android/contacts/common/res/values-fi/strings.xml index b8065b2bfbb65b0d0172537e95b5ebe763f5a53e..b7739dee81cf05f807661a7b55210ad77258a88c 100644 --- a/java/com/android/contacts/common/res/values-fi/strings.xml +++ b/java/com/android/contacts/common/res/values-fi/strings.xml @@ -248,7 +248,7 @@ "Kirjoita muistiinpano lähetettäväksi puhelun kanssa…" "LÄHETÄ JA SOITA" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s-välilehti." %1$s-välilehti. %2$d lukematonta kohdetta. diff --git a/java/com/android/contacts/common/res/values-fr-rCA/strings.xml b/java/com/android/contacts/common/res/values-fr-rCA/strings.xml index 82f549292209782ac12a359cfe14d765906169d5..c20b8827e074cae0d33a8c68d1af87cd1ecb72d2 100644 --- a/java/com/android/contacts/common/res/values-fr-rCA/strings.xml +++ b/java/com/android/contacts/common/res/values-fr-rCA/strings.xml @@ -248,7 +248,7 @@ "Tapez une note à envoyer avec l\'appel..." "ENVOYER ET APPELER" "%1$s/%2$s" - "%1$s%2$s" + "%1$s : %2$s" "Onglet %1$s." Onglet %1$s. %2$d élément non lu. diff --git a/java/com/android/contacts/common/res/values-fr/strings.xml b/java/com/android/contacts/common/res/values-fr/strings.xml index 474d721dc1fdb4793ca1f8f2e7cd7f00d93b5a84..93b52dcf9a992fd3be59eecedf217697d08efb50 100644 --- a/java/com/android/contacts/common/res/values-fr/strings.xml +++ b/java/com/android/contacts/common/res/values-fr/strings.xml @@ -248,7 +248,7 @@ "Saisissez une note pour accompagner l\'appel..." "ENVOYER ET APPELER" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Onglet %1$s." Onglet %1$s. %2$d élément non lu. diff --git a/java/com/android/contacts/common/res/values-gl/strings.xml b/java/com/android/contacts/common/res/values-gl/strings.xml index 4a3262a2b1743101c6ff45dfcddc74e10378a27b..4aa1fc1f7416a729675c9774c051b6c6148b572c 100644 --- a/java/com/android/contacts/common/res/values-gl/strings.xml +++ b/java/com/android/contacts/common/res/values-gl/strings.xml @@ -248,7 +248,7 @@ "Escribe unha nota para enviala coa chamada…" "ENVIAR E CHAMAR" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Pestana %1$s." Pestana %1$s. %2$d elementos non lidos. diff --git a/java/com/android/contacts/common/res/values-gu/strings.xml b/java/com/android/contacts/common/res/values-gu/strings.xml index 536aceb9c583c127c97a4ad6ced1c76f338c45d9..8bbfb3a2bb14e2aef777df240252bd2c1968b8c1 100644 --- a/java/com/android/contacts/common/res/values-gu/strings.xml +++ b/java/com/android/contacts/common/res/values-gu/strings.xml @@ -248,7 +248,7 @@ "કૉલ સાથે મોકલવા માટે એક નોંધ લખો ..." "મોકલો અને કૉલ કરો" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s ટૅબ." %1$s ટૅબ. %2$d વાંચ્યા વગરની આઇટમ. diff --git a/java/com/android/contacts/common/res/values-hi/strings.xml b/java/com/android/contacts/common/res/values-hi/strings.xml index c61e195cbe15a3b1144123fbeeb7b3367e2c794b..c1af9b7ff1c74b74f464adf29747578d5bce2e6c 100644 --- a/java/com/android/contacts/common/res/values-hi/strings.xml +++ b/java/com/android/contacts/common/res/values-hi/strings.xml @@ -248,7 +248,7 @@ "कॉल के साथ भेजने के लिए नोट लिखें ..." "भेजें और कॉल करें" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s टैब." %1$s टैब. %2$d नहीं पढ़े गए आइटम. diff --git a/java/com/android/contacts/common/res/values-hr/strings.xml b/java/com/android/contacts/common/res/values-hr/strings.xml index 66986dd38f8e3118e3a5b28a129a930e1b801f7d..a60c884c1725ac47789528557124c51a71339acf 100644 --- a/java/com/android/contacts/common/res/values-hr/strings.xml +++ b/java/com/android/contacts/common/res/values-hr/strings.xml @@ -249,7 +249,7 @@ "Napišite bilješku koju ćete poslati uz poziv..." "POŠALJI I NAZOVI" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Kartica %1$s." Kartica %1$s. %2$d nepročitana stavka. diff --git a/java/com/android/contacts/common/res/values-hu/strings.xml b/java/com/android/contacts/common/res/values-hu/strings.xml index 22bf5094ca469d5ee5cb5a2441b547e070fd3b85..19fbbe8447fe7a6b1f6fa2472500f252bc51652f 100644 --- a/java/com/android/contacts/common/res/values-hu/strings.xml +++ b/java/com/android/contacts/common/res/values-hu/strings.xml @@ -248,7 +248,7 @@ "Írjon üzenetet, amelyet elküldhetünk a hívással együtt…" "KÜLDÉS ÉS HÍVÁS" "%2$s/%1$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s lap." %1$s lap. %2$d olvasatlan elem. diff --git a/java/com/android/contacts/common/res/values-hy/strings.xml b/java/com/android/contacts/common/res/values-hy/strings.xml index 85c902347d2e5d84717f11dfada456a945ee4b4c..b3ed5e5316384378d155eba97d2233714d0f6c04 100644 --- a/java/com/android/contacts/common/res/values-hy/strings.xml +++ b/java/com/android/contacts/common/res/values-hy/strings.xml @@ -248,7 +248,7 @@ "Մուտքագրեք նշում՝ զանգի հետ ուղարկելու համար ..." "ՈՒՂԱՐԿԵԼ ԵՎ ԶԱՆԳԵԼ" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s ներդիր:" %1$s tab. %2$d unread items. diff --git a/java/com/android/contacts/common/res/values-in/strings.xml b/java/com/android/contacts/common/res/values-in/strings.xml index d7ee8bfb98dcc57c8fc465683ddd152afe434de7..13252a5b07cb50a3a8057b64cfde8b167ebbd77a 100644 --- a/java/com/android/contacts/common/res/values-in/strings.xml +++ b/java/com/android/contacts/common/res/values-in/strings.xml @@ -248,7 +248,7 @@ "Ketik catatan untuk dikirim dengan panggilan telepon ..." "KIRIM & TELEPON" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "Tab %1$s." Tab %1$s. %2$d item belum dibaca. diff --git a/java/com/android/contacts/common/res/values-is/strings.xml b/java/com/android/contacts/common/res/values-is/strings.xml index 26c1aefd1d32c7467fef8e64fa9bb75af55e90b1..569c10f3e55ce19527bb3b2ecb79f068e6dd1577 100644 --- a/java/com/android/contacts/common/res/values-is/strings.xml +++ b/java/com/android/contacts/common/res/values-is/strings.xml @@ -248,7 +248,7 @@ "Sláðu inn texta til að senda með símtalinu..." "SENDA OG HRINGJA" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "Flipinn %1$s." Flipinn %1$s. %2$d ólesið atriði. diff --git a/java/com/android/contacts/common/res/values-it/strings.xml b/java/com/android/contacts/common/res/values-it/strings.xml index 8ea56485495864ad8c63b6ede61041ba3692a997..342cd61df4034faf1d7933ab0baf5bc9982ce820 100644 --- a/java/com/android/contacts/common/res/values-it/strings.xml +++ b/java/com/android/contacts/common/res/values-it/strings.xml @@ -248,7 +248,7 @@ "Digita una nota da inviare con la chiamata..." "INVIA E CHIAMA" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Scheda %1$s." Scheda %1$s. %2$d elementi da leggere. diff --git a/java/com/android/contacts/common/res/values-iw/strings.xml b/java/com/android/contacts/common/res/values-iw/strings.xml index 2a6b2c1898d3e4b551f5540885a9955a2c480994..e0d8e5dfb0c00619b7262907d859b2c080d4f5d6 100644 --- a/java/com/android/contacts/common/res/values-iw/strings.xml +++ b/java/com/android/contacts/common/res/values-iw/strings.xml @@ -250,7 +250,7 @@ "הקלד הערה לשליחה עם השיחה..." "שלח והתקשר" "%1$s / %2$s" - "%1$s%2$s" + "‎%1$s %2$s‎" "הכרטיסייה %1$s." הכרטיסייה %1$s. %2$d פריטים שלא נקראו. diff --git a/java/com/android/contacts/common/res/values-ja/strings.xml b/java/com/android/contacts/common/res/values-ja/strings.xml index 3271b46bbe606495c1ec17f7240610d915103acd..e224a38a2253a05fbfa858b760efbaf5009f4403 100644 --- a/java/com/android/contacts/common/res/values-ja/strings.xml +++ b/java/com/android/contacts/common/res/values-ja/strings.xml @@ -248,7 +248,7 @@ "発信時に送信するメモを入力..." "送信 / 通話" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s タブ。" %1$s タブ。%2$d 件の未読項目。 diff --git a/java/com/android/contacts/common/res/values-ka/strings.xml b/java/com/android/contacts/common/res/values-ka/strings.xml index ebbee6e33795da3f473279be04131065dc219cc3..86273b32e03c9c9349149bf4f99b2911353e258c 100644 --- a/java/com/android/contacts/common/res/values-ka/strings.xml +++ b/java/com/android/contacts/common/res/values-ka/strings.xml @@ -248,7 +248,7 @@ "აკრიფეთ შენიშვნა ზართან ერთად გასაგზავნად ..." "გაგზავნა და დარეკვა" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s ცხრ." %1$s ცხრ. %2$d წაუკითხავი ერთეული. diff --git a/java/com/android/contacts/common/res/values-kk/strings.xml b/java/com/android/contacts/common/res/values-kk/strings.xml index 327532abcd1b4aa1e768bb947c135f29664f291c..45df334f9436d01eb20580115bd35aeff7a1de4f 100644 --- a/java/com/android/contacts/common/res/values-kk/strings.xml +++ b/java/com/android/contacts/common/res/values-kk/strings.xml @@ -248,7 +248,7 @@ "Қоңыраумен жіберу үшін ескертпе теріңіз ..." "ЖІБЕРУ ЖӘНЕ ҚОҢЫРАУ ШАЛУ" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s қойындысы." %1$s қойындысы. %2$d оқылмаған элемент. diff --git a/java/com/android/contacts/common/res/values-km/strings.xml b/java/com/android/contacts/common/res/values-km/strings.xml index 5030167922260fe24c8810121d0c1541146d7ce4..8d4ba2affae651ce372c1f6ee9240c5091c5804f 100644 --- a/java/com/android/contacts/common/res/values-km/strings.xml +++ b/java/com/android/contacts/common/res/values-km/strings.xml @@ -248,7 +248,7 @@ "វាយបញ្ចូលចំណាំដែលត្រូវផ្ញើជាមួយការហៅទូរស័ព្ទ ..." "ផ្ញើ & ហៅ" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "ផ្ទាំង %1$s។" ផ្ទាំង %1$s។ ធាតុមិនទាន់​អាន %2$d diff --git a/java/com/android/contacts/common/res/values-kn/strings.xml b/java/com/android/contacts/common/res/values-kn/strings.xml index 446e078a65f0c34d9203b8dccd02d5a20a10aaac..0dfdaa6098252086737cc601120bd4b3feec478b 100644 --- a/java/com/android/contacts/common/res/values-kn/strings.xml +++ b/java/com/android/contacts/common/res/values-kn/strings.xml @@ -248,7 +248,7 @@ "ಕರೆ ಕಳುಹಿಸಲು ಟಿಪ್ಪಣಿಯನ್ನು ಟೈಪ್ ಮಾಡಿ ..." "ಕಳುಹಿಸು ಮತ್ತು ಕರೆಮಾಡು" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s ಟ್ಯಾಬ್." %1$s ಟ್ಯಾಬ್. %2$d ಓದದಿರುವ ಐಟಂಗಳು. diff --git a/java/com/android/contacts/common/res/values-ko/strings.xml b/java/com/android/contacts/common/res/values-ko/strings.xml index 4c2bd4f62547c39b19bd5a736fe54947b85ff798..13edcc11ec721f252ad82b4fd274c377ce76cb03 100644 --- a/java/com/android/contacts/common/res/values-ko/strings.xml +++ b/java/com/android/contacts/common/res/values-ko/strings.xml @@ -248,7 +248,7 @@ "통화에 함께 전송할 메모를 입력하세요..." "보내기 및 전화 걸기" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s 탭" %1$s 탭. 읽지 않은 항목 %2$d diff --git a/java/com/android/contacts/common/res/values-ky/strings.xml b/java/com/android/contacts/common/res/values-ky/strings.xml index e5bab4550f47f9fba23aac74542c6b9266625a37..43e12e77e09ae6f83785e19a85c7ff724899c21f 100644 --- a/java/com/android/contacts/common/res/values-ky/strings.xml +++ b/java/com/android/contacts/common/res/values-ky/strings.xml @@ -248,7 +248,7 @@ "Чалуу менен жөнөтүлө турган кыска жазууну териңиз …" "ЖӨНӨТҮҮ ЖАНА ЧАЛУУ" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "\"%1$s\" өтмөгү." \"%1$s\" өтмөгү. %2$d нерсе окула элек. diff --git a/java/com/android/contacts/common/res/values-lo/strings.xml b/java/com/android/contacts/common/res/values-lo/strings.xml index c649539d476b118c63f864fb2c0dd2bb2a4e4c0b..d98ec8b9068856d27569613cd36d0f90391ed190 100644 --- a/java/com/android/contacts/common/res/values-lo/strings.xml +++ b/java/com/android/contacts/common/res/values-lo/strings.xml @@ -248,7 +248,7 @@ "ພິມ​ບັນ​ທຶກ ເພື່ອ​ສົ່ງ​ກັບ​ການ​ໂທ ..." "ສົ່ງ ແລະ ໂທ" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "ແຖບ %1$s." ແຖບ %1$s. %2$d ລາຍການບໍ່ທັນໄດ້ອ່ານ. diff --git a/java/com/android/contacts/common/res/values-lt/strings.xml b/java/com/android/contacts/common/res/values-lt/strings.xml index b74bd99eeb818ff87a7853008ebe3ac1e76272d7..53773b25a8580e89990f079a01a14c700c632e0b 100644 --- a/java/com/android/contacts/common/res/values-lt/strings.xml +++ b/java/com/android/contacts/common/res/values-lt/strings.xml @@ -250,7 +250,7 @@ "Įveskite užrašą, kurį galima išsiųsti skambinant..." "SIŲSTI IR SKAMBINTI" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "Skirtukas „%1$s“." Skirtukas „%1$s“. %2$d neskaitytas elementas. diff --git a/java/com/android/contacts/common/res/values-lv/strings.xml b/java/com/android/contacts/common/res/values-lv/strings.xml index c09a27f5d822d982efeabeb5342b2d2571ad65a1..cc569017685587b7bac9f0043e0de5d0105c0984 100644 --- a/java/com/android/contacts/common/res/values-lv/strings.xml +++ b/java/com/android/contacts/common/res/values-lv/strings.xml @@ -249,7 +249,7 @@ "Ierakstiet piezīmi, ko nosūtīt ar zvanu..." "SŪTĪT UN ZVANĪT" "%1$s no %2$s" - "%1$s • %2$s" + "%1$s: %2$s" "Cilne “%1$s”" Cilne “%1$s”. %2$d nelasīti vienumi. diff --git a/java/com/android/contacts/common/res/values-mk/strings.xml b/java/com/android/contacts/common/res/values-mk/strings.xml index da1530f2aca021473cfe2216bf5101ae4f920c73..f6a4af8b1458eca9c4c3c8dd1db1aad90290c374 100644 --- a/java/com/android/contacts/common/res/values-mk/strings.xml +++ b/java/com/android/contacts/common/res/values-mk/strings.xml @@ -248,7 +248,7 @@ "Напишете белешка да се испрати со повикот..." "ИСПРАТИ И ПОВИКАЈ" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Картичка %1$s." Картичка %1$s. %2$d непрочитана ставка. diff --git a/java/com/android/contacts/common/res/values-ml/strings.xml b/java/com/android/contacts/common/res/values-ml/strings.xml index 7e927499af8f2fc2eff9eb50050c23afe01155b4..dfc21ffb980bc4b4315e221f7d40fe1f033c63ce 100644 --- a/java/com/android/contacts/common/res/values-ml/strings.xml +++ b/java/com/android/contacts/common/res/values-ml/strings.xml @@ -248,7 +248,7 @@ "കോളിനൊപ്പം അയയ്ക്കുന്നതിന് ഒരു കുറിപ്പ് ടൈപ്പുചെയ്യുക ..." "അയയ്‌ക്കുകയും വിളിക്കുകയും ചെയ്യുക" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s ടാബ്." %1$s ടാബ്. %2$d വായിക്കാത്ത ഇനങ്ങൾ. diff --git a/java/com/android/contacts/common/res/values-mn/strings.xml b/java/com/android/contacts/common/res/values-mn/strings.xml index f0a8c9245bed9d65dd22d56130517f5cde6b136b..a5c2afd2c6e7bc2191c4b52b55d959f0f6aaa553 100644 --- a/java/com/android/contacts/common/res/values-mn/strings.xml +++ b/java/com/android/contacts/common/res/values-mn/strings.xml @@ -248,7 +248,7 @@ "Дуудлаганд илгээх тэмдэглэл бичнэ үү..." "ИЛГЭЭХ, ДУУДЛАГА" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s таб." %1$s таб. %2$d уншаагүй зүйл. diff --git a/java/com/android/contacts/common/res/values-mr/strings.xml b/java/com/android/contacts/common/res/values-mr/strings.xml index 96504c7bcd90f358da73e86d3263c19bfcfd5c26..d632bb1be1b3740eeaa9f1f951c77e8ab855dce3 100644 --- a/java/com/android/contacts/common/res/values-mr/strings.xml +++ b/java/com/android/contacts/common/res/values-mr/strings.xml @@ -248,7 +248,7 @@ "कॉलसह पाठविण्‍यासाठी एक टीप टाइप करा..." "पाठवा आणि कॉल करा" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s टॅब." %1$s टॅब. %2$d न वाचलेला आयटम. diff --git a/java/com/android/contacts/common/res/values-ms/strings.xml b/java/com/android/contacts/common/res/values-ms/strings.xml index 60d2b7accf53ec0d92023bb92a0634a7a927e44c..24ff73767b4dd9dffbbed2bb7efc594d96888256 100644 --- a/java/com/android/contacts/common/res/values-ms/strings.xml +++ b/java/com/android/contacts/common/res/values-ms/strings.xml @@ -248,7 +248,7 @@ "Taip nota untuk dihantar dengan panggilan…" "HANTAR & PANGGIL" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "Tab %1$s." Tab %1$s. %2$d item belum dibaca. diff --git a/java/com/android/contacts/common/res/values-my/strings.xml b/java/com/android/contacts/common/res/values-my/strings.xml index d81e8950dc8fbd921f27bb0acdafdfd3df83a1ab..c0cb020f8e4ff535431cb694a64cba863f95c395 100644 --- a/java/com/android/contacts/common/res/values-my/strings.xml +++ b/java/com/android/contacts/common/res/values-my/strings.xml @@ -248,7 +248,7 @@ "ခေါ်ဆိုမှုဖြင့် ပေးပို့ရန် မှတ်စုတစ်ခု ရိုက်ပါ ..." "ပေးပို့ပြီး ခေါ်ပါ" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s တဘ်။" %1$s တဘ်။ မဖတ်ရသေးသည့် အရာ %2$d ခု။ diff --git a/java/com/android/contacts/common/res/values-nb/strings.xml b/java/com/android/contacts/common/res/values-nb/strings.xml index 7085cb381c53d52502c8a47e8b34b3cf7dbe475e..80507fce1101e1a935f1d70b5746ffbb9cb86397 100644 --- a/java/com/android/contacts/common/res/values-nb/strings.xml +++ b/java/com/android/contacts/common/res/values-nb/strings.xml @@ -248,7 +248,7 @@ "Skriv et notat du vil sende med anropet …" "SEND OG RING" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s-fanen." %1$s-fanen. %2$d uleste elementer. diff --git a/java/com/android/contacts/common/res/values-ne/strings.xml b/java/com/android/contacts/common/res/values-ne/strings.xml index 1f54232afbc286595e89224f7585227ab83a7398..2459c8aba540ea1f74e86fd55b1ff7712bcc7e7b 100644 --- a/java/com/android/contacts/common/res/values-ne/strings.xml +++ b/java/com/android/contacts/common/res/values-ne/strings.xml @@ -248,7 +248,7 @@ "यस कलसँग पठाउन एक टिप्पणी टाइप गर्नुहोस्" "पठाउनुहोस् र कल गर्नुहोस्" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s ट्याब।" %1$s ट्याब। %2$d नपढिएका वस्तुहरू। diff --git a/java/com/android/contacts/common/res/values-nl/strings.xml b/java/com/android/contacts/common/res/values-nl/strings.xml index 9d41899f18f6c19dd4a04e08a0e943d236d6ae7a..c92249b61524270e6b17d24a085bf8c08717a9f3 100644 --- a/java/com/android/contacts/common/res/values-nl/strings.xml +++ b/java/com/android/contacts/common/res/values-nl/strings.xml @@ -248,7 +248,7 @@ "Typ een notitie om te verzenden met de oproep..." "VERZENDEN EN BELLEN" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Tabblad %1$s." Tabblad %1$s. %2$d ongelezen items. diff --git a/java/com/android/contacts/common/res/values-no/strings.xml b/java/com/android/contacts/common/res/values-no/strings.xml index 7085cb381c53d52502c8a47e8b34b3cf7dbe475e..80507fce1101e1a935f1d70b5746ffbb9cb86397 100644 --- a/java/com/android/contacts/common/res/values-no/strings.xml +++ b/java/com/android/contacts/common/res/values-no/strings.xml @@ -248,7 +248,7 @@ "Skriv et notat du vil sende med anropet …" "SEND OG RING" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s-fanen." %1$s-fanen. %2$d uleste elementer. diff --git a/java/com/android/contacts/common/res/values-pa/strings.xml b/java/com/android/contacts/common/res/values-pa/strings.xml index c96510cc74990f71fbdf5d756f0b9c46c672ef89..6401993c25c8dc1a6992d482249ecca10a61b524 100644 --- a/java/com/android/contacts/common/res/values-pa/strings.xml +++ b/java/com/android/contacts/common/res/values-pa/strings.xml @@ -248,7 +248,7 @@ "ਕਾਲ ਦੇ ਨਾਲ ਭੇਜਣ ਲਈ ਕੋਈ ਨੋਟ ਟਾਈਪ ਕਰੋ ..." "ਭੇਜੋ ਅਤੇ ਕਾਲ ਕਰੋ" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s ਟੈਬ।" %1$s ਟੈਬ। %2$d ਅਣ-ਪੜ੍ਹੀਆਂ ਆਈਟਮਾਂ। diff --git a/java/com/android/contacts/common/res/values-pl/strings.xml b/java/com/android/contacts/common/res/values-pl/strings.xml index c4e65f556e12d13f66980c1c4fbdbe16b2bb5db6..c10bb1fd9d8c4a3b76e4df883399f8a79baeb2d5 100644 --- a/java/com/android/contacts/common/res/values-pl/strings.xml +++ b/java/com/android/contacts/common/res/values-pl/strings.xml @@ -250,7 +250,7 @@ "Wpisz notatkę, którą chcesz wysłać razem z połączeniem..." "WYŚLIJ I ZADZWOŃ" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "Karta %1$s." Karta %1$s. %2$d nieprzeczytane elementy. diff --git a/java/com/android/contacts/common/res/values-pt-rBR/strings.xml b/java/com/android/contacts/common/res/values-pt-rBR/strings.xml index ee2b87c682f43c47562997a8644095f4f38cfc07..95bbb0b5d0869f6e2e81c8663360b50c17d46aab 100644 --- a/java/com/android/contacts/common/res/values-pt-rBR/strings.xml +++ b/java/com/android/contacts/common/res/values-pt-rBR/strings.xml @@ -248,7 +248,7 @@ "Escreva uma nota para enviar com a chamada..." "ENVIAR E LIGAR" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "Guia \"%1$s\"." Guia \"%1$s\". %2$d item não lido. diff --git a/java/com/android/contacts/common/res/values-pt-rPT/strings.xml b/java/com/android/contacts/common/res/values-pt-rPT/strings.xml index 44bba149d8a552f518ff1b7c11d212245b3f872c..c3b50e0bb6a5e7644826d66285fdb3542042e767 100644 --- a/java/com/android/contacts/common/res/values-pt-rPT/strings.xml +++ b/java/com/android/contacts/common/res/values-pt-rPT/strings.xml @@ -248,7 +248,7 @@ "Escrever uma nota para enviar com a chamada..." "ENVIAR E LIGAR" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Separador %1$s." %1$s tab. %2$d unread items. diff --git a/java/com/android/contacts/common/res/values-pt/strings.xml b/java/com/android/contacts/common/res/values-pt/strings.xml index ee2b87c682f43c47562997a8644095f4f38cfc07..95bbb0b5d0869f6e2e81c8663360b50c17d46aab 100644 --- a/java/com/android/contacts/common/res/values-pt/strings.xml +++ b/java/com/android/contacts/common/res/values-pt/strings.xml @@ -248,7 +248,7 @@ "Escreva uma nota para enviar com a chamada..." "ENVIAR E LIGAR" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "Guia \"%1$s\"." Guia \"%1$s\". %2$d item não lido. diff --git a/java/com/android/contacts/common/res/values-ro/strings.xml b/java/com/android/contacts/common/res/values-ro/strings.xml index 358e7af933dd3a1fe1e12e31068afc94c85dae8b..da0d5da9590be41883745e452bf955afc9ac7105 100644 --- a/java/com/android/contacts/common/res/values-ro/strings.xml +++ b/java/com/android/contacts/common/res/values-ro/strings.xml @@ -249,7 +249,7 @@ "Introduceți o notă ca să o trimiteți împreună cu apelul..." "TRIMITEȚI ȘI APELAȚI" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Fila %1$s" Fila %1$s. %2$d elemente necitite. diff --git a/java/com/android/contacts/common/res/values-ru/strings.xml b/java/com/android/contacts/common/res/values-ru/strings.xml index 3442f2c60cf082c1857a780cbc8ffcc4a4403cb1..f4e1d847b832b708f47d27762566fb5a85e059e3 100644 --- a/java/com/android/contacts/common/res/values-ru/strings.xml +++ b/java/com/android/contacts/common/res/values-ru/strings.xml @@ -250,7 +250,7 @@ "Введите текст…" "ОТПРАВИТЬ И ПОЗВОНИТЬ" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Вкладка \"%1$s\"." Вкладка %1$s. %2$d непрочитанный элемент. diff --git a/java/com/android/contacts/common/res/values-si/strings.xml b/java/com/android/contacts/common/res/values-si/strings.xml index 72ca32d9c1c7695d0fceb18222fdc8d16ab520e2..fc121f6af4e7a56f0f5d1fb370f59fbc1d2d776c 100644 --- a/java/com/android/contacts/common/res/values-si/strings.xml +++ b/java/com/android/contacts/common/res/values-si/strings.xml @@ -248,7 +248,7 @@ "ඇමතුම සමග යැවීමට සටහනක් ටයිප් කරන්න ..." "යවන්න සහ අමතන්න" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s ටැබය." %1$s ටැබය. නොකියවූ අයිතම %2$d. diff --git a/java/com/android/contacts/common/res/values-sk/strings.xml b/java/com/android/contacts/common/res/values-sk/strings.xml index b85f63f1b34228b5647b0fa47be5223b00b60543..90a4752fd7326b05f911e44110aba58cab93dee8 100644 --- a/java/com/android/contacts/common/res/values-sk/strings.xml +++ b/java/com/android/contacts/common/res/values-sk/strings.xml @@ -250,7 +250,7 @@ "Napíšte poznámku, ktorá sa odošle s hovorom..." "ODOSLAŤ A VOLAŤ" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "Karta %1$s." Karta %1$s. %2$d neprečítané položky. diff --git a/java/com/android/contacts/common/res/values-sl/strings.xml b/java/com/android/contacts/common/res/values-sl/strings.xml index f4c39dea97cf759794ad0375765c69f190f245b1..ef2e1a3f0be8a0236c0d5b8e17c3e5dbe11df1f9 100644 --- a/java/com/android/contacts/common/res/values-sl/strings.xml +++ b/java/com/android/contacts/common/res/values-sl/strings.xml @@ -250,7 +250,7 @@ "Vnesite zapisek, ki ga želite poslati s klicem ..." "POŠLJI IN KLIČI" "%1$s/%2$s" - "%1$s%2$s" + "%1$s: %2$s" "Zavihek »%1$s«." Zavihek »%1$s«. %2$d neprebran element. diff --git a/java/com/android/contacts/common/res/values-sq/strings.xml b/java/com/android/contacts/common/res/values-sq/strings.xml index 553c46df56c1d174df7e754bf5798b0645b9c771..3011492019c4e5e7c718d7cbd9d11074dcedff91 100644 --- a/java/com/android/contacts/common/res/values-sq/strings.xml +++ b/java/com/android/contacts/common/res/values-sq/strings.xml @@ -248,7 +248,7 @@ "Shkruaj një shënim për të dërguar një telefonatë..." "DËRGO DHE TELEFONO" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "Skeda %1$s." Skeda %1$s. %2$d artikuj të palexuar. diff --git a/java/com/android/contacts/common/res/values-sr/strings.xml b/java/com/android/contacts/common/res/values-sr/strings.xml index 99997e656d7e717570f7d2e2d9f2071ada22b7a6..25adf7bc567f98d37e16c11b1edf14fd96355416 100644 --- a/java/com/android/contacts/common/res/values-sr/strings.xml +++ b/java/com/android/contacts/common/res/values-sr/strings.xml @@ -249,7 +249,7 @@ "Унесите белешку коју ћете послати уз позив..." "ПОШАЉИ И ПОЗОВИ" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Картица %1$s." Картица %1$s. %2$d непрочитана ставка. diff --git a/java/com/android/contacts/common/res/values-sv/strings.xml b/java/com/android/contacts/common/res/values-sv/strings.xml index 79e56e5047fcd537050adf7b6021354b44a21f1e..ee748a42c9f351d19c0623eb6c218e0ed7f192cc 100644 --- a/java/com/android/contacts/common/res/values-sv/strings.xml +++ b/java/com/android/contacts/common/res/values-sv/strings.xml @@ -248,7 +248,7 @@ "Gör en anteckning som skickas när du ringer …" "SKICKA OCH RING" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "Fliken %1$s." Fliken %1$s. %2$d olästa poster. diff --git a/java/com/android/contacts/common/res/values-sw/strings.xml b/java/com/android/contacts/common/res/values-sw/strings.xml index 4d30271f309e8cde8da39d0b72426e2e8009b174..7bd08353face03f363fb886979b6191664a8a155 100644 --- a/java/com/android/contacts/common/res/values-sw/strings.xml +++ b/java/com/android/contacts/common/res/values-sw/strings.xml @@ -248,7 +248,7 @@ "Andika dokezo litakaloambatana na simu utakayopiga ..." "TUMA na UPIGE SIMU" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "Kichupo cha %1$s." Kichupo cha %1$s. Vipengee %2$d havijasomwa. diff --git a/java/com/android/contacts/common/res/values-ta/strings.xml b/java/com/android/contacts/common/res/values-ta/strings.xml index e041a999dc0e18f57ae8a451dc3a428541da214f..d5b3f9305bbaf76f1b8a1806fbca71883dc31d44 100644 --- a/java/com/android/contacts/common/res/values-ta/strings.xml +++ b/java/com/android/contacts/common/res/values-ta/strings.xml @@ -248,7 +248,7 @@ "அழைப்புடன் சேர்த்து அனுப்ப, குறிப்பை உள்ளிடவும்..." "அனுப்பி அழை" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s தாவல்." %1$s தாவல். படிக்காதவை (%2$d). diff --git a/java/com/android/contacts/common/res/values-te/strings.xml b/java/com/android/contacts/common/res/values-te/strings.xml index 6dd0e21433228385a25d398add84ec13e09621fd..4126ddc0f6ea5318851338ef969e3d3c2bcf50c2 100644 --- a/java/com/android/contacts/common/res/values-te/strings.xml +++ b/java/com/android/contacts/common/res/values-te/strings.xml @@ -248,7 +248,7 @@ "కాల్‌తో పాటు పంపడానికి గమనికను టైప్ చేయండి ..." "పంపు & కాల్ చేయి" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s ట్యాబ్." %1$s ట్యాబ్. %2$d చదవని అంశాలు. diff --git a/java/com/android/contacts/common/res/values-th/strings.xml b/java/com/android/contacts/common/res/values-th/strings.xml index b979e74249d71510cc746dc1e5e00043eaef1341..2d52f34fb39dc9cec845a61a74940d323d6478d3 100644 --- a/java/com/android/contacts/common/res/values-th/strings.xml +++ b/java/com/android/contacts/common/res/values-th/strings.xml @@ -248,7 +248,7 @@ "พิมพ์โน้ตเพื่อส่งพร้อมการโทร ..." "ส่งและโทร" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "แท็บ %1$s" แท็บ %1$s ยังไม่อ่าน %2$d รายการ diff --git a/java/com/android/contacts/common/res/values-tl/strings.xml b/java/com/android/contacts/common/res/values-tl/strings.xml index 62caef820397cae0f0e7dc51e9ddd81c394a627c..30978db4ec7c8ab20e2d3db722f80eb66549c2a7 100644 --- a/java/com/android/contacts/common/res/values-tl/strings.xml +++ b/java/com/android/contacts/common/res/values-tl/strings.xml @@ -248,7 +248,7 @@ "Mag-type ng isang tala na ipadadala kasama ng tawag ..." "IPADALA AT TAWAGAN" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "Tab ng %1$s." Tab ng %1$s. %2$d hindi pa nababasang item. diff --git a/java/com/android/contacts/common/res/values-tr/strings.xml b/java/com/android/contacts/common/res/values-tr/strings.xml index ce3c109d21cf358042c397e377b7c1f1ef04e80d..c18097aac90a8b1947dbf6c3f34ddd2f9920b604 100644 --- a/java/com/android/contacts/common/res/values-tr/strings.xml +++ b/java/com/android/contacts/common/res/values-tr/strings.xml @@ -248,7 +248,7 @@ "Çağrıyla göndermek için bir not yazın..." "GÖNDER VE ARA" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s sekmesi." %1$s sekmesi. %2$d okunmamış öğe. diff --git a/java/com/android/contacts/common/res/values-uk/strings.xml b/java/com/android/contacts/common/res/values-uk/strings.xml index f6d1e47310dec43a1fbe6cb19b29dddcd6a55cf6..94d09db1219bcbd952a808aa1179cda2095bd372 100644 --- a/java/com/android/contacts/common/res/values-uk/strings.xml +++ b/java/com/android/contacts/common/res/values-uk/strings.xml @@ -250,7 +250,7 @@ "Введіть нотатку, яку хочете надіслати під час дзвінка…" "ЗАТЕЛЕФОНУВАТИ Й НАДІСЛАТИ" "%1$s з %2$s" - "%1$s%2$s" + "%1$s %2$s" "Вкладка \"%1$s\"." Вкладка \"%1$s\". %2$d непрочитаний елемент. diff --git a/java/com/android/contacts/common/res/values-ur/strings.xml b/java/com/android/contacts/common/res/values-ur/strings.xml index b34c78d952f67510cdcf9a43df872097ba569607..75c761f2dd2f0f93de4d4c74e592b340743acca2 100644 --- a/java/com/android/contacts/common/res/values-ur/strings.xml +++ b/java/com/android/contacts/common/res/values-ur/strings.xml @@ -248,7 +248,7 @@ "کال کے ساتھ بھیجنے کیلئے ایک نوٹ ٹائپ کریں…" "بھیجیں اور کال کریں" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s ٹیب۔" %1$s ٹیب۔ %2$d بغیر پڑھی ہوئی آئٹمز۔ diff --git a/java/com/android/contacts/common/res/values-uz/strings.xml b/java/com/android/contacts/common/res/values-uz/strings.xml index 44bfd99997a7b74a63df559001ad44f8d1570375..69b07d135fc581b1a775f10f00d5892a803bbbc3 100644 --- a/java/com/android/contacts/common/res/values-uz/strings.xml +++ b/java/com/android/contacts/common/res/values-uz/strings.xml @@ -248,7 +248,7 @@ "Qo‘ng‘iroqqa qo‘shib yuborish uchun izoh yozing ..." "YUBORISH va QO‘NG‘IROQ QILISH" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s ichki oynasi." %1$s ichki oynasi. %2$d ta o‘qilmagan narsa. diff --git a/java/com/android/contacts/common/res/values-vi/strings.xml b/java/com/android/contacts/common/res/values-vi/strings.xml index dadb78a7df2f1986a77d239a6b86be51bb228642..c1675738a7d87d2777939c9f918fdd375d4d24af 100644 --- a/java/com/android/contacts/common/res/values-vi/strings.xml +++ b/java/com/android/contacts/common/res/values-vi/strings.xml @@ -248,7 +248,7 @@ "Nhập ghi chú để gửi kèm cuộc gọi..." "GỬI và GỌI" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "Tab %1$s." Tab %1$s. %2$d mục chưa đọc. diff --git a/java/com/android/contacts/common/res/values-zh-rCN/strings.xml b/java/com/android/contacts/common/res/values-zh-rCN/strings.xml index 161638e66e7d2f18d987ae081d1e620d321c95c5..367b78f1c44b3edfda9d1027cf412b74c91cb61c 100644 --- a/java/com/android/contacts/common/res/values-zh-rCN/strings.xml +++ b/java/com/android/contacts/common/res/values-zh-rCN/strings.xml @@ -248,7 +248,7 @@ "输入要在拨打电话时发送的备注…" "发送并拨打电话" "%1$s / %2$s" - "%1$s%2$s" + "%1$s%2$s" "%1$s标签。" %1$s标签。%2$d 项未读内容。 diff --git a/java/com/android/contacts/common/res/values-zh-rHK/strings.xml b/java/com/android/contacts/common/res/values-zh-rHK/strings.xml index 9952ab626ef415a5c5a58ee96b5b9ee94c166ea6..733d9809cd77a2997c597fc2bf80d4057b082c35 100644 --- a/java/com/android/contacts/common/res/values-zh-rHK/strings.xml +++ b/java/com/android/contacts/common/res/values-zh-rHK/strings.xml @@ -248,7 +248,7 @@ "撥號時可以書寫和傳送筆記…" "傳送和撥號" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "「%1$s」標籤。" %1$s」標籤 (%2$d 個未讀取項目)。 diff --git a/java/com/android/contacts/common/res/values-zh-rTW/strings.xml b/java/com/android/contacts/common/res/values-zh-rTW/strings.xml index e5ad61fac5141bc3c9cab910ddc13dcaeddaa00b..af7843ffd5126d66e95e3c34082024f3b117ac0c 100644 --- a/java/com/android/contacts/common/res/values-zh-rTW/strings.xml +++ b/java/com/android/contacts/common/res/values-zh-rTW/strings.xml @@ -248,7 +248,7 @@ "輸入可在撥號時傳送的備註..." "傳送並撥打" "%1$s/%2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s分頁。" %1$s分頁。%2$d 個未讀項目。 diff --git a/java/com/android/contacts/common/res/values-zu/strings.xml b/java/com/android/contacts/common/res/values-zu/strings.xml index adca1399c831d78804b84094c6570d879f26c1af..5906ee1751239d97a2a017f05dc3b928342cf001 100644 --- a/java/com/android/contacts/common/res/values-zu/strings.xml +++ b/java/com/android/contacts/common/res/values-zu/strings.xml @@ -248,7 +248,7 @@ "Thayipha inothi ukuthumela nekholi ..." "THUMELA FUTHI YENZA IKHOLI" "%1$s / %2$s" - "%1$s%2$s" + "%1$s %2$s" "%1$s ithebhu." %1$s ithebhu. %2$d izinto ezingafundiwe. diff --git a/java/com/android/contacts/common/res/values/ids.xml b/java/com/android/contacts/common/res/values/ids.xml index 871f5a63624a2ffcf752310f72269655800d4a0c..65969c43f9cd3215d59aef199ecc7c0623933159 100644 --- a/java/com/android/contacts/common/res/values/ids.xml +++ b/java/com/android/contacts/common/res/values/ids.xml @@ -27,4 +27,5 @@ + diff --git a/java/com/android/contacts/common/res/values/strings.xml b/java/com/android/contacts/common/res/values/strings.xml index 9ac9fef28adb47c4f6925968f27eea55231531d2..371d5b424f9cf0b6006d03d3ef68ca44f464d33e 100644 --- a/java/com/android/contacts/common/res/values/strings.xml +++ b/java/com/android/contacts/common/res/values/strings.xml @@ -744,9 +744,9 @@ compared to the character limit. Example: 2 / 64 --> %1$s / %2$s - - %1$s%2$s + + %1$s %2$s %1$s tab. diff --git a/java/com/android/contacts/common/res/values/styles.xml b/java/com/android/contacts/common/res/values/styles.xml index 07d4a022577e40f6b66b41d4610b5e741340f665..bb19afe82c8cd7d87116f54dcd0f6a648929862a 100644 --- a/java/com/android/contacts/common/res/values/styles.xml +++ b/java/com/android/contacts/common/res/values/styles.xml @@ -43,7 +43,6 @@ background and text color. See also android:style/Widget.Holo.TextView.ListSepar wrap_content @dimen/list_section_divider_min_height - @drawable/list_section_divider_holo_custom @style/DirectoryHeaderStyle center_vertical 8dip diff --git a/java/com/android/contacts/common/util/AccountFilterUtil.java b/java/com/android/contacts/common/util/AccountFilterUtil.java index 18743c65ea97f5ec3ace9fa7dc65295fbf53b99e..25f937c5e9ec82c2fea3c55c309b6101ebbe7006 100644 --- a/java/com/android/contacts/common/util/AccountFilterUtil.java +++ b/java/com/android/contacts/common/util/AccountFilterUtil.java @@ -16,35 +16,15 @@ package com.android.contacts.common.util; -import android.app.Activity; import android.content.Context; -import android.content.Intent; -import android.util.Log; import android.view.View; import android.widget.TextView; import com.android.contacts.common.R; import com.android.contacts.common.list.ContactListFilter; -import com.android.contacts.common.list.ContactListFilterController; /** Utility class for account filter manipulation. */ public class AccountFilterUtil { - public static final String EXTRA_CONTACT_LIST_FILTER = "contactListFilter"; - private static final String TAG = AccountFilterUtil.class.getSimpleName(); - - /** - * Find TextView with the id "account_filter_header" and set correct text for the account filter - * header. - * - * @param filterContainer View containing TextView with id "account_filter_header" - * @return true when header text is set in the call. You may use this for conditionally showing or - * hiding this entire view. - */ - public static boolean updateAccountFilterTitleForPeople( - View filterContainer, ContactListFilter filter, boolean showTitleForAllAccounts) { - return updateAccountFilterTitle(filterContainer, filter, showTitleForAllAccounts, false); - } - /** * Similar to {@link #updateAccountFilterTitleForPeople(View, ContactListFilter, boolean, * boolean)}, but for Phone UI. @@ -78,8 +58,6 @@ public class AccountFilterUtil { } else if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) { headerTextView.setText(R.string.listCustomView); textWasSet = true; - } else { - Log.w(TAG, "Filter type \"" + filter.filterType + "\" isn't expected."); } } else { if (filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) { @@ -97,29 +75,9 @@ public class AccountFilterUtil { } else if (filter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) { headerTextView.setText(R.string.listSingleContact); textWasSet = true; - } else { - Log.w(TAG, "Filter type \"" + filter.filterType + "\" isn't expected."); } } - } else { - Log.w(TAG, "Filter is null."); } return textWasSet; } - - /** This will update filter via a given ContactListFilterController. */ - public static void handleAccountFilterResult( - ContactListFilterController filterController, int resultCode, Intent data) { - if (resultCode == Activity.RESULT_OK) { - final ContactListFilter filter = data.getParcelableExtra(EXTRA_CONTACT_LIST_FILTER); - if (filter == null) { - return; - } - if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) { - filterController.selectCustomFilter(); - } else { - filterController.setContactListFilter(filter, true); - } - } - } } diff --git a/java/com/android/contacts/common/util/BitmapUtil.java b/java/com/android/contacts/common/util/BitmapUtil.java index 20f916a3fb1d6c2e3d7083afefe79469328fc441..51f65f2807eda89212d66b57f746f8dc1b85a083 100644 --- a/java/com/android/contacts/common/util/BitmapUtil.java +++ b/java/com/android/contacts/common/util/BitmapUtil.java @@ -24,8 +24,6 @@ import android.graphics.PorterDuff.Mode; import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.graphics.RectF; -import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.Drawable; /** Provides static functions to decode bitmaps at the optimal size */ public class BitmapUtil { @@ -90,30 +88,6 @@ public class BitmapUtil { return BitmapFactory.decodeByteArray(bytes, 0, bytes.length, options); } - /** - * Retrieves a copy of the specified drawable resource, rotated by a specified angle. - * - * @param resources The current resources. - * @param resourceId The resource ID of the drawable to rotate. - * @param angle The angle of rotation. - * @return Rotated drawable. - */ - public static Drawable getRotatedDrawable( - android.content.res.Resources resources, int resourceId, float angle) { - - // Get the original drawable and make a copy which will be rotated. - Bitmap original = BitmapFactory.decodeResource(resources, resourceId); - Bitmap rotated = - Bitmap.createBitmap(original.getWidth(), original.getHeight(), Bitmap.Config.ARGB_8888); - - // Perform the rotation. - Canvas tempCanvas = new Canvas(rotated); - tempCanvas.rotate(angle, original.getWidth() / 2, original.getHeight() / 2); - tempCanvas.drawBitmap(original, 0, 0, null); - - return new BitmapDrawable(resources, rotated); - } - /** * Given an input bitmap, scales it to the given width/height and makes it round. * diff --git a/java/com/android/contacts/common/util/ContactDisplayUtils.java b/java/com/android/contacts/common/util/ContactDisplayUtils.java index 1586784db9eb6659b66c3a734e7a392f8a41e6ed..ff22f2880a29e9119939d3ff8d9ac6e69b3a1b5f 100644 --- a/java/com/android/contacts/common/util/ContactDisplayUtils.java +++ b/java/com/android/contacts/common/util/ContactDisplayUtils.java @@ -16,21 +16,20 @@ package com.android.contacts.common.util; -import static android.provider.ContactsContract.CommonDataKinds.Phone; - import android.content.Context; import android.content.res.Resources; +import android.provider.ContactsContract.CommonDataKinds.Phone; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.Spannable; import android.text.SpannableString; import android.text.TextUtils; import android.text.style.TtsSpan; -import android.util.Log; import android.util.Patterns; import com.android.contacts.common.R; import com.android.contacts.common.compat.PhoneNumberUtilsCompat; import com.android.contacts.common.preference.ContactsPreferences; +import com.android.dialer.common.LogUtil; import java.util.Objects; /** Methods for handling various contact data labels. */ @@ -38,7 +37,6 @@ public class ContactDisplayUtils { public static final int INTERACTION_CALL = 1; public static final int INTERACTION_SMS = 2; - private static final String TAG = ContactDisplayUtils.class.getSimpleName(); /** * Checks if the given data type is a custom type. @@ -74,9 +72,9 @@ public class ContactDisplayUtils { } else { resId = getPhoneLabelResourceId(type); if (interactionType != INTERACTION_CALL) { - Log.e( - TAG, - "Un-recognized interaction type: " + LogUtil.e( + "ContactDisplayUtils.getLabelForCallOrSms", + "un-recognized interaction type: " + interactionType + ". Defaulting to ContactDisplayUtils.INTERACTION_CALL."); } diff --git a/java/com/android/contacts/common/util/DateUtils.java b/java/com/android/contacts/common/util/DateUtils.java index 1935d727a2d451bbe37bb6b123a235cb3f660cc0..09d52bce8cd24c71d65e00d771dfcaf20786f419 100644 --- a/java/com/android/contacts/common/util/DateUtils.java +++ b/java/com/android/contacts/common/util/DateUtils.java @@ -16,252 +16,11 @@ package com.android.contacts.common.util; -import android.content.Context; -import android.text.format.DateFormat; import android.text.format.Time; -import java.text.ParsePosition; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; -import java.util.GregorianCalendar; -import java.util.Locale; -import java.util.TimeZone; /** Utility methods for processing dates. */ public class DateUtils { - public static final TimeZone UTC_TIMEZONE = TimeZone.getTimeZone("UTC"); - - /** - * When parsing a date without a year, the system assumes 1970, which wasn't a leap-year. Let's - * add a one-off hack for that day of the year - */ - public static final String NO_YEAR_DATE_FEB29TH = "--02-29"; - - // Variations of ISO 8601 date format. Do not change the order - it does affect the - // result in ambiguous cases. - private static final SimpleDateFormat[] DATE_FORMATS = { - CommonDateUtils.FULL_DATE_FORMAT, - CommonDateUtils.DATE_AND_TIME_FORMAT, - new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'", Locale.US), - new SimpleDateFormat("yyyyMMdd", Locale.US), - new SimpleDateFormat("yyyyMMdd'T'HHmmssSSS'Z'", Locale.US), - new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'", Locale.US), - new SimpleDateFormat("yyyyMMdd'T'HHmm'Z'", Locale.US), - }; - - static { - for (SimpleDateFormat format : DATE_FORMATS) { - format.setLenient(true); - format.setTimeZone(UTC_TIMEZONE); - } - CommonDateUtils.NO_YEAR_DATE_FORMAT.setTimeZone(UTC_TIMEZONE); - } - - /** - * Parses the supplied string to see if it looks like a date. - * - * @param string The string representation of the provided date - * @param mustContainYear If true, the string is parsed as a date containing a year. If false, the - * string is parsed into a valid date even if the year field is missing. - * @return A Calendar object corresponding to the date if the string is successfully parsed. If - * not, null is returned. - */ - public static Calendar parseDate(String string, boolean mustContainYear) { - ParsePosition parsePosition = new ParsePosition(0); - Date date; - if (!mustContainYear) { - final boolean noYearParsed; - // Unfortunately, we can't parse Feb 29th correctly, so let's handle this day seperately - if (NO_YEAR_DATE_FEB29TH.equals(string)) { - return getUtcDate(0, Calendar.FEBRUARY, 29); - } else { - synchronized (CommonDateUtils.NO_YEAR_DATE_FORMAT) { - date = CommonDateUtils.NO_YEAR_DATE_FORMAT.parse(string, parsePosition); - } - noYearParsed = parsePosition.getIndex() == string.length(); - } - - if (noYearParsed) { - return getUtcDate(date, true); - } - } - for (int i = 0; i < DATE_FORMATS.length; i++) { - SimpleDateFormat f = DATE_FORMATS[i]; - synchronized (f) { - parsePosition.setIndex(0); - date = f.parse(string, parsePosition); - if (parsePosition.getIndex() == string.length()) { - return getUtcDate(date, false); - } - } - } - return null; - } - - private static final Calendar getUtcDate(Date date, boolean noYear) { - final Calendar calendar = Calendar.getInstance(UTC_TIMEZONE, Locale.US); - calendar.setTime(date); - if (noYear) { - calendar.set(Calendar.YEAR, 0); - } - return calendar; - } - - private static final Calendar getUtcDate(int year, int month, int dayOfMonth) { - final Calendar calendar = Calendar.getInstance(UTC_TIMEZONE, Locale.US); - calendar.clear(); - calendar.set(Calendar.YEAR, year); - calendar.set(Calendar.MONTH, month); - calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); - return calendar; - } - - public static boolean isYearSet(Calendar cal) { - // use the Calendar.YEAR field to track whether or not the year is set instead of - // Calendar.isSet() because doing Calendar.get() causes Calendar.isSet() to become - // true irregardless of what the previous value was - return cal.get(Calendar.YEAR) > 1; - } - - /** - * Same as {@link #formatDate(Context context, String string, boolean longForm)}, with longForm - * set to {@code true} by default. - * - * @param context Valid context - * @param string String representation of a date to parse - * @return Returns the same date in a cleaned up format. If the supplied string does not look like - * a date, return it unchanged. - */ - public static String formatDate(Context context, String string) { - return formatDate(context, string, true); - } - - /** - * Parses the supplied string to see if it looks like a date. - * - * @param context Valid context - * @param string String representation of a date to parse - * @param longForm If true, return the date formatted into its long string representation. If - * false, return the date formatted using its short form representation (i.e. 12/11/2012) - * @return Returns the same date in a cleaned up format. If the supplied string does not look like - * a date, return it unchanged. - */ - public static String formatDate(Context context, String string, boolean longForm) { - if (string == null) { - return null; - } - - string = string.trim(); - if (string.length() == 0) { - return string; - } - final Calendar cal = parseDate(string, false); - - // we weren't able to parse the string successfully so just return it unchanged - if (cal == null) { - return string; - } - - final boolean isYearSet = isYearSet(cal); - final java.text.DateFormat outFormat; - if (!isYearSet) { - outFormat = getLocalizedDateFormatWithoutYear(context); - } else { - outFormat = - longForm ? DateFormat.getLongDateFormat(context) : DateFormat.getDateFormat(context); - } - synchronized (outFormat) { - outFormat.setTimeZone(UTC_TIMEZONE); - return outFormat.format(cal.getTime()); - } - } - - public static boolean isMonthBeforeDay(Context context) { - char[] dateFormatOrder = DateFormat.getDateFormatOrder(context); - for (int i = 0; i < dateFormatOrder.length; i++) { - if (dateFormatOrder[i] == 'd') { - return false; - } - if (dateFormatOrder[i] == 'M') { - return true; - } - } - return false; - } - - /** - * Returns a SimpleDateFormat object without the year fields by using a regular expression to - * eliminate the year in the string pattern. In the rare occurence that the resulting pattern - * cannot be reconverted into a SimpleDateFormat, it uses the provided context to determine - * whether the month field should be displayed before the day field, and returns either "MMMM dd" - * or "dd MMMM" converted into a SimpleDateFormat. - */ - public static java.text.DateFormat getLocalizedDateFormatWithoutYear(Context context) { - final String pattern = - ((SimpleDateFormat) SimpleDateFormat.getDateInstance(java.text.DateFormat.LONG)) - .toPattern(); - // Determine the correct regex pattern for year. - // Special case handling for Spanish locale by checking for "de" - final String yearPattern = - pattern.contains("de") ? "[^Mm]*[Yy]+[^Mm]*" : "[^DdMm]*[Yy]+[^DdMm]*"; - try { - // Eliminate the substring in pattern that matches the format for that of year - return new SimpleDateFormat(pattern.replaceAll(yearPattern, "")); - } catch (IllegalArgumentException e) { - return new SimpleDateFormat(DateUtils.isMonthBeforeDay(context) ? "MMMM dd" : "dd MMMM"); - } - } - - /** - * Given a calendar (possibly containing only a day of the year), returns the earliest possible - * anniversary of the date that is equal to or after the current point in time if the date does - * not contain a year, or the date converted to the local time zone (if the date contains a year. - * - * @param target The date we wish to convert(in the UTC time zone). - * @return If date does not contain a year (year < 1900), returns the next earliest anniversary - * that is after the current point in time (in the local time zone). Otherwise, returns the - * adjusted Date in the local time zone. - */ - public static Date getNextAnnualDate(Calendar target) { - final Calendar today = Calendar.getInstance(); - today.setTime(new Date()); - - // Round the current time to the exact start of today so that when we compare - // today against the target date, both dates are set to exactly 0000H. - today.set(Calendar.HOUR_OF_DAY, 0); - today.set(Calendar.MINUTE, 0); - today.set(Calendar.SECOND, 0); - today.set(Calendar.MILLISECOND, 0); - - final boolean isYearSet = isYearSet(target); - final int targetYear = target.get(Calendar.YEAR); - final int targetMonth = target.get(Calendar.MONTH); - final int targetDay = target.get(Calendar.DAY_OF_MONTH); - final boolean isFeb29 = (targetMonth == Calendar.FEBRUARY && targetDay == 29); - final GregorianCalendar anniversary = new GregorianCalendar(); - // Convert from the UTC date to the local date. Set the year to today's year if the - // there is no provided year (targetYear < 1900) - anniversary.set(!isYearSet ? today.get(Calendar.YEAR) : targetYear, targetMonth, targetDay); - // If the anniversary's date is before the start of today and there is no year set, - // increment the year by 1 so that the returned date is always equal to or greater than - // today. If the day is a leap year, keep going until we get the next leap year anniversary - // Otherwise if there is already a year set, simply return the exact date. - if (!isYearSet) { - int anniversaryYear = today.get(Calendar.YEAR); - if (anniversary.before(today) || (isFeb29 && !anniversary.isLeapYear(anniversaryYear))) { - // If the target date is not Feb 29, then set the anniversary to the next year. - // Otherwise, keep going until we find the next leap year (this is not guaranteed - // to be in 4 years time). - do { - anniversaryYear += 1; - } while (isFeb29 && !anniversary.isLeapYear(anniversaryYear)); - anniversary.set(anniversaryYear, targetMonth, targetDay); - } - } - return anniversary.getTime(); - } - /** * Determine the difference, in days between two dates. Uses similar logic as the {@link * android.text.format.DateUtils.getRelativeTimeSpanString} method. diff --git a/java/com/android/contacts/common/util/MaterialColorMapUtils.java b/java/com/android/contacts/common/util/MaterialColorMapUtils.java index a2d9847eccaf74a158fd656d83acac13c07b0031..bd32faa513a6796f8db5fb897d5ddb40cd175c70 100644 --- a/java/com/android/contacts/common/util/MaterialColorMapUtils.java +++ b/java/com/android/contacts/common/util/MaterialColorMapUtils.java @@ -21,7 +21,6 @@ import android.content.res.TypedArray; import android.os.Parcel; import android.os.Parcelable; import android.os.Trace; -import com.android.contacts.common.R; public class MaterialColorMapUtils { @@ -35,13 +34,6 @@ public class MaterialColorMapUtils { resources.obtainTypedArray(com.android.contacts.common.R.array.letter_tile_colors_dark); } - public static MaterialPalette getDefaultPrimaryAndSecondaryColors(Resources resources) { - final int primaryColor = resources.getColor(R.color.quickcontact_default_photo_tint_color); - final int secondaryColor = - resources.getColor(R.color.quickcontact_default_photo_tint_color_dark); - return new MaterialPalette(primaryColor, secondaryColor); - } - /** * Returns the hue component of a color int. * diff --git a/java/com/android/contacts/common/util/NameConverter.java b/java/com/android/contacts/common/util/NameConverter.java deleted file mode 100644 index ae3275d14f2c4fe2dc3f9cb40b8097bc21e88dd9..0000000000000000000000000000000000000000 --- a/java/com/android/contacts/common/util/NameConverter.java +++ /dev/null @@ -1,242 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.contacts.common.util; - -import android.content.ContentValues; -import android.content.Context; -import android.database.Cursor; -import android.net.Uri; -import android.net.Uri.Builder; -import android.provider.ContactsContract; -import android.provider.ContactsContract.CommonDataKinds.StructuredName; -import android.text.TextUtils; -import com.android.contacts.common.model.dataitem.StructuredNameDataItem; -import java.util.Map; -import java.util.TreeMap; - -/** - * Utility class for converting between a display name and structured name (and vice-versa), via - * calls to the contact provider. - */ -public class NameConverter { - - /** The array of fields that comprise a structured name. */ - public static final String[] STRUCTURED_NAME_FIELDS = - new String[] { - StructuredName.PREFIX, - StructuredName.GIVEN_NAME, - StructuredName.MIDDLE_NAME, - StructuredName.FAMILY_NAME, - StructuredName.SUFFIX - }; - - /** - * Converts the given structured name (provided as a map from {@link StructuredName} fields to - * corresponding values) into a display name string. - * - *

Note that this operates via a call back to the ContactProvider, but it does not access the - * database, so it should be safe to call from the UI thread. See ContactsProvider2.completeName() - * for the underlying method call. - * - * @param context Activity context. - * @param structuredName The structured name map to convert. - * @return The display name computed from the structured name map. - */ - public static String structuredNameToDisplayName( - Context context, Map structuredName) { - Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath("complete_name"); - for (String key : STRUCTURED_NAME_FIELDS) { - if (structuredName.containsKey(key)) { - appendQueryParameter(builder, key, structuredName.get(key)); - } - } - return fetchDisplayName(context, builder.build()); - } - - /** - * Converts the given structured name (provided as ContentValues) into a display name string. - * - * @param context Activity context. - * @param values The content values containing values comprising the structured name. - */ - public static String structuredNameToDisplayName(Context context, ContentValues values) { - Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath("complete_name"); - for (String key : STRUCTURED_NAME_FIELDS) { - if (values.containsKey(key)) { - appendQueryParameter(builder, key, values.getAsString(key)); - } - } - return fetchDisplayName(context, builder.build()); - } - - /** Helper method for fetching the display name via the given URI. */ - private static String fetchDisplayName(Context context, Uri uri) { - String displayName = null; - Cursor cursor = - context - .getContentResolver() - .query( - uri, - new String[] { - StructuredName.DISPLAY_NAME, - }, - null, - null, - null); - - if (cursor != null) { - try { - if (cursor.moveToFirst()) { - displayName = cursor.getString(0); - } - } finally { - cursor.close(); - } - } - return displayName; - } - - /** - * Converts the given display name string into a structured name (as a map from {@link - * StructuredName} fields to corresponding values). - * - *

Note that this operates via a call back to the ContactProvider, but it does not access the - * database, so it should be safe to call from the UI thread. - * - * @param context Activity context. - * @param displayName The display name to convert. - * @return The structured name map computed from the display name. - */ - public static Map displayNameToStructuredName( - Context context, String displayName) { - Map structuredName = new TreeMap(); - Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath("complete_name"); - - appendQueryParameter(builder, StructuredName.DISPLAY_NAME, displayName); - Cursor cursor = - context - .getContentResolver() - .query(builder.build(), STRUCTURED_NAME_FIELDS, null, null, null); - - if (cursor != null) { - try { - if (cursor.moveToFirst()) { - for (int i = 0; i < STRUCTURED_NAME_FIELDS.length; i++) { - structuredName.put(STRUCTURED_NAME_FIELDS[i], cursor.getString(i)); - } - } - } finally { - cursor.close(); - } - } - return structuredName; - } - - /** - * Converts the given display name string into a structured name (inserting the structured values - * into a new or existing ContentValues object). - * - *

Note that this operates via a call back to the ContactProvider, but it does not access the - * database, so it should be safe to call from the UI thread. - * - * @param context Activity context. - * @param displayName The display name to convert. - * @param contentValues The content values object to place the structured name values into. If - * null, a new one will be created and returned. - * @return The ContentValues object containing the structured name fields derived from the display - * name. - */ - public static ContentValues displayNameToStructuredName( - Context context, String displayName, ContentValues contentValues) { - if (contentValues == null) { - contentValues = new ContentValues(); - } - Map mapValues = displayNameToStructuredName(context, displayName); - for (String key : mapValues.keySet()) { - contentValues.put(key, mapValues.get(key)); - } - return contentValues; - } - - private static void appendQueryParameter(Builder builder, String field, String value) { - if (!TextUtils.isEmpty(value)) { - builder.appendQueryParameter(field, value); - } - } - - /** - * Parses phonetic name and returns parsed data (family, middle, given) as ContentValues. Parsed - * data should be {@link StructuredName#PHONETIC_FAMILY_NAME}, {@link - * StructuredName#PHONETIC_MIDDLE_NAME}, and {@link StructuredName#PHONETIC_GIVEN_NAME}. If this - * method cannot parse given phoneticName, null values will be stored. - * - * @param phoneticName Phonetic name to be parsed - * @param values ContentValues to be used for storing data. If null, new instance will be created. - * @return ContentValues with parsed data. Those data can be null. - */ - public static StructuredNameDataItem parsePhoneticName( - String phoneticName, StructuredNameDataItem item) { - String family = null; - String middle = null; - String given = null; - - if (!TextUtils.isEmpty(phoneticName)) { - String[] strings = phoneticName.split(" ", 3); - switch (strings.length) { - case 1: - family = strings[0]; - break; - case 2: - family = strings[0]; - given = strings[1]; - break; - case 3: - family = strings[0]; - middle = strings[1]; - given = strings[2]; - break; - } - } - - if (item == null) { - item = new StructuredNameDataItem(); - } - item.setPhoneticFamilyName(family); - item.setPhoneticMiddleName(middle); - item.setPhoneticGivenName(given); - return item; - } - - /** Constructs and returns a phonetic full name from given parts. */ - public static String buildPhoneticName(String family, String middle, String given) { - if (!TextUtils.isEmpty(family) || !TextUtils.isEmpty(middle) || !TextUtils.isEmpty(given)) { - StringBuilder sb = new StringBuilder(); - if (!TextUtils.isEmpty(family)) { - sb.append(family.trim()).append(' '); - } - if (!TextUtils.isEmpty(middle)) { - sb.append(middle.trim()).append(' '); - } - if (!TextUtils.isEmpty(given)) { - sb.append(given.trim()).append(' '); - } - sb.setLength(sb.length() - 1); // Yank the last space - return sb.toString(); - } else { - return null; - } - } -} diff --git a/java/com/android/contacts/common/util/StopWatch.java b/java/com/android/contacts/common/util/StopWatch.java index b944b98671668ba85979d2f85700ba3311f8dedf..7986d1081a29b595fcd1cd0d5b2a7664b562b108 100644 --- a/java/com/android/contacts/common/util/StopWatch.java +++ b/java/com/android/contacts/common/util/StopWatch.java @@ -16,7 +16,7 @@ package com.android.contacts.common.util; -import android.util.Log; +import com.android.dialer.common.LogUtil; import java.util.ArrayList; /** A {@link StopWatch} records start, laps and stop, and print them to logcat. */ @@ -37,11 +37,6 @@ public class StopWatch { return new StopWatch(label); } - /** Return a dummy instance that does no operations. */ - public static StopWatch getNullStopWatch() { - return NullStopWatch.INSTANCE; - } - /** Record a lap. */ public void lap(String lapLabel) { mTimes.add(System.currentTimeMillis()); @@ -76,25 +71,6 @@ public class StopWatch { sb.append(" "); last = current; } - Log.v(TAG, sb.toString()); - } - - private static class NullStopWatch extends StopWatch { - - public static final NullStopWatch INSTANCE = new NullStopWatch(); - - public NullStopWatch() { - super(null); - } - - @Override - public void lap(String lapLabel) { - // noop - } - - @Override - public void stopAndLog(String TAG, int timeThresholdToLog) { - // noop - } + LogUtil.v(TAG, sb.toString()); } } diff --git a/java/com/android/contacts/common/util/TelephonyManagerUtils.java b/java/com/android/contacts/common/util/TelephonyManagerUtils.java index b664268ca67977b9c6f7eca40ca14091b957e5e9..e4c2c63732e6df44957ec2dac09b0608d254883d 100644 --- a/java/com/android/contacts/common/util/TelephonyManagerUtils.java +++ b/java/com/android/contacts/common/util/TelephonyManagerUtils.java @@ -33,13 +33,4 @@ public class TelephonyManagerUtils { final String voiceMailLabel = telephonyManager.getVoiceMailAlphaTag(); return voiceMailLabel; } - - /** - * @param context Current application context. - * @return True if there is a subscription which supports video calls. False otherwise. - */ - public static boolean hasVideoCallSubscription(Context context) { - // TODO: Check the telephony manager's subscriptions to see if any support video calls. - return true; - } } diff --git a/java/com/android/dialer/about/AndroidManifest.xml b/java/com/android/dialer/about/AndroidManifest.xml index e9489ce1ea6fff7526ec0a61dfb2f138c986ab1d..85c750826526b4f1224300c57ed2f40c2994466e 100644 --- a/java/com/android/dialer/about/AndroidManifest.xml +++ b/java/com/android/dialer/about/AndroidManifest.xml @@ -1,6 +1,6 @@ - + - diff --git a/java/com/android/dialer/app/AndroidManifest.xml b/java/com/android/dialer/app/AndroidManifest.xml index de4b48c515e8dcdc268bf97bcc1980ccd6f8c997..4200082a6432814955f29ccf9e0bea987487e545 100644 --- a/java/com/android/dialer/app/AndroidManifest.xml +++ b/java/com/android/dialer/app/AndroidManifest.xml @@ -39,6 +39,7 @@ + diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java index 6e2c6be7dfc9879924a660017a005fe6b366c91a..b5e615075de2166ba31069160b0eb71e1e61cab1 100644 --- a/java/com/android/dialer/app/DialtactsActivity.java +++ b/java/com/android/dialer/app/DialtactsActivity.java @@ -91,6 +91,7 @@ import com.android.dialer.callcomposer.CallComposerActivity; import com.android.dialer.callintent.CallIntentBuilder; import com.android.dialer.callintent.CallSpecificAppData; import com.android.dialer.common.Assert; +import com.android.dialer.common.ConfigProviderBindings; import com.android.dialer.common.LogUtil; import com.android.dialer.database.Database; import com.android.dialer.database.DialerDatabaseHelper; @@ -106,6 +107,7 @@ import com.android.dialer.p13n.logging.P13nLogger; import com.android.dialer.p13n.logging.P13nLogging; import com.android.dialer.postcall.PostCall; import com.android.dialer.proguard.UsedByReflection; +import com.android.dialer.searchfragment.NewSearchFragment; import com.android.dialer.simulator.Simulator; import com.android.dialer.simulator.SimulatorComponent; import com.android.dialer.smartdial.SmartDialNameMatcher; @@ -154,6 +156,7 @@ public class DialtactsActivity extends TransactionSafeActivity private static final String KEY_FIRST_LAUNCH = "first_launch"; private static final String KEY_WAS_CONFIGURATION_CHANGE = "was_configuration_change"; private static final String KEY_IS_DIALPAD_SHOWN = "is_dialpad_shown"; + private static final String TAG_NEW_SEARCH_FRAGMENT = "new_search"; private static final String TAG_REGULAR_SEARCH_FRAGMENT = "search"; private static final String TAG_SMARTDIAL_SEARCH_FRAGMENT = "smartdial"; private static final String TAG_FAVORITES_FRAGMENT = "favorites"; @@ -162,6 +165,7 @@ public class DialtactsActivity extends TransactionSafeActivity private static final int ACTIVITY_REQUEST_CODE_VOICE_SEARCH = 1; public static final int ACTIVITY_REQUEST_CODE_CALL_COMPOSE = 2; + public static final int ACTIVITY_REQUEST_CODE_LIGHTBRINGER = 3; private static final int FAB_SCALE_IN_DELAY_MS = 300; @@ -180,6 +184,9 @@ public class DialtactsActivity extends TransactionSafeActivity /** Fragment for searching phone numbers using the dialpad. */ private SmartDialSearchFragment mSmartDialSearchFragment; + /** new Fragment for search phone numbers using the keyboard and the dialpad. */ + private NewSearchFragment mNewSearchFragment; + /** Animation that slides in. */ private Animation mSlideIn; @@ -262,6 +269,7 @@ public class DialtactsActivity extends TransactionSafeActivity } mSearchQuery = newText; + // TODO: show p13n when newText is empty. // Show search fragment only when the query string is changed to non-empty text. if (!TextUtils.isEmpty(newText)) { // Call enterSearchUi only if we are switching search modes, or showing a search @@ -277,6 +285,8 @@ public class DialtactsActivity extends TransactionSafeActivity mSmartDialSearchFragment.setQueryString(mSearchQuery); } else if (mRegularSearchFragment != null && mRegularSearchFragment.isVisible()) { mRegularSearchFragment.setQueryString(mSearchQuery); + } else if (mNewSearchFragment != null) { + mNewSearchFragment.setQuery(mSearchQuery); } } @@ -630,6 +640,8 @@ public class DialtactsActivity extends TransactionSafeActivity } else if (fragment instanceof ListsFragment) { mListsFragment = (ListsFragment) fragment; mListsFragment.addOnPageChangeListener(this); + } else if (fragment instanceof NewSearchFragment) { + mNewSearchFragment = (NewSearchFragment) fragment; } if (fragment instanceof SearchFragment) { final SearchFragment searchFragment = (SearchFragment) fragment; @@ -785,6 +797,7 @@ public class DialtactsActivity extends TransactionSafeActivity if (animate) { mFloatingActionButtonController.scaleOut(); + maybeEnterSearchUi(); } else { mFloatingActionButtonController.setVisible(false); maybeEnterSearchUi(); @@ -1057,7 +1070,11 @@ public class DialtactsActivity extends TransactionSafeActivity } final String tag; - if (smartDialSearch) { + boolean useNewSearch = + ConfigProviderBindings.get(this).getBoolean("enable_new_search_fragment", false); + if (useNewSearch) { + tag = TAG_NEW_SEARCH_FRAGMENT; + } else if (smartDialSearch) { tag = TAG_SMARTDIAL_SEARCH_FRAGMENT; } else { tag = TAG_REGULAR_SEARCH_FRAGMENT; @@ -1067,40 +1084,52 @@ public class DialtactsActivity extends TransactionSafeActivity mFloatingActionButtonController.scaleOut(); - SearchFragment fragment = (SearchFragment) getFragmentManager().findFragmentByTag(tag); if (animate) { transaction.setCustomAnimations(android.R.animator.fade_in, 0); } else { transaction.setTransition(FragmentTransaction.TRANSIT_NONE); } + + Fragment fragment = getFragmentManager().findFragmentByTag(tag); if (fragment == null) { - if (smartDialSearch) { + if (useNewSearch) { + fragment = new NewSearchFragment(); + } else if (smartDialSearch) { fragment = new SmartDialSearchFragment(); } else { fragment = Bindings.getLegacy(this).newRegularSearchFragment(); - fragment.setOnTouchListener( - new View.OnTouchListener() { - @Override - public boolean onTouch(View v, MotionEvent event) { - // Show the FAB when the user touches the lists fragment and the soft - // keyboard is hidden. - hideDialpadFragment(true, false); - showFabInSearchUi(); - v.performClick(); - return false; - } - }); + ((SearchFragment) fragment) + .setOnTouchListener( + (v, event) -> { + // Show the FAB when the user touches the lists fragment and the soft + // keyboard is hidden. + hideDialpadFragment(true, false); + v.performClick(); + return false; + }); } transaction.add(R.id.dialtacts_frame, fragment, tag); } else { + // TODO: if this is a transition from dialpad to searchbar, animate fragment + // down, and vice versa. Perhaps just add a coordinator behavior with the search bar. transaction.show(fragment); } + // DialtactsActivity will provide the options menu fragment.setHasOptionsMenu(false); + // Will show empty list if P13nRanker is not enabled. Else, re-ranked list by the ranker. - fragment.setShowEmptyListForNullQuery(mP13nRanker.shouldShowEmptyListForNullQuery()); - if (!smartDialSearch) { - fragment.setQueryString(query); + if (!useNewSearch) { + ((SearchFragment) fragment) + .setShowEmptyListForNullQuery(mP13nRanker.shouldShowEmptyListForNullQuery()); + } else { + // TODO: add p13n ranker to new search. + } + + if (!smartDialSearch && !useNewSearch) { + ((SearchFragment) fragment).setQueryString(query); + } else if (useNewSearch) { + ((NewSearchFragment) fragment).setQuery(query); } transaction.commit(); @@ -1146,6 +1175,9 @@ public class DialtactsActivity extends TransactionSafeActivity if (mRegularSearchFragment != null) { transaction.remove(mRegularSearchFragment); } + if (mNewSearchFragment != null) { + transaction.remove(mNewSearchFragment); + } transaction.commit(); Assert.isNotNull(mListsFragment.getView()).animate().alpha(1).withLayer(); @@ -1477,6 +1509,7 @@ public class DialtactsActivity extends TransactionSafeActivity Arrays.toString(grantResults))); } + /** Popup menu accessible from the search bar */ protected class OptionsPopupMenu extends PopupMenu { public OptionsPopupMenu(Context context, View anchor) { diff --git a/java/com/android/dialer/app/SpecialCharSequenceMgr.java b/java/com/android/dialer/app/SpecialCharSequenceMgr.java index 85c2ea65068613362daec6872073c295dd080b4f..20222d68c4fb9a300f9e30f0343babf4045fc92d 100644 --- a/java/com/android/dialer/app/SpecialCharSequenceMgr.java +++ b/java/com/android/dialer/app/SpecialCharSequenceMgr.java @@ -47,7 +47,6 @@ import com.android.contacts.common.widget.SelectPhoneAccountDialogFragment.Selec import com.android.dialer.calllogutils.PhoneAccountUtils; import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; -import com.android.dialer.compat.CompatUtils; import com.android.dialer.oem.MotorolaUtils; import com.android.dialer.telecom.TelecomUtil; import java.util.ArrayList; @@ -299,9 +298,7 @@ public class SpecialCharSequenceMgr { : R.string.meid; List deviceIds = new ArrayList(); - if (TelephonyManagerCompat.getPhoneCount(telephonyManager) > 1 - && CompatUtils.isMethodAvailable( - TelephonyManagerCompat.TELEPHONY_MANAGER_CLASS, "getDeviceId", Integer.TYPE)) { + if (TelephonyManagerCompat.getPhoneCount(telephonyManager) > 1) { for (int slot = 0; slot < telephonyManager.getPhoneCount(); slot++) { String deviceId = telephonyManager.getDeviceId(slot); if (!TextUtils.isEmpty(deviceId)) { diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java index 2f8a58c8aa9ee2114861082f4c700f69aaea2520..3357ee2f1b2107da74cdc7ec50500d34658c3092 100644 --- a/java/com/android/dialer/app/calllog/CallLogAdapter.java +++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java @@ -86,6 +86,7 @@ import com.android.dialer.phonenumbercache.ContactInfoHelper; import com.android.dialer.phonenumberutil.PhoneNumberHelper; import com.android.dialer.spam.Spam; import com.android.dialer.util.PermissionsUtil; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -105,11 +106,12 @@ public class CallLogAdapter extends GroupingListAdapter private static final String KEY_EXPANDED_POSITION = "expanded_position"; private static final String KEY_EXPANDED_ROW_ID = "expanded_row_id"; + private static final String KEY_ACTION_MODE = "action_mode_selected_items"; public static final String LOAD_DATA_TASK_IDENTIFIER = "load_data"; public static final String ENABLE_CALL_LOG_MULTI_SELECT = "enable_call_log_multiselect"; - public static final boolean ENABLE_CALL_LOG_MULTI_SELECT_FLAG = false; + public static final boolean ENABLE_CALL_LOG_MULTI_SELECT_FLAG = true; protected final Activity mActivity; protected final VoicemailPlaybackPresenter mVoicemailPlaybackPresenter; @@ -117,6 +119,7 @@ public class CallLogAdapter extends GroupingListAdapter protected final CallLogCache mCallLogCache; private final CallFetcher mCallFetcher; + private final MultiSelectRemoveView mMultiSelectRemoveView; @NonNull private final FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler; private final int mActivityType; @@ -136,6 +139,8 @@ public class CallLogAdapter extends GroupingListAdapter private final CallLogAlertManager mCallLogAlertManager; public ActionMode mActionMode = null; + public boolean selectAllMode = false; + public boolean deselectAllMode = false; private final SparseArray selectedItems = new SparseArray<>(); private final ActionMode.Callback mActionModeCallback = @@ -144,10 +149,16 @@ public class CallLogAdapter extends GroupingListAdapter // Called when the action mode is created; startActionMode() was called @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { + if (mActivity != null) { + announceforAccessibility( + mActivity.getCurrentFocus(), + mActivity.getString(R.string.description_entering_bulk_action_mode)); + } mActionMode = mode; // Inflate a menu resource providing context menu items MenuInflater inflater = mode.getMenuInflater(); inflater.inflate(R.menu.actionbar_delete, menu); + mMultiSelectRemoveView.showMultiSelectRemoveView(true); return true; } @@ -165,7 +176,6 @@ public class CallLogAdapter extends GroupingListAdapter if (selectedItems.size() > 0) { showDeleteSelectedItemsDialog(); } - mode.finish(); return true; } else { return false; @@ -175,8 +185,16 @@ public class CallLogAdapter extends GroupingListAdapter // Called when the user exits the action mode @Override public void onDestroyActionMode(ActionMode mode) { + if (mActivity != null) { + announceforAccessibility( + mActivity.getCurrentFocus(), + mActivity.getString(R.string.description_leaving_bulk_action_mode)); + } selectedItems.clear(); mActionMode = null; + selectAllMode = false; + deselectAllMode = false; + mMultiSelectRemoveView.showMultiSelectRemoveView(false); notifyDataSetChanged(); } }; @@ -202,6 +220,7 @@ public class CallLogAdapter extends GroupingListAdapter @Override public void onClick(DialogInterface dialog, int id) { deleteSelectedItems(voicemailsToDeleteOnConfirmation); + mActionMode.finish(); dialog.cancel(); } }); @@ -258,22 +277,15 @@ public class CallLogAdapter extends GroupingListAdapter return; } if (mActionMode != null && viewHolder.voicemailUri != null) { + selectAllMode = false; + deselectAllMode = false; + mMultiSelectRemoveView.setSelectAllModeToFalse(); int id = getVoicemailId(viewHolder.voicemailUri); if (selectedItems.get(id) != null) { - selectedItems.delete(id); - viewHolder.checkBoxView.setVisibility(View.GONE); - viewHolder.quickContactView.setVisibility(View.VISIBLE); + uncheckMarkCallLogEntry(viewHolder, id); } else { - viewHolder.quickContactView.setVisibility(View.GONE); - viewHolder.checkBoxView.setVisibility(View.VISIBLE); - selectedItems.put(getVoicemailId(viewHolder.voicemailUri), viewHolder.voicemailUri); - } - - if (selectedItems.size() == 0) { - mActionMode.finish(); - return; + checkMarkCallLogEntry(viewHolder); } - mActionMode.setTitle(Integer.toString(selectedItems.size())); return; } @@ -312,6 +324,48 @@ public class CallLogAdapter extends GroupingListAdapter } }; + private void checkMarkCallLogEntry(CallLogListItemViewHolder viewHolder) { + announceforAccessibility( + mActivity.getCurrentFocus(), + mActivity.getString( + R.string.description_selecting_bulk_action_mode, viewHolder.nameOrNumber)); + viewHolder.quickContactView.setVisibility(View.GONE); + viewHolder.checkBoxView.setVisibility(View.VISIBLE); + selectedItems.put(getVoicemailId(viewHolder.voicemailUri), viewHolder.voicemailUri); + updateActionBar(); + } + + private void announceforAccessibility(View view, String announcement) { + if (view != null) { + view.announceForAccessibility(announcement); + } + } + + private void updateActionBar() { + if (mActionMode == null && selectedItems.size() > 0) { + mActivity.startActionMode(mActionModeCallback); + } + if (mActionMode != null) { + mActionMode.setTitle( + mActivity + .getResources() + .getString( + R.string.voicemailMultiSelectActionBarTitle, + Integer.toString(selectedItems.size()))); + } + } + + private void uncheckMarkCallLogEntry(CallLogListItemViewHolder viewHolder, int id) { + announceforAccessibility( + mActivity.getCurrentFocus(), + mActivity.getString( + R.string.description_unselecting_bulk_action_mode, viewHolder.nameOrNumber)); + selectedItems.delete(id); + viewHolder.checkBoxView.setVisibility(View.GONE); + viewHolder.quickContactView.setVisibility(View.VISIBLE); + updateActionBar(); + } + private static int getVoicemailId(String voicemailUri) { Assert.checkArgument(voicemailUri != null); Assert.checkArgument(voicemailUri.length() > 0); @@ -358,6 +412,7 @@ public class CallLogAdapter extends GroupingListAdapter Activity activity, ViewGroup alertContainer, CallFetcher callFetcher, + MultiSelectRemoveView multiSelectRemoveView, CallLogCache callLogCache, ContactInfoCache contactInfoCache, VoicemailPlaybackPresenter voicemailPlaybackPresenter, @@ -367,6 +422,7 @@ public class CallLogAdapter extends GroupingListAdapter mActivity = activity; mCallFetcher = callFetcher; + mMultiSelectRemoveView = multiSelectRemoveView; mVoicemailPlaybackPresenter = voicemailPlaybackPresenter; if (mVoicemailPlaybackPresenter != null) { mVoicemailPlaybackPresenter.setOnVoicemailDeletedListener(this); @@ -426,6 +482,14 @@ public class CallLogAdapter extends GroupingListAdapter public void onSaveInstanceState(Bundle outState) { outState.putInt(KEY_EXPANDED_POSITION, mCurrentlyExpandedPosition); outState.putLong(KEY_EXPANDED_ROW_ID, mCurrentlyExpandedRowId); + + ArrayList listOfSelectedItems = new ArrayList<>(); + if (selectedItems.size() > 0) { + for (int i = 0; i < selectedItems.size(); i++) { + listOfSelectedItems.add(Integer.toString(selectedItems.keyAt(i))); + } + } + outState.putStringArrayList(KEY_ACTION_MODE, listOfSelectedItems); } public void onRestoreInstanceState(Bundle savedInstanceState) { @@ -434,6 +498,18 @@ public class CallLogAdapter extends GroupingListAdapter savedInstanceState.getInt(KEY_EXPANDED_POSITION, RecyclerView.NO_POSITION); mCurrentlyExpandedRowId = savedInstanceState.getLong(KEY_EXPANDED_ROW_ID, NO_EXPANDED_LIST_ITEM); + + // Restoring multi selected entries + ArrayList listOfSelectedItems = + savedInstanceState.getStringArrayList(KEY_ACTION_MODE); + if (!listOfSelectedItems.isEmpty()) { + for (int i = 0; i < listOfSelectedItems.size(); i++) { + String voicemailId = listOfSelectedItems.get(i); + int id = Integer.parseInt(voicemailId); + selectedItems.put(id, voicemailId); + } + updateActionBar(); + } } } @@ -559,6 +635,8 @@ public class CallLogAdapter extends GroupingListAdapter public void onViewRecycled(ViewHolder viewHolder) { if (viewHolder.getItemViewType() == VIEW_TYPE_CALLLOG) { CallLogListItemViewHolder views = (CallLogListItemViewHolder) viewHolder; + updateCheckMarkedStatusOfEntry(views); + if (views.asyncTask != null) { views.asyncTask.cancel(true); } @@ -591,6 +669,8 @@ public class CallLogAdapter extends GroupingListAdapter return; } CallLogListItemViewHolder views = (CallLogListItemViewHolder) viewHolder; + updateCheckMarkedStatusOfEntry(views); + views.isLoaded = false; int groupSize = getGroupSize(position); CallDetailsEntries callDetailsEntries = createCallDetailsEntries(c, groupSize); @@ -609,6 +689,17 @@ public class CallLogAdapter extends GroupingListAdapter loadAndRender(views, views.rowId, details, callDetailsEntries); } + private void updateCheckMarkedStatusOfEntry(CallLogListItemViewHolder views) { + if (selectedItems.size() > 0 && views.voicemailUri != null) { + int id = getVoicemailId(views.voicemailUri); + if (selectedItems.get(id) != null) { + checkMarkCallLogEntry(views); + } else { + uncheckMarkCallLogEntry(views, id); + } + } + } + private void loadAndRender( final CallLogListItemViewHolder views, final long rowId, @@ -917,6 +1008,12 @@ public class CallLogAdapter extends GroupingListAdapter views.workIconView.setVisibility( details.contactUserType == ContactsUtils.USER_TYPE_WORK ? View.VISIBLE : View.GONE); + if (selectAllMode && views.voicemailUri != null) { + selectedItems.put(getVoicemailId(views.voicemailUri), views.voicemailUri); + } + if (deselectAllMode && views.voicemailUri != null) { + selectedItems.delete(getVoicemailId(views.voicemailUri)); + } if (views.voicemailUri != null && selectedItems.get(getVoicemailId(views.voicemailUri)) != null) { views.checkBoxView.setVisibility(View.VISIBLE); @@ -925,7 +1022,6 @@ public class CallLogAdapter extends GroupingListAdapter views.checkBoxView.setVisibility(View.GONE); views.quickContactView.setVisibility(View.VISIBLE); } - mCallLogListItemHelper.setPhoneCallDetails(views, details); if (mCurrentlyExpandedRowId == views.rowId) { // In case ViewHolders were added/removed, update the expanded position if the rowIds @@ -1192,9 +1288,41 @@ public class CallLogAdapter extends GroupingListAdapter notifyDataSetChanged(); } + public void onAllSelected() { + selectAllMode = true; + deselectAllMode = false; + selectedItems.clear(); + for (int i = 0; i < getItemCount(); i++) { + Cursor c = (Cursor) getItem(i); + if (c != null) { + Assert.checkArgument(CallLogQuery.VOICEMAIL_URI == c.getColumnIndex("voicemail_uri")); + String voicemailUri = c.getString(CallLogQuery.VOICEMAIL_URI); + selectedItems.put(getVoicemailId(voicemailUri), voicemailUri); + } + } + updateActionBar(); + notifyDataSetChanged(); + } + + public void onAllDeselected() { + selectAllMode = false; + deselectAllMode = true; + selectedItems.clear(); + updateActionBar(); + notifyDataSetChanged(); + } + /** Interface used to initiate a refresh of the content. */ public interface CallFetcher { void fetchCalls(); } + + /** Interface used to hide the fragments. */ + public interface MultiSelectRemoveView { + + void showMultiSelectRemoveView(boolean show); + + void setSelectAllModeToFalse(); + } } diff --git a/java/com/android/dialer/app/calllog/CallLogFragment.java b/java/com/android/dialer/app/calllog/CallLogFragment.java index 6e4b23fc1ec6e1214149cbf665d1c76d1c564076..1571c1aefdaed2f4dad967dd9f6ff00ecf1a641f 100644 --- a/java/com/android/dialer/app/calllog/CallLogFragment.java +++ b/java/com/android/dialer/app/calllog/CallLogFragment.java @@ -49,15 +49,16 @@ import com.android.dialer.app.contactinfo.ContactInfoCache.OnContactInfoChangedL import com.android.dialer.app.contactinfo.ExpirableCacheHeadlessFragment; import com.android.dialer.app.list.ListsFragment; import com.android.dialer.app.voicemail.VoicemailPlaybackPresenter; -import com.android.dialer.app.widget.EmptyContentView; -import com.android.dialer.app.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener; import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler; import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; import com.android.dialer.database.CallLogQueryHandler; import com.android.dialer.location.GeoUtil; +import com.android.dialer.oem.CequintCallerIdManager; import com.android.dialer.phonenumbercache.ContactInfoHelper; import com.android.dialer.util.PermissionsUtil; +import com.android.dialer.widget.EmptyContentView; +import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener; /** * Displays a list of call log entries. To filter for a particular kind of call (all, missed or @@ -66,6 +67,7 @@ import com.android.dialer.util.PermissionsUtil; public class CallLogFragment extends Fragment implements CallLogQueryHandler.Listener, CallLogAdapter.CallFetcher, + CallLogAdapter.MultiSelectRemoveView, OnEmptyViewActionButtonClickedListener, FragmentCompat.OnRequestPermissionsResultCallback, CallLogModalAlertManager.Listener { @@ -317,6 +319,7 @@ public class CallLogFragment extends Fragment getActivity(), mRecyclerView, this, + this, CallLogCache.getCallLogCache(getActivity()), mContactInfoCache, getVoicemailPlaybackPresenter(), @@ -379,6 +382,16 @@ public class CallLogFragment extends Fragment super.onPause(); } + @Override + public void onStart() { + super.onStart(); + CequintCallerIdManager cequintCallerIdManager = null; + if (CequintCallerIdManager.isCequintCallerIdEnabled(getContext())) { + cequintCallerIdManager = CequintCallerIdManager.createInstanceForCallLog(); + } + mContactInfoCache.setCequintCallerIdManager(cequintCallerIdManager); + } + @Override public void onStop() { updateOnTransition(); @@ -451,6 +464,8 @@ public class CallLogFragment extends Fragment mEmptyListView.setActionLabel(EmptyContentView.NO_LABEL); } else if (filterType == CallLogQueryHandler.CALL_TYPE_ALL) { mEmptyListView.setActionLabel(R.string.call_log_all_empty_action); + } else { + mEmptyListView.setActionLabel(EmptyContentView.NO_LABEL); } } @@ -589,6 +604,16 @@ public class CallLogFragment extends Fragment } } + @Override + public void showMultiSelectRemoveView(boolean show) { + ((ListsFragment) getParentFragment()).showMultiSelectRemoveView(show); + } + + @Override + public void setSelectAllModeToFalse() { + ((ListsFragment) getParentFragment()).setSelectAllModeToFalse(); + } + public interface HostInterface { void showDialpad(); diff --git a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java index 1daccd1a41ed5bb59730dd918853f9f636fb39d8..a9a4d1d4264ff29ac0bd85d5d92381c5dd8350b5 100644 --- a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java +++ b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java @@ -17,6 +17,7 @@ package com.android.dialer.app.calllog; import android.app.Activity; +import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.content.res.Resources; @@ -31,7 +32,6 @@ import android.support.annotation.VisibleForTesting; import android.support.v7.widget.CardView; import android.support.v7.widget.RecyclerView; import android.telecom.PhoneAccountHandle; -import android.telecom.TelecomManager; import android.telephony.PhoneNumberUtils; import android.text.BidiFormatter; import android.text.TextDirectionHeuristics; @@ -44,10 +44,13 @@ import android.widget.ImageButton; import android.widget.ImageView; import android.widget.QuickContactBadge; import android.widget.TextView; +import android.widget.Toast; import com.android.contacts.common.ClipboardUtils; import com.android.contacts.common.ContactPhotoManager; import com.android.contacts.common.compat.PhoneNumberUtilsCompat; import com.android.contacts.common.dialog.CallSubjectDialog; +import com.android.contacts.common.lettertiles.LetterTileDrawable; +import com.android.contacts.common.lettertiles.LetterTileDrawable.ContactType; import com.android.contacts.common.util.UriUtils; import com.android.dialer.app.DialtactsActivity; import com.android.dialer.app.R; @@ -58,15 +61,16 @@ import com.android.dialer.blocking.BlockedNumbersMigrator; import com.android.dialer.blocking.FilteredNumberCompat; import com.android.dialer.blocking.FilteredNumbersUtil; import com.android.dialer.callcomposer.CallComposerActivity; -import com.android.dialer.callcomposer.CallComposerContact; import com.android.dialer.calldetails.CallDetailsEntries; import com.android.dialer.common.ConfigProviderBindings; import com.android.dialer.common.LogUtil; import com.android.dialer.compat.CompatUtils; +import com.android.dialer.dialercontact.DialerContact; import com.android.dialer.lightbringer.Lightbringer; import com.android.dialer.lightbringer.LightbringerComponent; import com.android.dialer.logging.ContactSource; import com.android.dialer.logging.DialerImpression; +import com.android.dialer.logging.InteractionEvent; import com.android.dialer.logging.Logger; import com.android.dialer.logging.ScreenEvent; import com.android.dialer.phonenumbercache.CachedNumberLookupService; @@ -251,6 +255,20 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder phoneCallDetailsViews.nameView.setElegantTextHeight(false); phoneCallDetailsViews.callLocationAndDate.setElegantTextHeight(false); + if (mContext instanceof CallLogActivity) { + Logger.get(mContext) + .logQuickContactOnTouch( + quickContactView, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CALL_HISTORY, true); + } else if (mVoicemailPlaybackPresenter == null) { + Logger.get(mContext) + .logQuickContactOnTouch( + quickContactView, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CALL_LOG, true); + } else { + Logger.get(mContext) + .logQuickContactOnTouch( + quickContactView, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_VOICEMAIL, false); + } + quickContactView.setOverlay(null); if (CompatUtils.hasPrioritizedMimeType()) { quickContactView.setPrioritizedMimeType(Phone.CONTENT_ITEM_TYPE); @@ -467,7 +485,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder primaryActionButtonView.setContentDescription( TextUtils.expandTemplate( mContext.getString(R.string.description_call_action), validNameOrNumber)); - primaryActionButtonView.setImageResource(R.drawable.quantum_ic_call_white_24); + primaryActionButtonView.setImageResource(R.drawable.quantum_ic_call_vd_theme_24); primaryActionButtonView.setVisibility(View.VISIBLE); } else { primaryActionButtonView.setTag(null); @@ -717,19 +735,14 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder getContactType()); } - private int getContactType() { - int contactType = ContactPhotoManager.TYPE_DEFAULT; - if (mCallLogCache.isVoicemailNumber(accountHandle, number)) { - contactType = ContactPhotoManager.TYPE_VOICEMAIL; - } else if (isSpam) { - contactType = ContactPhotoManager.TYPE_SPAM; - } else if (mCachedNumberLookupService != null - && mCachedNumberLookupService.isBusiness(info.sourceType)) { - contactType = ContactPhotoManager.TYPE_BUSINESS; - } else if (numberPresentation == TelecomManager.PRESENTATION_RESTRICTED) { - contactType = ContactPhotoManager.TYPE_GENERIC_AVATAR; - } - return contactType; + private @ContactType int getContactType() { + return LetterTileDrawable.getContactTypeFromPrimitives( + mCallLogCache.isVoicemailNumber(accountHandle, number), + isSpam, + mCachedNumberLookupService != null + && mCachedNumberLookupService.isBusiness(info.sourceType), + numberPresentation, + false); } @Override @@ -795,19 +808,40 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder mVoicemailPlaybackPresenter.shareVoicemail(); } else { logCallLogAction(view.getId()); + final IntentProvider intentProvider = (IntentProvider) view.getTag(); - if (intentProvider != null) { - final Intent intent = intentProvider.getIntent(mContext); - // See IntentProvider.getCallDetailIntentProvider() for why this may be null. - if (intent != null) { - DialerUtils.startActivityWithErrorToast(mContext, intent); - } + if (intentProvider == null) { + return; } + + final Intent intent = intentProvider.getIntent(mContext); + // See IntentProvider.getCallDetailIntentProvider() for why this may be null. + if (intent == null) { + return; + } + + // We check to see if we are starting a Lightbringer intent. The reason is Lightbringer + // intents need to be started using startActivityForResult instead of the usual startActivity + String packageName = intent.getPackage(); + if (packageName != null && packageName.equals(getLightbringer().getPackageName(mContext))) { + startLightbringerActivity(intent); + } else { + DialerUtils.startActivityWithErrorToast(mContext, intent); + } + } + } + + private void startLightbringerActivity(Intent intent) { + try { + Activity activity = (Activity) mContext; + activity.startActivityForResult(intent, DialtactsActivity.ACTIVITY_REQUEST_CODE_LIGHTBRINGER); + } catch (ActivityNotFoundException e) { + Toast.makeText(mContext, R.string.activity_not_available, Toast.LENGTH_SHORT).show(); } } - private CallComposerContact buildContact() { - CallComposerContact.Builder contact = CallComposerContact.newBuilder(); + private DialerContact buildContact() { + DialerContact.Builder contact = DialerContact.newBuilder(); contact.setPhotoId(info.photoId); if (info.photoUri != null) { contact.setPhotoUri(info.photoUri.toString()); diff --git a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java index 58fe6fa2c06c36ca41f1cd565dda59f5de75896c..1f45f70863df361097a69f4f3bd9bd0598e7f1f6 100644 --- a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java +++ b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java @@ -225,14 +225,18 @@ public class DefaultVoicemailNotifier implements Worker { int count, String voicemailNumber, PendingIntent callVoicemailIntent, - PendingIntent voicemailSettingIntent) { + PendingIntent voicemailSettingIntent, + boolean isRefresh) { Assert.isNotNull(phoneAccountHandle); Assert.checkArgument(BuildCompat.isAtLeastO()); TelephonyManager telephonyManager = context .getSystemService(TelephonyManager.class) .createForPhoneAccountHandle(phoneAccountHandle); - Assert.isNotNull(telephonyManager); + if (telephonyManager == null) { + LogUtil.e(TAG, "invalid PhoneAccountHandle, ignoring"); + return; + } LogUtil.i(TAG, "Creating legacy voicemail notification"); PersistableBundle carrierConfig = telephonyManager.getCarrierConfig(); @@ -275,7 +279,8 @@ public class DefaultVoicemailNotifier implements Worker { .setSound(telephonyManager.getVoicemailRingtoneUri(phoneAccountHandle)) .setOngoing( carrierConfig.getBoolean( - CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL)); + CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL)) + .setOnlyAlertOnce(isRefresh); if (telephonyManager.isVoicemailVibrationEnabled(phoneAccountHandle)) { builder.setDefaults(Notification.DEFAULT_VIBRATE); diff --git a/java/com/android/dialer/app/calllog/IntentProvider.java b/java/com/android/dialer/app/calllog/IntentProvider.java index a94c6781ed837aafd54d23e81eda19c5a2c57669..9c3c18b602f82dd86b0913c1471b32f4c3a7fd83 100644 --- a/java/com/android/dialer/app/calllog/IntentProvider.java +++ b/java/com/android/dialer/app/calllog/IntentProvider.java @@ -24,12 +24,14 @@ import android.provider.ContactsContract; import android.telecom.PhoneAccountHandle; import com.android.contacts.common.model.Contact; import com.android.contacts.common.model.ContactLoader; -import com.android.dialer.callcomposer.CallComposerContact; import com.android.dialer.calldetails.CallDetailsActivity; import com.android.dialer.calldetails.CallDetailsEntries; import com.android.dialer.callintent.CallInitiationType; import com.android.dialer.callintent.CallIntentBuilder; +import com.android.dialer.dialercontact.DialerContact; import com.android.dialer.lightbringer.LightbringerComponent; +import com.android.dialer.logging.DialerImpression; +import com.android.dialer.logging.Logger; import com.android.dialer.util.CallUtil; import com.android.dialer.util.IntentUtil; import java.util.ArrayList; @@ -68,6 +70,7 @@ public abstract class IntentProvider { return new IntentProvider() { @Override public Intent getIntent(Context context) { + Logger.get(context).logImpression(DialerImpression.Type.IMS_VIDEO_REQUESTED_FROM_CALL_LOG); return new CallIntentBuilder(number, CallInitiationType.Type.CALL_LOG) .setPhoneAccountHandle(accountHandle) .setIsVideoCall(true) @@ -80,6 +83,8 @@ public abstract class IntentProvider { return new IntentProvider() { @Override public Intent getIntent(Context context) { + Logger.get(context) + .logImpression(DialerImpression.Type.LIGHTBRINGER_VIDEO_REQUESTED_FROM_CALL_LOG); return LightbringerComponent.get(context).getLightbringer().getIntent(context, number); } }; @@ -112,7 +117,7 @@ public abstract class IntentProvider { * @return The call details intent provider. */ public static IntentProvider getCallDetailIntentProvider( - CallDetailsEntries callDetailsEntries, CallComposerContact contact) { + CallDetailsEntries callDetailsEntries, DialerContact contact) { return new IntentProvider() { @Override public Intent getIntent(Context context) { diff --git a/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java b/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java index 7645a333e23290ff58175393d7f37ff051a4ffa5..6728dfb389898bda11130a2a7d38462b47f44f8c 100644 --- a/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java +++ b/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java @@ -19,7 +19,6 @@ package com.android.dialer.app.calllog.calllogcache; import android.content.Context; import android.telecom.PhoneAccountHandle; import com.android.dialer.app.calllog.CallLogAdapter; -import com.android.dialer.compat.CompatUtils; import com.android.dialer.util.CallUtil; /** @@ -46,10 +45,7 @@ public abstract class CallLogCache { /** Return the most compatible version of the TelecomCallLogCache. */ public static CallLogCache getCallLogCache(Context context) { - if (CompatUtils.isClassAvailable("android.telecom.PhoneAccountHandle")) { - return new CallLogCacheLollipopMr1(context); - } - return new CallLogCacheLollipop(context); + return new CallLogCacheLollipopMr1(context); } public void reset() { diff --git a/java/com/android/dialer/app/calllog/calllogcache/CallLogCacheLollipop.java b/java/com/android/dialer/app/calllog/calllogcache/CallLogCacheLollipop.java deleted file mode 100644 index 78aaa4193fd4f3bd268b3c850857da284af394a4..0000000000000000000000000000000000000000 --- a/java/com/android/dialer/app/calllog/calllogcache/CallLogCacheLollipop.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.dialer.app.calllog.calllogcache; - -import android.content.Context; -import android.telecom.PhoneAccount; -import android.telecom.PhoneAccountHandle; -import android.telephony.PhoneNumberUtils; -import android.text.TextUtils; - -/** - * This is a compatibility class for the CallLogCache for versions of dialer before Lollipop Mr1 - * (the introduction of phone accounts). - * - *

This class should not be initialized directly and instead be acquired from {@link - * CallLogCache#getCallLogCache}. - */ -class CallLogCacheLollipop extends CallLogCache { - - private String mVoicemailNumber; - - /* package */ CallLogCacheLollipop(Context context) { - super(context); - } - - @Override - public boolean isVoicemailNumber(PhoneAccountHandle accountHandle, CharSequence number) { - if (TextUtils.isEmpty(number)) { - return false; - } - - String numberString = number.toString(); - - if (!TextUtils.isEmpty(mVoicemailNumber)) { - return PhoneNumberUtils.compare(numberString, mVoicemailNumber); - } - - if (PhoneNumberUtils.isVoiceMailNumber(numberString)) { - mVoicemailNumber = numberString; - return true; - } - - return false; - } - - @Override - public String getAccountLabel(PhoneAccountHandle accountHandle) { - return null; - } - - @Override - public int getAccountColor(PhoneAccountHandle accountHandle) { - return PhoneAccount.NO_HIGHLIGHT_COLOR; - } - - @Override - public boolean doesAccountSupportCallSubject(PhoneAccountHandle accountHandle) { - return false; - } -} diff --git a/java/com/android/dialer/app/contactinfo/ContactInfoCache.java b/java/com/android/dialer/app/contactinfo/ContactInfoCache.java index e561b560787b3a4d414f78ac178b29f18f31f86b..32bbf06b521ee9f5867c8f2a46962ed91124e1a3 100644 --- a/java/com/android/dialer/app/contactinfo/ContactInfoCache.java +++ b/java/com/android/dialer/app/contactinfo/ContactInfoCache.java @@ -24,6 +24,7 @@ import android.support.annotation.VisibleForTesting; import android.text.TextUtils; import com.android.dialer.common.LogUtil; import com.android.dialer.logging.ContactSource.Type; +import com.android.dialer.oem.CequintCallerIdManager; import com.android.dialer.phonenumbercache.ContactInfo; import com.android.dialer.phonenumbercache.ContactInfoHelper; import com.android.dialer.util.ExpirableCache; @@ -55,6 +56,7 @@ public class ContactInfoCache { private final OnContactInfoChangedListener mOnContactInfoChangedListener; private final BlockingQueue mUpdateRequests; private final Handler mHandler; + private CequintCallerIdManager mCequintCallerIdManager; private QueryThread mContactInfoQueryThread; private volatile boolean mRequestProcessingDisabled = false; @@ -95,6 +97,10 @@ public class ContactInfoCache { mHandler = new InnerHandler(new WeakReference<>(this)); } + public void setCequintCallerIdManager(CequintCallerIdManager cequintCallerIdManager) { + mCequintCallerIdManager = cequintCallerIdManager; + } + public ContactInfo getValue( String number, String countryIso, @@ -160,7 +166,7 @@ public class ContactInfoCache { // TODO: Maybe skip look up if it's already available in cached number lookup // service. long start = SystemClock.elapsedRealtime(); - mContactInfoHelper.updateFromCequintCallerId(info, request.number); + mContactInfoHelper.updateFromCequintCallerId(mCequintCallerIdManager, info, request.number); long time = SystemClock.elapsedRealtime() - start; LogUtil.d( "ContactInfoCache.queryContactInfo", "Cequint Caller Id look up takes %d ms", time); diff --git a/java/com/android/dialer/app/dialpad/DialpadFragment.java b/java/com/android/dialer/app/dialpad/DialpadFragment.java index e9d57b3995f341a5b79821958c2301e3f3f8b94a..c0b26c91ae0dc19f203716ce7a0ccce4b31e60b7 100644 --- a/java/com/android/dialer/app/dialpad/DialpadFragment.java +++ b/java/com/android/dialer/app/dialpad/DialpadFragment.java @@ -29,6 +29,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; +import android.content.res.Resources; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; @@ -84,6 +85,7 @@ import com.android.dialer.common.LogUtil; import com.android.dialer.dialpadview.DialpadKeyButton; import com.android.dialer.dialpadview.DialpadView; import com.android.dialer.location.GeoUtil; +import com.android.dialer.oem.MotorolaUtils; import com.android.dialer.proguard.UsedByReflection; import com.android.dialer.telecom.TelecomUtil; import com.android.dialer.util.CallUtil; @@ -626,6 +628,14 @@ public class DialpadFragment extends Fragment Trace.beginSection(TAG + " onResume"); super.onResume(); + Resources res = getResources(); + int iconId = R.drawable.quantum_ic_call_vd_theme_24; + if (MotorolaUtils.isWifiCallingAvailable(getContext())) { + iconId = R.drawable.ic_wifi_calling; + } + mFloatingActionButtonController.changeIcon( + res.getDrawable(iconId, null), res.getString(R.string.description_dial_button)); + final DialtactsActivity activity = (DialtactsActivity) getActivity(); mDialpadQueryListener = activity; diff --git a/java/com/android/dialer/app/filterednumber/NumbersAdapter.java b/java/com/android/dialer/app/filterednumber/NumbersAdapter.java index f71517a44dc3a8191bbba1f8f7e4b7c3d56ab4a3..d98395ec7ea6652618b82d2b4bf1818e49b8bd99 100644 --- a/java/com/android/dialer/app/filterednumber/NumbersAdapter.java +++ b/java/com/android/dialer/app/filterednumber/NumbersAdapter.java @@ -28,6 +28,7 @@ import android.widget.SimpleCursorAdapter; import android.widget.TextView; import com.android.contacts.common.ContactPhotoManager; import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest; +import com.android.contacts.common.lettertiles.LetterTileDrawable; import com.android.contacts.common.util.UriUtils; import com.android.dialer.app.R; import com.android.dialer.compat.CompatUtils; @@ -98,8 +99,8 @@ public class NumbersAdapter extends SimpleCursorAdapter { info.lookupUri == null ? null : UriUtils.getLookupKeyFromUri(info.lookupUri); final int contactType = mContactInfoHelper.isBusiness(info.sourceType) - ? ContactPhotoManager.TYPE_BUSINESS - : ContactPhotoManager.TYPE_DEFAULT; + ? LetterTileDrawable.TYPE_BUSINESS + : LetterTileDrawable.TYPE_DEFAULT; final DefaultImageRequest request = new DefaultImageRequest(displayName, lookupKey, contactType, true /* isCircular */); badge.assignContactUri(info.lookupUri); diff --git a/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java b/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java index 1cdeb2175d18e55867be6a4db2c14ad526914103..c208fd57d40d7427e230e454efb4e87a97656734 100644 --- a/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java +++ b/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java @@ -40,6 +40,7 @@ public interface DialerLegacyBindings { Activity activity, ViewGroup alertContainer, CallLogAdapter.CallFetcher callFetcher, + CallLogAdapter.MultiSelectRemoveView multiSelectRemoveView, CallLogCache callLogCache, ContactInfoCache contactInfoCache, VoicemailPlaybackPresenter voicemailPlaybackPresenter, diff --git a/java/com/android/dialer/app/legacybindings/DialerLegacyBindingsStub.java b/java/com/android/dialer/app/legacybindings/DialerLegacyBindingsStub.java index 6e32843baffbe5e930e949bbea3d1af9108caa3c..19fa1a70c6598b6225a78eef94f73a5c6eaad671 100644 --- a/java/com/android/dialer/app/legacybindings/DialerLegacyBindingsStub.java +++ b/java/com/android/dialer/app/legacybindings/DialerLegacyBindingsStub.java @@ -34,6 +34,7 @@ public class DialerLegacyBindingsStub implements DialerLegacyBindings { Activity activity, ViewGroup alertContainer, CallLogAdapter.CallFetcher callFetcher, + CallLogAdapter.MultiSelectRemoveView multiSelectRemoveView, CallLogCache callLogCache, ContactInfoCache contactInfoCache, VoicemailPlaybackPresenter voicemailPlaybackPresenter, @@ -43,6 +44,7 @@ public class DialerLegacyBindingsStub implements DialerLegacyBindings { activity, alertContainer, callFetcher, + multiSelectRemoveView, callLogCache, contactInfoCache, voicemailPlaybackPresenter, diff --git a/java/com/android/dialer/app/list/AllContactsFragment.java b/java/com/android/dialer/app/list/AllContactsFragment.java index 04609970a8c992aefd4bfbd586ae7a194852317b..f5fdb9e2dcb620d892c497d0dc4a905b9736c95f 100644 --- a/java/com/android/dialer/app/list/AllContactsFragment.java +++ b/java/com/android/dialer/app/list/AllContactsFragment.java @@ -38,12 +38,14 @@ import com.android.contacts.common.list.ContactEntryListFragment; import com.android.contacts.common.list.ContactListFilter; import com.android.contacts.common.list.DefaultContactListAdapter; import com.android.dialer.app.R; -import com.android.dialer.app.widget.EmptyContentView; -import com.android.dialer.app.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener; import com.android.dialer.compat.CompatUtils; +import com.android.dialer.logging.InteractionEvent; +import com.android.dialer.logging.Logger; import com.android.dialer.util.DialerUtils; import com.android.dialer.util.IntentUtil; import com.android.dialer.util.PermissionsUtil; +import com.android.dialer.widget.EmptyContentView; +import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener; /** Fragments to show all contacts with phone numbers. */ public class AllContactsFragment extends ContactEntryListFragment @@ -149,6 +151,8 @@ public class AllContactsFragment extends ContactEntryListFragment parent, View view, int position, long id) { final Uri uri = (Uri) view.getTag(); if (uri != null) { + Logger.get(getContext()) + .logInteraction(InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_ALL_CONTACTS_GENERAL); if (CompatUtils.hasPrioritizedMimeType()) { QuickContact.showQuickContact(getContext(), view, uri, null, Phone.CONTENT_ITEM_TYPE); } else { diff --git a/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java b/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java index 537f488d539f218fc5a59296b8ae9a51fe4c809b..04927cf7a596ad25968b3bd37a1502b9aec11fef 100644 --- a/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java +++ b/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java @@ -19,6 +19,7 @@ package com.android.dialer.app.list; import android.content.Context; import android.content.res.Resources; import android.database.Cursor; +import android.graphics.drawable.Drawable; import android.telephony.PhoneNumberUtils; import android.text.BidiFormatter; import android.text.TextDirectionHeuristics; @@ -29,7 +30,6 @@ import com.android.contacts.common.list.PhoneNumberListAdapter; import com.android.contacts.common.util.ContactDisplayUtils; import com.android.dialer.app.R; import com.android.dialer.location.GeoUtil; -import com.android.dialer.util.CallUtil; /** * {@link PhoneNumberListAdapter} with the following added shortcuts, that are displayed as list @@ -50,7 +50,6 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter { private final boolean[] mShortcutEnabled = new boolean[SHORTCUT_COUNT]; private final BidiFormatter mBidiFormatter = BidiFormatter.getInstance(); - private final boolean mVideoCallingEnabled; private final String mCountryIso; private String mFormattedQueryString; @@ -59,7 +58,6 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter { super(context); mCountryIso = GeoUtil.getCurrentCountryIso(context); - mVideoCallingEnabled = CallUtil.isVideoEnabled(context); } @Override @@ -110,8 +108,7 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter { return convertView; } else { final ContactListItemView v = - new ContactListItemView( - getContext(), null, mVideoCallingEnabled, isCallAndShareEnabled()); + new ContactListItemView(getContext(), null, mIsImsVideoEnabled); assignShortcutToView(v, shortcutType); return v; } @@ -125,8 +122,7 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter { Context context, int partition, Cursor cursor, int position, ViewGroup parent) { final ContactListItemView view = super.newView(context, partition, cursor, position, parent); - view.setSupportVideoCallIcon(mVideoCallingEnabled); - view.setSupportCallAndShareIcon(isCallAndShareEnabled()); + view.setSupportVideoCallIcon(mIsImsVideoEnabled); return view; } @@ -171,7 +167,7 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter { private void assignShortcutToView(ContactListItemView v, int shortcutType) { final CharSequence text; - final int drawableId; + final Drawable drawable; final Resources resources = getContext().getResources(); final String number = getFormattedQueryString(); switch (shortcutType) { @@ -181,34 +177,39 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter { resources, R.string.search_shortcut_call_number, mBidiFormatter.unicodeWrap(number, TextDirectionHeuristics.LTR)); - drawableId = R.drawable.ic_search_phone; + drawable = getContext().getResources().getDrawable(R.drawable.quantum_ic_call_vd_theme_24); break; case SHORTCUT_CREATE_NEW_CONTACT: text = resources.getString(R.string.search_shortcut_create_new_contact); - drawableId = R.drawable.ic_search_add_contact; + drawable = + getContext().getResources().getDrawable(R.drawable.quantum_ic_person_add_vd_theme_24); + drawable.setAutoMirrored(true); break; case SHORTCUT_ADD_TO_EXISTING_CONTACT: text = resources.getString(R.string.search_shortcut_add_to_contact); - drawableId = R.drawable.quantum_ic_person_white_24; + drawable = + getContext().getResources().getDrawable(R.drawable.quantum_ic_person_add_vd_theme_24); break; case SHORTCUT_SEND_SMS_MESSAGE: text = resources.getString(R.string.search_shortcut_send_sms_message); - drawableId = R.drawable.quantum_ic_message_white_24; + drawable = + getContext().getResources().getDrawable(R.drawable.quantum_ic_message_vd_theme_24); break; case SHORTCUT_MAKE_VIDEO_CALL: text = resources.getString(R.string.search_shortcut_make_video_call); - drawableId = R.drawable.quantum_ic_videocam_white_24; + drawable = + getContext().getResources().getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24); break; case SHORTCUT_BLOCK_NUMBER: text = resources.getString(R.string.search_shortcut_block_number); - drawableId = R.drawable.ic_not_interested_googblue_24dp; + drawable = + getContext().getResources().getDrawable(R.drawable.ic_not_interested_googblue_24dp); break; default: throw new IllegalArgumentException("Invalid shortcut type"); } - v.setDrawableResource(drawableId); + v.setDrawable(drawable); v.setDisplayName(text); - v.setPhotoPosition(super.getPhotoPosition()); v.setAdjustSelectionBoundsEnabled(false); } diff --git a/java/com/android/dialer/app/list/DialerViewPager.java b/java/com/android/dialer/app/list/DialerViewPager.java new file mode 100644 index 0000000000000000000000000000000000000000..ae99f0521bff0a5975f657c3e8cd4f1bc000f526 --- /dev/null +++ b/java/com/android/dialer/app/list/DialerViewPager.java @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.dialer.app.list; + +import android.content.Context; +import android.support.v4.view.ViewPager; +import android.util.AttributeSet; +import android.view.MotionEvent; + +/** Class that handles enabling/disabling swiping between @{ViewPagerTabs}. */ +public class DialerViewPager extends ViewPager { + + private boolean enableSwipingPages; + + public DialerViewPager(Context context, AttributeSet attributeSet) { + super(context, attributeSet); + enableSwipingPages = true; + } + + @Override + public boolean onInterceptTouchEvent(MotionEvent event) { + if (enableSwipingPages) { + return super.onInterceptTouchEvent(event); + } + + return false; + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + if (enableSwipingPages) { + return super.onTouchEvent(event); + } + + return false; + } + + public void setEnableSwipingPages(boolean enabled) { + enableSwipingPages = enabled; + } +} diff --git a/java/com/android/dialer/app/list/ListsFragment.java b/java/com/android/dialer/app/list/ListsFragment.java index 8dd52a9d49676d3c3a4900d40dc9c0680e9b5471..32501d556206d1be1a4c44c8cdb1c5814fe219dc 100644 --- a/java/com/android/dialer/app/list/ListsFragment.java +++ b/java/com/android/dialer/app/list/ListsFragment.java @@ -31,19 +31,23 @@ import android.os.Handler; import android.os.Trace; import android.preference.PreferenceManager; import android.provider.VoicemailContract; -import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.LayoutInflater; import android.view.View; +import android.view.View.OnClickListener; import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; import com.android.contacts.common.list.ViewPagerTabs; import com.android.dialer.app.R; import com.android.dialer.app.calllog.CallLogFragment; import com.android.dialer.app.calllog.CallLogNotificationsService; +import com.android.dialer.app.calllog.VisualVoicemailCallLogFragment; import com.android.dialer.app.voicemail.error.VoicemailStatusCorruptionHandler; import com.android.dialer.app.voicemail.error.VoicemailStatusCorruptionHandler.Source; import com.android.dialer.common.LogUtil; import com.android.dialer.database.CallLogQueryHandler; +import com.android.dialer.database.CallLogQueryHandler.Listener; import com.android.dialer.logging.DialerImpression; import com.android.dialer.logging.Logger; import com.android.dialer.logging.ScreenEvent; @@ -61,24 +65,28 @@ import java.util.ArrayList; * containing the lists up above the search bar and pin it against the top of the screen. */ public class ListsFragment extends Fragment - implements ViewPager.OnPageChangeListener, CallLogQueryHandler.Listener { + implements OnPageChangeListener, Listener, OnClickListener { private static final String TAG = "ListsFragment"; - private ViewPager mViewPager; + private DialerViewPager mViewPager; private ViewPagerTabs mViewPagerTabs; private DialtactsPagerAdapter mAdapter; private RemoveView mRemoveView; private View mRemoveViewContent; + private View mMultiSelectSelectAllViewContent; + private TextView mSelectUnselectAllViewText; + private ImageView mSelectUnselectAllIcon; private Fragment mCurrentPage; private SharedPreferences mPrefs; private boolean mHasFetchedVoicemailStatus; + private boolean selectAllMode; private boolean mShowVoicemailTabAfterVoicemailStatusIsFetched; private VoicemailStatusHelper mVoicemailStatusHelper; private final ArrayList mOnPageChangeListeners = new ArrayList<>(); /** The position of the currently selected tab. */ private int mTabIndex = TAB_INDEX_SPEED_DIAL; - private boolean mPaused; + private boolean mPaused; private CallLogQueryHandler mCallLogQueryHandler; private final ContentObserver mVoicemailStatusObserver = @@ -163,7 +171,7 @@ public class ListsFragment extends Fragment tabIcons[TAB_INDEX_ALL_CONTACTS] = R.drawable.quantum_ic_people_white_24; tabIcons[TAB_INDEX_VOICEMAIL] = R.drawable.quantum_ic_voicemail_white_24; - mViewPager = (ViewPager) parentView.findViewById(R.id.lists_pager); + mViewPager = (DialerViewPager) parentView.findViewById(R.id.lists_pager); mAdapter = new DialtactsPagerAdapter( getContext(), @@ -180,9 +188,15 @@ public class ListsFragment extends Fragment mViewPagerTabs.configureTabIcons(tabIcons); mViewPagerTabs.setViewPager(mViewPager); addOnPageChangeListener(mViewPagerTabs); - mRemoveView = (RemoveView) parentView.findViewById(R.id.remove_view); mRemoveViewContent = parentView.findViewById(R.id.remove_view_content); + mMultiSelectSelectAllViewContent = + parentView.findViewById(R.id.multi_select_select_all_view_content); + mSelectUnselectAllViewText = (TextView) parentView.findViewById(R.id.select_all_view_text); + mSelectUnselectAllIcon = (ImageView) parentView.findViewById(R.id.select_all_view_icon); + mMultiSelectSelectAllViewContent.setOnClickListener(null); + mSelectUnselectAllIcon.setOnClickListener(this); + mSelectUnselectAllViewText.setOnClickListener(this); if (PermissionsUtil.hasReadVoicemailPermissions(getContext()) && PermissionsUtil.hasAddVoicemailPermissions(getContext())) { @@ -191,7 +205,7 @@ public class ListsFragment extends Fragment .registerContentObserver( VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver); } else { - LogUtil.w("ListsFragment.onCreateView", "no voicemail read/add permissions"); + LogUtil.w("ListsFragment.onCreateView", "no voicemail read permissions"); } Trace.endSection(); @@ -385,6 +399,13 @@ public class ListsFragment extends Fragment mRemoveView.animate().alpha(show ? 1 : 0).start(); } + public void showMultiSelectRemoveView(boolean show) { + mMultiSelectSelectAllViewContent.setVisibility(show ? View.VISIBLE : View.GONE); + mMultiSelectSelectAllViewContent.setAlpha(show ? 0 : 1); + mMultiSelectSelectAllViewContent.animate().alpha(show ? 1 : 0).start(); + mViewPager.setEnableSwipingPages(!show); + } + public boolean hasFrequents() { Fragment page = mAdapter.getItem(mAdapter.getRtlPosition(TAB_INDEX_SPEED_DIAL)); return page instanceof OldSpeedDialFragment @@ -424,4 +445,28 @@ public class ListsFragment extends Fragment } Logger.get(getActivity()).logScreenView(screenType, getActivity()); } + + @Override + public void onClick(View v) { + updateSelectAllIcon(); + selectAllMode = !selectAllMode; + } + + public void setSelectAllModeToFalse() { + selectAllMode = false; + mSelectUnselectAllIcon.setImageDrawable( + getContext().getDrawable(R.drawable.ic_empty_check_mark_white_24dp)); + } + + private void updateSelectAllIcon() { + if (selectAllMode) { + mSelectUnselectAllIcon.setImageDrawable( + getContext().getDrawable(R.drawable.ic_empty_check_mark_white_24dp)); + ((VisualVoicemailCallLogFragment) mCurrentPage).getAdapter().onAllDeselected(); + } else { + mSelectUnselectAllIcon.setImageDrawable( + getContext().getDrawable(R.drawable.ic_check_mark_blue_24dp)); + ((VisualVoicemailCallLogFragment) mCurrentPage).getAdapter().onAllSelected(); + } + } } diff --git a/java/com/android/dialer/app/list/OldSpeedDialFragment.java b/java/com/android/dialer/app/list/OldSpeedDialFragment.java index 40fe745654ba9226fb04a1d17799a5f9f7940e01..1ddc0f4e1d50ab0ffc01d3cbb8f2187e40429f30 100644 --- a/java/com/android/dialer/app/list/OldSpeedDialFragment.java +++ b/java/com/android/dialer/app/list/OldSpeedDialFragment.java @@ -50,12 +50,11 @@ import com.android.contacts.common.ContactTileLoaderFactory; import com.android.contacts.common.list.ContactTileView; import com.android.contacts.common.list.OnPhoneNumberPickerActionListener; import com.android.dialer.app.R; -import com.android.dialer.app.widget.EmptyContentView; -import com.android.dialer.callintent.CallInitiationType; import com.android.dialer.callintent.CallSpecificAppData; import com.android.dialer.common.LogUtil; import com.android.dialer.util.PermissionsUtil; import com.android.dialer.util.ViewUtil; +import com.android.dialer.widget.EmptyContentView; import java.util.ArrayList; /** This fragment displays the user's favorite/frequent contacts in a grid. */ @@ -430,7 +429,7 @@ public class OldSpeedDialFragment extends Fragment void showAllContactsTab(); } - private class ContactTileLoaderListener implements LoaderManager.LoaderCallbacks { + class ContactTileLoaderListener implements LoaderManager.LoaderCallbacks { @Override public CursorLoader onCreateLoader(int id, Bundle args) { @@ -460,24 +459,17 @@ public class OldSpeedDialFragment extends Fragment private class ContactTileAdapterListener implements ContactTileView.Listener { @Override - public void onContactSelected(Uri contactUri, Rect targetRect) { + public void onContactSelected( + Uri contactUri, Rect targetRect, CallSpecificAppData callSpecificAppData) { if (mPhoneNumberPickerActionListener != null) { - CallSpecificAppData callSpecificAppData = - CallSpecificAppData.newBuilder() - .setCallInitiationType(CallInitiationType.Type.SPEED_DIAL) - .build(); mPhoneNumberPickerActionListener.onPickDataUri( contactUri, false /* isVideoCall */, callSpecificAppData); } } @Override - public void onCallNumberDirectly(String phoneNumber) { + public void onCallNumberDirectly(String phoneNumber, CallSpecificAppData callSpecificAppData) { if (mPhoneNumberPickerActionListener != null) { - CallSpecificAppData callSpecificAppData = - CallSpecificAppData.newBuilder() - .setCallInitiationType(CallInitiationType.Type.SPEED_DIAL) - .build(); mPhoneNumberPickerActionListener.onPickPhoneNumber( phoneNumber, false /* isVideoCall */, callSpecificAppData); } diff --git a/java/com/android/dialer/app/list/PhoneFavoriteListView.java b/java/com/android/dialer/app/list/PhoneFavoriteListView.java index 9516f061158f3427d4e073bef457261636308cfc..f4f395ff089de627e0d32fb256ac5a12fdef4cd6 100644 --- a/java/com/android/dialer/app/list/PhoneFavoriteListView.java +++ b/java/com/android/dialer/app/list/PhoneFavoriteListView.java @@ -1,6 +1,5 @@ /* - * Copyright (C) 2012 Google Inc. - * Licensed to The Android Open Source Project. + * Copyright (C) 2017 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,7 +23,6 @@ import android.content.res.Configuration; import android.graphics.Bitmap; import android.os.Handler; import android.util.AttributeSet; -import android.util.Log; import android.view.DragEvent; import android.view.MotionEvent; import android.view.View; @@ -33,6 +31,7 @@ import android.widget.GridView; import android.widget.ImageView; import com.android.dialer.app.R; import com.android.dialer.app.list.DragDropController.DragItemContainer; +import com.android.dialer.common.LogUtil; /** Viewgroup that presents the user's speed dial contacts in a grid. */ public class PhoneFavoriteListView extends GridView @@ -40,14 +39,14 @@ public class PhoneFavoriteListView extends GridView public static final String LOG_TAG = PhoneFavoriteListView.class.getSimpleName(); final int[] mLocationOnScreen = new int[2]; - private final long SCROLL_HANDLER_DELAY_MILLIS = 5; - private final int DRAG_SCROLL_PX_UNIT = 25; - private final float DRAG_SHADOW_ALPHA = 0.7f; + private static final long SCROLL_HANDLER_DELAY_MILLIS = 5; + private static final int DRAG_SCROLL_PX_UNIT = 25; + private static final float DRAG_SHADOW_ALPHA = 0.7f; /** * {@link #mTopScrollBound} and {@link mBottomScrollBound} will be offseted to the top / bottom by * {@link #getHeight} * {@link #BOUND_GAP_RATIO} pixels. */ - private final float BOUND_GAP_RATIO = 0.2f; + private static final float BOUND_GAP_RATIO = 0.2f; private float mTouchSlop; private int mTopScrollBound; @@ -67,7 +66,6 @@ public class PhoneFavoriteListView extends GridView } }; private boolean mIsDragScrollerRunning = false; - private int mTouchDownForDragStartX; private int mTouchDownForDragStartY; private Bitmap mDragShadowBitmap; private ImageView mDragShadowOverlay; @@ -98,7 +96,7 @@ public class PhoneFavoriteListView extends GridView } public PhoneFavoriteListView(Context context, AttributeSet attrs) { - this(context, attrs, -1); + this(context, attrs, 0); } public PhoneFavoriteListView(Context context, AttributeSet attrs, int defStyle) { @@ -121,7 +119,6 @@ public class PhoneFavoriteListView extends GridView @Override public boolean onInterceptTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { - mTouchDownForDragStartX = (int) ev.getX(); mTouchDownForDragStartY = (int) ev.getY(); } @@ -287,7 +284,7 @@ public class PhoneFavoriteListView extends GridView try { bitmap = cache.copy(Bitmap.Config.ARGB_8888, false); } catch (final OutOfMemoryError e) { - Log.w(LOG_TAG, "Failed to copy bitmap from Drawing cache", e); + LogUtil.w(LOG_TAG, "Failed to copy bitmap from Drawing cache", e); bitmap = null; } } diff --git a/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java b/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java index 5a18d039bb3d298f12c2f8da411e16146d7a557b..40f23ea6fb16bcf6d4367c0dbee6f1931a8876e5 100644 --- a/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java +++ b/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java @@ -26,6 +26,8 @@ import android.widget.TextView; import com.android.contacts.common.list.ContactEntry; import com.android.dialer.app.R; import com.android.dialer.compat.CompatUtils; +import com.android.dialer.logging.InteractionEvent; +import com.android.dialer.logging.Logger; /** Displays the contact's picture overlaid with their name and number type in a tile. */ public class PhoneFavoriteSquareTileView extends PhoneFavoriteTileView { @@ -87,6 +89,8 @@ public class PhoneFavoriteSquareTileView extends PhoneFavoriteTileView { new OnClickListener() { @Override public void onClick(View v) { + Logger.get(getContext()) + .logInteraction(InteractionEvent.Type.SPEED_DIAL_OPEN_CONTACT_CARD); launchQuickContact(); } }); diff --git a/java/com/android/dialer/app/list/PhoneFavoriteTileView.java b/java/com/android/dialer/app/list/PhoneFavoriteTileView.java index db89cf3dcdd98412cc6c9a30ade9f2b99b4ab08b..835b448bdb71bc343a6bb2426e1f72b051c9a90d 100644 --- a/java/com/android/dialer/app/list/PhoneFavoriteTileView.java +++ b/java/com/android/dialer/app/list/PhoneFavoriteTileView.java @@ -18,16 +18,22 @@ package com.android.dialer.app.list; import android.content.ClipData; import android.content.Context; +import android.provider.ContactsContract.PinnedPositions; import android.text.TextUtils; import android.util.AttributeSet; import android.view.View; import android.widget.ImageView; -import com.android.contacts.common.ContactPhotoManager; import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest; import com.android.contacts.common.MoreContactUtils; +import com.android.contacts.common.lettertiles.LetterTileDrawable; import com.android.contacts.common.list.ContactEntry; import com.android.contacts.common.list.ContactTileView; import com.android.dialer.app.R; +import com.android.dialer.callintent.CallInitiationType; +import com.android.dialer.callintent.CallSpecificAppData; +import com.android.dialer.callintent.SpeedDialContactType; +import com.android.dialer.logging.InteractionEvent; +import com.android.dialer.logging.Logger; /** * A light version of the {@link com.android.contacts.common.list.ContactTileView} that is used in @@ -42,7 +48,6 @@ public abstract class PhoneFavoriteTileView extends ContactTileView { // tile is long pressed. static final String DRAG_PHONE_FAVORITE_TILE = "PHONE_FAVORITE_TILE"; private static final String TAG = PhoneFavoriteTileView.class.getSimpleName(); - private static final boolean DEBUG = false; // These parameters instruct the photo manager to display the default image/letter at 70% of // its normal size, and vertically offset upwards 12% towards the top of the letter tile, to // make room for the contact name and number label at the bottom of the image. @@ -55,6 +60,8 @@ public abstract class PhoneFavoriteTileView extends ContactTileView { private View mShadowOverlay; /** Users' most frequent phone number. */ private String mPhoneNumberString; + private boolean isPinned; + private boolean isStarred; public PhoneFavoriteTileView(Context context, AttributeSet attrs) { super(context, attrs); @@ -83,6 +90,8 @@ public abstract class PhoneFavoriteTileView extends ContactTileView { super.loadFromContact(entry); // Set phone number to null in case we're reusing the view. mPhoneNumberString = null; + isPinned = (entry.pinned != PinnedPositions.UNPINNED); + isStarred = entry.isFavorite; if (entry != null) { // Grab the phone-number to call directly. See {@link onClick()}. mPhoneNumberString = entry.phoneNumber; @@ -113,16 +122,35 @@ public abstract class PhoneFavoriteTileView extends ContactTileView { if (mListener == null) { return; } + + CallSpecificAppData.Builder callSpecificAppData = + CallSpecificAppData.newBuilder() + .setCallInitiationType(CallInitiationType.Type.SPEED_DIAL) + .setSpeedDialContactPosition( + ((PhoneFavoriteListView) v.getParent()).getPositionForView(v)); + if (isStarred) { + callSpecificAppData.addSpeedDialContactType(SpeedDialContactType.Type.STARRED_CONTACT); + } else { + callSpecificAppData.addSpeedDialContactType(SpeedDialContactType.Type.FREQUENT_CONTACT); + } + if (isPinned) { + callSpecificAppData.addSpeedDialContactType(SpeedDialContactType.Type.PINNED_CONTACT); + } + if (TextUtils.isEmpty(mPhoneNumberString)) { // Copy "superclass" implementation + Logger.get(getContext()) + .logInteraction(InteractionEvent.Type.SPEED_DIAL_CLICK_CONTACT_WITH_AMBIGUOUS_NUMBER); mListener.onContactSelected( - getLookupUri(), MoreContactUtils.getTargetRectFromView(PhoneFavoriteTileView.this)); + getLookupUri(), + MoreContactUtils.getTargetRectFromView(PhoneFavoriteTileView.this), + callSpecificAppData.build()); } else { // When you tap a frequently-called contact, you want to // call them at the number that you usually talk to them // at (i.e. the one displayed in the UI), regardless of // whether that's their default number. - mListener.onCallNumberDirectly(mPhoneNumberString); + mListener.onCallNumberDirectly(mPhoneNumberString, callSpecificAppData.build()); } } }; @@ -133,7 +161,7 @@ public abstract class PhoneFavoriteTileView extends ContactTileView { return new DefaultImageRequest( displayName, lookupKey, - ContactPhotoManager.TYPE_DEFAULT, + LetterTileDrawable.TYPE_DEFAULT, DEFAULT_IMAGE_LETTER_SCALE, DEFAULT_IMAGE_LETTER_OFFSET, false); diff --git a/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java b/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java index c692ecac775ffc44f0068622adae3f43fd6f119f..ce859826143d30b5def5a25e3bccdafdd9fc3ba5 100644 --- a/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java +++ b/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java @@ -30,7 +30,6 @@ import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.PinnedPositions; import android.support.annotation.VisibleForTesting; import android.text.TextUtils; -import android.util.Log; import android.util.LongSparseArray; import android.view.View; import android.view.ViewGroup; @@ -41,6 +40,11 @@ import com.android.contacts.common.list.ContactEntry; import com.android.contacts.common.list.ContactTileView; import com.android.contacts.common.preference.ContactsPreferences; import com.android.dialer.app.R; +import com.android.dialer.common.LogUtil; +import com.android.dialer.lightbringer.Lightbringer; +import com.android.dialer.lightbringer.LightbringerComponent; +import com.android.dialer.logging.InteractionEvent; +import com.android.dialer.logging.Logger; import com.android.dialer.shortcuts.ShortcutRefresher; import com.google.common.collect.ComparisonChain; import java.util.ArrayList; @@ -190,6 +194,14 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements OnDragDrop // Track the length of {@link #mContactEntries} and compare to {@link #TILES_SOFT_LIMIT}. int counter = 0; + // Data for logging + int starredContactsCount = 0; + int pinnedContactsCount = 0; + int multipleNumbersContactsCount = 0; + int contactsWithPhotoCount = 0; + int contactsWithNameCount = 0; + int duoReachableContactsCount = 0; + // The cursor should not be closed since this is invoked from a CursorLoader. if (cursor.moveToFirst()) { int starredColumn = cursor.getColumnIndexOrThrow(Contacts.STARRED); @@ -262,6 +274,22 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements OnDragDrop contact.pinned = pinned; mContactEntries.add(contact); + // Set counts for logging + if (isStarred) { + // mNumStarred might be larger than the number of visible starred contact, + // since it includes invisible ones (starred contact with no phone number). + starredContactsCount++; + } + if (pinned != PinnedPositions.UNPINNED) { + pinnedContactsCount++; + } + if (!TextUtils.isEmpty(name)) { + contactsWithNameCount++; + } + if (photoUri != null) { + contactsWithPhotoCount++; + } + duplicates.put(id, contact); counter++; @@ -274,6 +302,47 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements OnDragDrop ShortcutRefresher.refresh(mContext, mContactEntries); notifyDataSetChanged(); + + Lightbringer lightbringer = LightbringerComponent.get(mContext).getLightbringer(); + for (ContactEntry contact : mContactEntries) { + if (contact.phoneNumber == null) { + multipleNumbersContactsCount++; + } else if (lightbringer.isReachable(mContext, contact.phoneNumber)) { + duoReachableContactsCount++; + } + } + + Logger.get(mContext) + .logSpeedDialContactComposition( + counter, + starredContactsCount, + pinnedContactsCount, + multipleNumbersContactsCount, + contactsWithPhotoCount, + contactsWithNameCount, + duoReachableContactsCount); + // Logs for manual testing + LogUtil.v("PhoneFavoritesTileAdapter.saveCursorToCache", "counter: %d", counter); + LogUtil.v( + "PhoneFavoritesTileAdapter.saveCursorToCache", + "starredContactsCount: %d", + starredContactsCount); + LogUtil.v( + "PhoneFavoritesTileAdapter.saveCursorToCache", + "pinnedContactsCount: %d", + pinnedContactsCount); + LogUtil.v( + "PhoneFavoritesTileAdapter.saveCursorToCache", + "multipleNumbersContactsCount: %d", + multipleNumbersContactsCount); + LogUtil.v( + "PhoneFavoritesTileAdapter.saveCursorToCache", + "contactsWithPhotoCount: %d", + contactsWithPhotoCount); + LogUtil.v( + "PhoneFavoritesTileAdapter.saveCursorToCache", + "contactsWithNameCount: %d", + contactsWithNameCount); } /** Iterates over the {@link Cursor} Returns position of the first NON Starred Contact */ @@ -347,7 +416,7 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements OnDragDrop @Override public void notifyDataSetChanged() { if (DEBUG) { - Log.v(TAG, "notifyDataSetChanged"); + LogUtil.v(TAG, "notifyDataSetChanged"); } super.notifyDataSetChanged(); } @@ -355,7 +424,7 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements OnDragDrop @Override public View getView(int position, View convertView, ViewGroup parent) { if (DEBUG) { - Log.v(TAG, "get view for " + String.valueOf(position)); + LogUtil.v(TAG, "get view for " + position); } PhoneFavoriteTileView tileView = null; @@ -455,8 +524,9 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements OnDragDrop // update the database here with the new pinned positions try { mContext.getContentResolver().applyBatch(ContactsContract.AUTHORITY, operations); + Logger.get(mContext).logInteraction(InteractionEvent.Type.SPEED_DIAL_PIN_CONTACT); } catch (RemoteException | OperationApplicationException e) { - Log.e(TAG, "Exception thrown when pinning contacts", e); + LogUtil.e(TAG, "Exception thrown when pinning contacts", e); } } } @@ -609,6 +679,7 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements OnDragDrop if (mDraggedEntry != null) { unstarAndUnpinContact(mDraggedEntry.lookupUri); mAwaitingRemove = true; + Logger.get(mContext).logInteraction(InteractionEvent.Type.SPEED_DIAL_REMOVE_CONTACT); } } diff --git a/java/com/android/dialer/app/list/RegularSearchFragment.java b/java/com/android/dialer/app/list/RegularSearchFragment.java index 02896793b2c2952a2e4073b4e34ea0cce39d1b41..4f032032f1e7520acc7636452e1b4c24d0b91c05 100644 --- a/java/com/android/dialer/app/list/RegularSearchFragment.java +++ b/java/com/android/dialer/app/list/RegularSearchFragment.java @@ -25,12 +25,12 @@ import android.view.ViewGroup; import com.android.contacts.common.list.ContactEntryListAdapter; import com.android.contacts.common.list.PinnedHeaderListView; import com.android.dialer.app.R; -import com.android.dialer.app.widget.EmptyContentView; -import com.android.dialer.app.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener; import com.android.dialer.callintent.CallInitiationType; import com.android.dialer.phonenumbercache.CachedNumberLookupService; import com.android.dialer.phonenumbercache.PhoneNumberCache; import com.android.dialer.util.PermissionsUtil; +import com.android.dialer.widget.EmptyContentView; +import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener; public class RegularSearchFragment extends SearchFragment implements OnEmptyViewActionButtonClickedListener, diff --git a/java/com/android/dialer/app/list/RemoveView.java b/java/com/android/dialer/app/list/RemoveView.java index 3b917db43e6982549820ea447b145e498f83380f..1d566c5a060c44acc5a709823d24b233dc20354c 100644 --- a/java/com/android/dialer/app/list/RemoveView.java +++ b/java/com/android/dialer/app/list/RemoveView.java @@ -41,7 +41,7 @@ public class RemoveView extends FrameLayout { } public RemoveView(Context context, AttributeSet attrs) { - this(context, attrs, -1); + this(context, attrs, 0); } public RemoveView(Context context, AttributeSet attrs, int defStyle) { diff --git a/java/com/android/dialer/app/list/SearchFragment.java b/java/com/android/dialer/app/list/SearchFragment.java index fcf8236e30536dfa94b008c200bde0862bc97999..7f2d17650d654468bb7eb6b87205bce48173f560 100644 --- a/java/com/android/dialer/app/list/SearchFragment.java +++ b/java/com/android/dialer/app/list/SearchFragment.java @@ -34,19 +34,18 @@ import android.widget.LinearLayout; import android.widget.ListView; import android.widget.Space; import com.android.contacts.common.list.ContactEntryListAdapter; -import com.android.contacts.common.list.ContactListItemView; import com.android.contacts.common.list.OnPhoneNumberPickerActionListener; import com.android.contacts.common.list.PhoneNumberPickerFragment; import com.android.dialer.animation.AnimUtils; import com.android.dialer.app.R; import com.android.dialer.app.dialpad.DialpadFragment.ErrorDialogFragment; import com.android.dialer.app.widget.DialpadSearchEmptyContentView; -import com.android.dialer.app.widget.EmptyContentView; import com.android.dialer.callintent.CallSpecificAppData; import com.android.dialer.common.LogUtil; import com.android.dialer.util.DialerUtils; import com.android.dialer.util.IntentUtil; import com.android.dialer.util.PermissionsUtil; +import com.android.dialer.widget.EmptyContentView; public class SearchFragment extends PhoneNumberPickerFragment { @@ -80,7 +79,6 @@ public class SearchFragment extends PhoneNumberPickerFragment { setQuickContactEnabled(true); setAdjustSelectionBoundsEnabled(false); setDarkTheme(false); - setPhotoPosition(ContactListItemView.getDefaultPhotoPosition(false /* opposite */)); setUseCallableUri(true); try { diff --git a/java/com/android/dialer/app/list/SmartDialSearchFragment.java b/java/com/android/dialer/app/list/SmartDialSearchFragment.java index eb1508c7287169346c448534e2ffb0fc7fc6b8bf..fc21c8bc3f8be21d51061916bea92f94b5ca7733 100644 --- a/java/com/android/dialer/app/list/SmartDialSearchFragment.java +++ b/java/com/android/dialer/app/list/SmartDialSearchFragment.java @@ -29,11 +29,11 @@ import android.support.v13.app.FragmentCompat; import com.android.contacts.common.list.ContactEntryListAdapter; import com.android.dialer.app.R; import com.android.dialer.app.dialpad.SmartDialCursorLoader; -import com.android.dialer.app.widget.EmptyContentView; import com.android.dialer.callintent.CallInitiationType; import com.android.dialer.common.LogUtil; import com.android.dialer.database.DialerDatabaseHelper; import com.android.dialer.util.PermissionsUtil; +import com.android.dialer.widget.EmptyContentView; /** Implements a fragment to load and display SmartDial search results. */ public class SmartDialSearchFragment extends SearchFragment diff --git a/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml b/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml index ca93da0deb249250f185e79d7e41c16bff9383c3..7c6df944882d69d7cbfac562604a7607bb6edb3d 100644 --- a/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml +++ b/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml @@ -19,7 +19,7 @@ - + - - - diff --git a/java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml b/java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml new file mode 100644 index 0000000000000000000000000000000000000000..968713376004bfb37cb1c4bb9164270bc1054001 --- /dev/null +++ b/java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml @@ -0,0 +1,29 @@ + + + + + + + \ No newline at end of file diff --git a/java/com/android/dialer/app/res/layout-land/empty_content_view_dialpad_search.xml b/java/com/android/dialer/app/res/layout-land/empty_content_view_dialpad_search.xml index 5f8068067a08a53e39bd8743e7d5593a13bdd82b..59d13636ad2ea1e547b54982e5cf36f4e251c619 100644 --- a/java/com/android/dialer/app/res/layout-land/empty_content_view_dialpad_search.xml +++ b/java/com/android/dialer/app/res/layout-land/empty_content_view_dialpad_search.xml @@ -26,14 +26,14 @@ android:layout_height="0dp" android:layout_weight="1"/> + + + + + diff --git a/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml b/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml index 17a45208d9ad9bd751d697bd7853f90f3e22ad32..422c52991603828cf941ceb453bee26e04f9a534 100644 --- a/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml +++ b/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml @@ -45,7 +45,7 @@ android:cropToPadding="false" android:clipToPadding="false"/> - - + android:src="@drawable/ic_check_mark_48dp" /> diff --git a/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml b/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml index d3a5531307af230ee2ffd1e8f8294adf4b36e18e..504638348950572c34dc104495d53153278e8f10 100644 --- a/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml +++ b/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml @@ -50,7 +50,7 @@ + android:text="@string/call"/> + android:src="@drawable/ic_phone_attach"/> + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + android:id="@+id/spacer" + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="1" + android:background="#00000000"/> + android:layout_width="match_parent" + android:layout_height="@dimen/shadow_length" + android:background="@drawable/shadow_fade_up"/> + android:id="@+id/dialpadChooser" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@color/background_dialer_light" + android:visibility="gone"/> + android:id="@+id/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: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"/> diff --git a/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml b/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml index e245aaca0dbd913dd827ff71ad788fd967f38588..1d2047982bacb7ebbeb3b70371e5980125d0b2d7 100644 --- a/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml +++ b/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml @@ -16,7 +16,7 @@ - - + android:animateLayoutChanges="true"> + + + android:layout_width="match_parent" + android:layout_height="@dimen/action_bar_height_large" + android:background="@color/actionbar_background_color" + android:elevation="@dimen/tab_elevation"/> - - + android:id="@+id/lists_pager_header" + style="@style/DialtactsActionBarTabTextStyle" + android:layout_width="match_parent" + android:layout_height="@dimen/tab_height" + android:layout_gravity="top" + android:elevation="@dimen/tab_elevation" + android:orientation="horizontal" + android:textAllCaps="true"/> + + @@ -58,41 +58,80 @@ This is required since drag and drop event is only sent to views are visible when drag starts. --> + android:id="@+id/remove_view" + android:layout_width="match_parent" + android:layout_height="@dimen/tab_height" + android:layout_marginTop="@dimen/action_bar_height_large" + android:contentDescription="@string/remove_contact" + android:importantForAccessibility="no"> + android:id="@+id/remove_view_content" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/actionbar_background_color" + android:gravity="center" + android:orientation="horizontal" + android:visibility="gone"> + android:id="@+id/remove_view_icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="8dp" + android:layout_marginBottom="8dp" + android:src="@drawable/ic_remove" + android:tint="@color/remove_text_color"/> + android:id="@+id/remove_view_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/remove_contact" + android:textColor="@color/remove_text_color" + android:textSize="@dimen/remove_text_size"/> + + + + + + + + + + diff --git a/java/com/android/dialer/app/res/layout/search_edittext.xml b/java/com/android/dialer/app/res/layout/search_edittext.xml index c02512d8086e21faf17ae4a8777ad4f67abe7188..bb6a5f7de34be6f524d0065e5bd60fd013a59919 100644 --- a/java/com/android/dialer/app/res/layout/search_edittext.xml +++ b/java/com/android/dialer/app/res/layout/search_edittext.xml @@ -29,7 +29,7 @@ android:padding="@dimen/search_box_search_icon_padding" android:importantForAccessibility="no" android:scaleType="center" - android:src="@drawable/quantum_ic_search_white_24" + android:src="@drawable/quantum_ic_search_vd_theme_24" android:tint="@color/searchbox_icon_tint"/> - "Keer terug na oproep wat besig is" "Voeg oproep by" "Inkomende oproepe" + "Gaan tans grootmaathandelingmodus in" + "Het grootmaathandelingmodus verlaat" + "Het %1$s gekies" + "Het %1$s ontkies" "Speel stemboodskap" "Bekyk kontak %1$s" "Bel %1$s" @@ -99,11 +103,13 @@ "Stemboodskap" "%s sek." "%s min. %s sek." + "Kanselleer grootmaathandelingmodus" "stemboodskap" "stemboodskappe" "Ja" "Nee" "Vee geselekteerde %1$s uit?" + "%1$s gekies" @string/call_log_header_today "%1$s om %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Laai tans van SIM-kaart af…" "SIM-kaartkontakte" - "Geen kontakte-program beskikbaar nie" "Stemsoektog is nie beskikbaar nie" "Kan nie \'n foonoproep maak nie want die Foon-program is gedeaktiveer." "Deursoek kontakte" @@ -145,10 +150,9 @@ "%s nuwe gemiste oproepe" "Daar is nog niemand op jou spoedbel nie" "Voeg \'n gunsteling by" - "Jy het nog nie enige kontakte nie" - "Voeg \'n kontak by" "Raak aan prent om al die nommers te sien of raak en hou om te herorganiseer" "Verwyder" + "Kies alles" "Video-oproep" "Stuur \'n boodskap" "Oproepbesonderhede" @@ -213,11 +217,9 @@ "Geblokkeerde nommers" "%1$s is reeds geblokkeer." "Oproeprekeninge" - "Skakel aan" "Stel toestemmings" "Skakel die kontaktetoestemming aan om spoedbel te aktiveer." "Skakel die foontoestemming aan om jou oproeprekord te sien." - "Skakel die kontaktetoestemming aan om jou kontakte te sien." "Skakel die foontoestemming aan om na jou stemboodskapdiens te gaan." "Skakel die Kontakte-toestemmings aan om jou kontakte te deursoek." "Skakel die foontoestemming aan om \'n oproep te maak." diff --git a/java/com/android/dialer/app/res/values-am/strings.xml b/java/com/android/dialer/app/res/values-am/strings.xml index 82303019c408ab1561f5938c83d09e26e6e80d0f..7f4a622d70dc258f0751e5b95f0ac04d9e68a932 100644 --- a/java/com/android/dialer/app/res/values-am/strings.xml +++ b/java/com/android/dialer/app/res/values-am/strings.xml @@ -85,6 +85,10 @@ "በመካሄድ ላይ ወዳለው ጥሪ ተመለስ" "ጥሪ ያክሉ" "ገቢ ጥሪዎች" + "ወደ የጅምላ እርምጃ ሁነታ በመግባት ላይ" + "ከጅምላ እርምጃ ሁነታ ለቀው ወጥተዋል" + "%1$s ተመርጧል" + "%1$s አልተመረጠም" "የድምፅ መልዕክት አጫውት" "ዕውቂያ %1$s ዕይ" "ጥሪ %1$s" @@ -99,11 +103,13 @@ "የድምፅ መልዕክት" "%s ሰከንድ" "%s ደቂቃ %s ሴከ" + "የጅምላ እርምጃ ሁነታ ይቅር" "የድምፅ መልዕክት" "የድምፅ መልዕክቶች" "አዎ" "አይ" "የተመረጠው %1$s ይሰረዝ?" + "%1$s ተመርጠዋል" @string/call_log_header_today "%1$s %2$s ላይ" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "ከSIM ካርድ ላይ በመጫን ላይ..." "የSIM ካርድ ዕውቂያዎች" - "ምንም የእውቂያዎች መተግበሪያ አይገኝም" "የድምጽ ፍለጋ አይገኝም" "የስልክ መተግበሪያው ስለተሰናከለ የስልክ ጥሪ ማድረግ አይቻልም።" "ዕውቅያዎችን ፈልግ" @@ -145,10 +150,9 @@ "%s አዲስ ያልተመለሱ ጥሪዎች" "በፈጥኖ መደወያ ላይ ገና ማንም የለዎትም" "ተወዳጅ አክል" - "ገና ምንም እውቂያዎች የሉዎትም" - "ዕውቂያ አክል" "ሁሉንም ቁጥሮች ለማየት ምስል ይንኩ ወይም ዳግም ለመደርደር ነክተው ይያዙት" "አስወግድ" + "ሁሉንም ምረጥ" "የቪዲዮ ጥሪ" "መልእክት ላክ" "የጥሪ ዝርዝሮች" @@ -213,11 +217,9 @@ "የታገዱ ቁጥሮች" "%1$s ቀድሞውኑ ታግዷል።" "የመደወያ መለያዎች" - "አብራ" "ፍቃዶችን አዋቅር" "ፈጥኖ መደወያን ለማንቃት የእውቂያዎች ፍቃዱን ያብሩ።" "የጥሪ ምዝግብ ማስታወአሽዎን ለማየት የስልክ ፍቃዱን ያብሩ።" - "የእርስዎን እውቂያዎች ለማየት የእውቂያዎች ፍቃዱን ያብሩ።" "የድምፅ መልዕክትዎን ለመድረስ የስልክ ፍቃዱን ያብሩ።" "የእርስዎን እውቂያዎች ለመከታተል የእውቂያዎች ፍቃዶችን ያብሩ።" "ስልክ ለመደወል የስልክ ፍቃዱን ያብሩ።" diff --git a/java/com/android/dialer/app/res/values-ar/strings.xml b/java/com/android/dialer/app/res/values-ar/strings.xml index e4dfb4d9efba58ccceb95848dc7a98902f4646e6..3687d0bcb50406798a4bd06472ecba9c0b10819d 100644 --- a/java/com/android/dialer/app/res/values-ar/strings.xml +++ b/java/com/android/dialer/app/res/values-ar/strings.xml @@ -89,6 +89,10 @@ "عودة إلى المكالمة الجارية" "إضافة مكالمة" "المكالمات الواردة" + "يتم الدخول إلى وضع الإجراء المجمَّع" + "تمت مغادرة وضع الإجراء المجمَّع" + "تم تحديد %1$s" + "تم إلغاء تحديد %1$s" "تشغيل البريد الصوتي" "عرض جهة الاتصال %1$s" "الاتصال بـ %1$s" @@ -103,11 +107,13 @@ "البريد الصوتي" "%s ثانية" "%s دقيقة %s ثانية" + "إلغاء وضع الإجراءات المجمَّع" "البريد الصوتي" "رسائل البريد الصوتي" "نعم" "لا" "حذف رسائل %1$s المحددة؟" + "تم تحديد %1$s" @string/call_log_header_today "%1$s في %2$s" "%1$02d:%2$02d" @@ -120,7 +126,6 @@ "MEID" "‏جارٍ التحميل من شريحة SIM…" "‏شريحة SIM وجهات الاتصال" - "لا يتوفر تطبيق لجهات الاتصال" "البحث الصوتي غير متاح" "يتعذر إجراء مكالمة هاتفية نظرًا لأنه تم تعطيل تطبيق الهاتف." "البحث في جهات الاتصال" @@ -149,10 +154,9 @@ "%s من المكالمات الجديدة الفائتة" "لم تتم إضافة أية جهة اتصال إلى قائمة الاتصال السريع حتى الآن" "إضافة مفضلة" - "ليست لديك أية جهات اتصال حتى الآن" - "إضافة جهة اتصال" "المس الصورة للاطلاع على جميع الأرقام أو المس مع الاستمرار لإعادة الترتيب" "إزالة" + "تحديد الكل" "مكالمة فيديو" "إرسال رسالة" "تفاصيل المكالمة" @@ -221,11 +225,9 @@ "الأرقام المحظورة" "تم حظر %1$s." "حسابات الاتصال" - "تشغيل" "تعيين الأذونات" "لتمكين الاتصال السريع، شغِّل إذن جهات الاتصال." "للاطلاع على سجل المكالمات، شغِّل إذن الهاتف." - "للاطلاع على جهات الاتصال، شغِّل إذن جهات الاتصال." "للوصول إلى البريد الصوتي، شغِّل إذن الهاتف." "للبحث عن جهات الاتصال، عليك تشغيل أذونات جهات الاتصال." "لإجراء مكالمة، شغِّل إذن الهاتف." diff --git a/java/com/android/dialer/app/res/values-az/strings.xml b/java/com/android/dialer/app/res/values-az/strings.xml index 62bc117ba3a6330cef0c47c0dbc4ff87b4a4649c..b6681c9e2ab5047b9924ebc3232e97f4700b0a97 100644 --- a/java/com/android/dialer/app/res/values-az/strings.xml +++ b/java/com/android/dialer/app/res/values-az/strings.xml @@ -85,6 +85,10 @@ "Davam edən zəngə qayıdın" "Zəng əlavə edin" "Gələn zənglər" + "Toplu əməliyyat rejiminə daxil olunur" + "Toplu əməliyyat rejimi tərk edilir" + "%1$s seçildi" + "%1$s seçilmədi" "Səsli məktubu oxudun" "%1$s adlı kontakta baxın" "Zəng %1$s" @@ -99,11 +103,13 @@ "Səsli poçt" "%s san" "%s dəq %s san" + "Qrup əməliyyatları rejimini ləğv edin" "səsli e-məktub" "səsli e-məktublar" "Bəli" "Xeyr" "Seçilmiş %1$s silinsin?" + "%1$s seçilib" @string/call_log_header_today "%1$s tarixində %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "SIM kartdan yüklənir..." "SIM kart kontaktları" - "Əlaqələr proqramı mövcud deyil" "Səsli axtarış mövcud deyil" "Telefon tətbiqi deaktiv edildiyinə görə telefon zəngi etmək mümkün deyil." "Kontakt axtarın" @@ -145,10 +150,9 @@ "%s yeni buraxılmış zəng" "Hələ sürətli zəng siyahınızda hec kim yoxdur" "Sevimlilərə əlavə edin" - "Hələ heç bir kontaktınız yoxdur" - "Kontakt əlavə edin" "Bütün nömrələri görmək üçün təsvirə toxunun və ya yenidən qaydaya salmaq üçün basıb saxlayın" "Yığışdır" + "Hamısını seçin" "Video zəng" "Mesaj göndərin" "Zəng detalları" @@ -213,11 +217,9 @@ "Bloklanmış nömrələr" "%1$s artıq bloklanıb." "Hesabların çağrılması" - "Aktiv edin" "İcazələri quraşdırın" "Sürətli yığımı aktivləşdirmək üçün, Kontakt icazələrini aktivləşdirin." "Çağrı jurnalınızı görmək üçün Telefon icazəsini aktivləşdirin." - "Kontaktlarınızı görmək üçün Kontakt icazəsini aktivləşdirin." "Səsli poçta daxil olmaq üçün, Telefon icazəsini aktivləşdirin." "Kontaktlarınızı axtarmaq üçün, Kontakt icazələrini aktiv edin." "Zəng etmək üçün, Telefon icazəsini aktivləşdirin." diff --git a/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml index 9df729108aece17b10fd1fb4e1894787539ae30b..40c0886c8e7c47a18d2f37f7a8909b3635a616fd 100644 --- a/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml +++ b/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml @@ -86,6 +86,10 @@ "Vrati se na poziv koji je u toku" "Dodaj poziv" "Dolazni pozivi" + "Ulazite u režim grupnih radnji" + "Izašli ste iz režima grupnih radnji" + "Izabrano je %1$s" + "Opozvan je izbor %1$s" "Puštanje govorne pošte" "Prikaži kontakt %1$s" "Pozovi %1$s" @@ -100,11 +104,13 @@ "Govorna pošta" "%s sek" "%s min %s sek" + "Otkažite režim grupnih radnji" "govornu poruku" "govorne poruke" "Da" "Ne" "Želite li da izbrišete izabranu(e) %1$s?" + "Izabranih: %1$s" @string/call_log_header_today "%1$s u %2$s" "%1$02d:%2$02d" @@ -117,7 +123,6 @@ "MEID" "Učitava se sa SIM kartice…" "Kontakti na SIM kartici" - "Nema dostupne aplikacije za kontakte" "Glasovna pretraga nije dostupna" "Nije moguće uputiti telefonski poziv jer je aplikacija Telefon onemogućena." "Pretraži kontakte" @@ -146,10 +151,9 @@ "Novih propuštenih poziva: %s" "Nemate nijedan kontakt na brzom biranju" "Dodaj omiljen kontakt" - "Još uvek nemate nijedan kontakt" - "Dodaj kontakt" "Dodirnite sliku da biste videli sve brojeve ili dodirnite i zadržite da biste im promenili raspored" "Ukloni" + "Izaberi sve" "Video poziv" "Pošalji poruku" "Detalji poziva" @@ -215,11 +219,9 @@ "Blokirani brojevi" "%1$s je već blokiran." "Nalozi za pozivanje" - "Uključi" "Podesi dozvole" "Da biste omogućili brzo biranje, uključite dozvolu za Kontakte." "Da biste videli evidenciju poziva, uključite dozvolu za Telefon." - "Da biste videli kontakte, uključite dozvolu za Kontakte." "Da biste pristupili govornoj pošti, uključite dozvolu za Telefon." "Da biste pretražili kontakte, uključite dozvole za Kontakte." "Da biste uputili poziv, uključite dozvolu za Telefon." diff --git a/java/com/android/dialer/app/res/values-be/strings.xml b/java/com/android/dialer/app/res/values-be/strings.xml index aac3df2bd142df367ec0c1aaddfe9428af3812b1..f2ad3342b9f6bfca92c3ca4ef77242ae9f6e2abe 100644 --- a/java/com/android/dialer/app/res/values-be/strings.xml +++ b/java/com/android/dialer/app/res/values-be/strings.xml @@ -87,6 +87,10 @@ "Звярнуцца да бягучага выкліку" "Дадаць выклік" "Уваходныя выклікі" + "Уваход у рэжым групавога дзеяння" + "Выхад з рэжыму групавога дзеяння" + "Выбрана: %1$s" + "Выбар скасаваны: %1$s" "Прайграць паведамленне галасавой пошты" "Прагледзець кантакт %1$s" "Выклікаць карыстальнiка %1$s" @@ -101,11 +105,13 @@ "Галасавая пошта" "%s с" "%s хв %s с" + "Скасаваць рэжым пакетных дзеянняў" "галасавая пошта" "галасавая пошта" "Так" "Не" "Выдаліць вылучанае: %1$s?" + "Выбрана: %1$s" @string/call_log_header_today "%1$s у %2$s" "%1$02d:%2$02d" @@ -118,7 +124,6 @@ "MEID" "Загрузка з SIM-карты..." "Кантакты SIM-карты" - "Праграмы для аперацый з кантактамі няма" "Галасавы пошук недаступны" "Немагчыма зрабіць выклік па тэлефоне, таму што праграма Тэлефон была адключана." "Пошук кантактаў" @@ -147,10 +152,9 @@ "Новых прапушчаных выклікаў: %s" "У вас пакуль нікога няма на хуткім наборы" "Дадаць улюбёны" - "У вас пакуль няма ніякіх кантактаў" - "Дадаць кантакт" "Дакраніцеся да відарыса, каб прагледзець усе нумары, або дакраніцеся і ўтрымлівайце, каб змяніць парадак" "Выдаліць" + "Выбраць усё" "Відэавыклік" "Адправiць паведамленне" "Падрабязнасці выкліку" @@ -217,11 +221,9 @@ "Заблакіраваныя нумары" "%1$s ужо заблакіраваны." "Уліковыя запісы для выклікаў" - "Уключыць" "Задаць дазволы" "Каб уключыць хуткі набор, уключыце дазвол для Кантактаў." "Каб прагледзець свой журнал выклікаў, уключыце дазволы Тэлефона." - "Каб бачыць свае кантакты, уключыце дазвол для Кантактаў." "Каб атрымаць доступ да галасавой пошты, уключыце дазвол для Тэлефона." "Каб шукаць свае кантакты, уключыце дазвол для Кантактаў." "Каб зрабіць выклік, уключыце дазвол для Тэлефона." diff --git a/java/com/android/dialer/app/res/values-bg/strings.xml b/java/com/android/dialer/app/res/values-bg/strings.xml index 7bab71f3b0ddf67be4e527fe5b547f37aa076bfc..8083f48281a15e9ebe10acf5903d72f20e184db9 100644 --- a/java/com/android/dialer/app/res/values-bg/strings.xml +++ b/java/com/android/dialer/app/res/values-bg/strings.xml @@ -85,6 +85,10 @@ "Назад към текущото обаждане" "Добавяне на обаждане" "Вх. обаждания" + "Влизате в режима на групови действия" + "Излязохте от режима на групови действия" + "Избрахте %1$s" + "Премахнахте избора от %1$s" "Пускане на гласовата поща" "Преглед на контактa %1$s" "Обаждане на %1$s" @@ -99,11 +103,13 @@ "Гласова поща" "%s сек" "%s мин %s сек" + "Анулиране на режима на групови действия" "гласово съобщение" "гласови съобщения" "Да" "Не" "Избрахте %1$s – да се изтрие ли избраното?" + "Избрахте %1$s" @string/call_log_header_today "%1$s в %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Зарежда се от SIM карта..." "Контакти от SIM карта" - "Няма налично приложение за контакти" "Гласовото търсене не е налице" "Не може да се осъществи телефонно обаждане, защото приложението Телефон е деактивирано." "Търсене в контактите" @@ -145,10 +150,9 @@ "%s нови пропуснати обаждания" "Още нямате контакти за бързо набиране" "Добавяне на любим контакт" - "Още нямате контакти" - "Добавяне на контакт" "Докоснете изображението, за да видите всички номера, или го натиснете и задръжте за пренареждане" "Премахване" + "Избиране на всички" "Видеообаждане" "Изпращане на съобщение" "Подробности за обаждането" @@ -213,11 +217,9 @@ "Блокирани номера" "Номер %1$s вече е блокиран." "Профили за обаждане" - "Включване" "Задаване на разрешенията" "За да активирате бързото набиране, включете разрешението за Контакти." "За да видите списъка с обажданията си, включете разрешението за Телефон." - "За да видите контактите си, включете разрешението за Контакти." "За да осъществите достъп до гласовата си поща, включете разрешението за Телефон." "За да търсите в контактите си, включете разрешенията за тях." "За да извършите обаждане, включете разрешението за Телефон." diff --git a/java/com/android/dialer/app/res/values-bn/strings.xml b/java/com/android/dialer/app/res/values-bn/strings.xml index 271247be3eaf1840c63a79890dd6f42c892ea154..4d2d7cc1e4bb679b91544012d3597fb0b5cdeb8c 100644 --- a/java/com/android/dialer/app/res/values-bn/strings.xml +++ b/java/com/android/dialer/app/res/values-bn/strings.xml @@ -85,6 +85,10 @@ "প্রগতিতে থাকা কলে প্রত্যাবর্তন" "কল যোগ করুন" "ইনকামিং কলগুলি" + "বাল্ক অ্যাকশন মোডে প্রবেশ করা হচ্ছে" + "বাল্ক অ্যাকশন মোড ত্যাগ করুন" + "%1$s নির্বাচন করা হয়েছে" + "%1$s অনির্বাচন করা হয়েছে" "ভয়েসমেল প্লে করুন" "%1$s পরিচিতি দেখুন" "%1$s কে কল করুন" @@ -99,11 +103,13 @@ "ভয়েসমেল" "%s সেকেন্ড" "%s মিনিট %s সেকেন্ড" + "ব্যাচ অ্যাকশন মোড বাতিল করুন" "ভয়েসমেল" "ভয়েসমেলগুলি" "হ্যাঁ" "না" "নির্বাচিত %1$s মুছে ফেলতে চান?" + "%1$sটি নির্বাচিত" @string/call_log_header_today "%1$s তারিখে %2$s\'টায়" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "সিম কার্ড থেকে লোড করা হচ্ছে…" "সিম কার্ডের পরিচিতিগুলি" - "কোনো পরিচিতি অ্যাপ্লিকেশান উপলব্ধ নয়" "ভয়েস অনুসন্ধান অনুপলব্ধ" "কোনো ফোন কল করা যাবে না কারণ ফোন অ্যাপ্লিকেশানটি অক্ষম করা হয়েছে৷" "পরিচিতিগুলি খুঁজুন" @@ -145,10 +150,9 @@ "%sটি নতুন মিসড কল" "আপনার স্পীড ডায়ালে এখনও পর্যন্ত কেউ নেই" "একটি পছন্দসই যোগ করুন" - "আপনার এখনও পর্যন্ত কোনো পরিচিতি নেই" - "একটি পরিচিতি যোগ করুন" "সমস্ত নম্বর দেখতে ছবিতে স্পর্শ করুন বা রেকর্ড করতে স্পর্শ করে ধরে রাখুন" "সরান" + "সবগুলি নির্বাচন করুন" "ভিডিও কল" "একটি বার্তা পাঠান" "কলের বিশদ বিবরণ" @@ -213,11 +217,9 @@ "ব্লক করা নাম্বারগুলি" "%1$s ইতিমধ্যেই অববোধ করা রয়েছে৷" "কলিং অ্যাকাউন্টগুলি" - "চালু করুন" "অনুমতিগুলি সেট করুন" "স্পীড ডায়াল সক্ষম করতে, পরিচিতিগুলির অনুমতি চালু করুন।" "আপনার কল লগ দেখতে, ফোনের অনুমতি চালু করুন।" - "আপনার পরিচিতিগুলি দেখতে, পরিচিতিগুলির অনুমতি চালু করুন।" "আপনার ভয়েসমেল অ্যাক্সেস করতে, ফোনের অনুমতি চালু করুন।" "আপনার পরিচিতিগুলি অনুসন্ধান করতে, পরিচিতির অনুমতিগুলি চালু করুন।" "একটি কল করতে, ফোনের অনুমতি চালু করুন।" diff --git a/java/com/android/dialer/app/res/values-bs/strings.xml b/java/com/android/dialer/app/res/values-bs/strings.xml index 92c9c14e0a17ca8d4a6a7bf8fd2715f2f18416ff..d8347723dc3d192ca18290ca7d7896f04501170b 100644 --- a/java/com/android/dialer/app/res/values-bs/strings.xml +++ b/java/com/android/dialer/app/res/values-bs/strings.xml @@ -86,6 +86,10 @@ "Povratak na poziv u toku" "Dodaj poziv" "Dolazni pozivi" + "Ulazak u način rada za skupnu radnju" + "Napuštanje načina rada za skupnu radnju" + "Odabrano %1$s" + "Poništen odabir %1$s" "Pokretanje govorne pošte" "Prikaži kontakt %1$s" "Pozovi kontakt %1$s" @@ -100,11 +104,13 @@ "Govorna pošta" "%s sek." "%s min. %s sek." + "Otkaži način rada za grupnu radnju" "poruka govorne pošte" "poruke govorne pošte" "Da" "Ne" "Izbrisati izabranu/e %1$s?" + "Odabrano %1$s" @string/call_log_header_today "%1$s u %2$s" "%1$02d:%2$02d" @@ -117,7 +123,6 @@ "MEID" "Učitavanje sa SIM kartice…" "Kontakti sa SIM kartice" - "Nije dostupna nijedna aplikacija za kontakte" "Glasovna pretraga nije dostupna" "Nije moguće uputiti poziv jer je aplikacija Telefon onemogućena." "Traži kontakte" @@ -146,10 +151,9 @@ "Broj novih propuštenih poziva: %s" "Nemate nikog na brzom biranju" "Dodaj u favorite" - "Još nemate nijedan kontakt" - "Dodaj kontakt" "Dodirnite sliku da vidite sve brojeve ili dodirnite i držite da promijenite raspored." "Ukloni" + "Izaberi sve" "Videopoziv" "Pošalji poruku" "Detalji o pozivu" @@ -215,11 +219,9 @@ "Blokirani brojevi" "%1$s je već blokiran." "Računi za pozivanje" - "Uključi" "Postavi dozvole" "Da omogućite brzo biranje, uključite dozvolu za Kontakte." "Da vidite popis poziva, uključite dozvolu za Telefon." - "Da vidite kontakte, uključite dozvolu za Kontakte." "Da pristupite govornoj pošti,uključite dozvolu za telefon." "Da pretražujete kontakte, uključite dozvole za Kontakte." "Da uputite poziv, uključite dozvolu za Telefon." diff --git a/java/com/android/dialer/app/res/values-ca/strings.xml b/java/com/android/dialer/app/res/values-ca/strings.xml index fa04dd980a6cf6db753017fbe44ac1402ed06da5..7b12e0dbd3ae707b5255feb1276c65023f24db48 100644 --- a/java/com/android/dialer/app/res/values-ca/strings.xml +++ b/java/com/android/dialer/app/res/values-ca/strings.xml @@ -85,6 +85,10 @@ "Torna a la trucada en curs" "Afegeix una trucada" "Trucades entrants" + "S\'està accedint al mode d\'acció massiva" + "S\'ha sortit del mode d\'acció massiva" + "S\'ha seleccionat %1$s" + "S\'ha desseleccionat %1$s" "Reprodueix el missatge de veu" "Visualitza el contacte %1$s" "Truca a %1$s" @@ -99,11 +103,13 @@ "Bústia de veu" "%s s" "%s min %s s" + "Cancel·la el mode d\'accions en lot" "missatge de veu" "missatges de veu" "Sí" "No" "Vols suprimir l\'element o elements seleccionats (%1$s)?" + "%1$s seleccionades" @string/call_log_header_today "%1$s a les %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "S\'està carregant des de la targeta SIM..." "Contactes de la targeta SIM" - "No hi ha cap contacte disponible." "La cerca per veu no està disponible." "No es pot fer una trucada telefònica perquè s\'ha desactivat l\'aplicació de telèfon." "Cerca als contactes" @@ -145,10 +150,9 @@ "%s trucades perdudes noves" "Encara no tens cap contacte al marcatge ràpid" "Afegeix un preferit" - "Encara no tens cap contacte" - "Afegeix un contacte" "Toca la imatge per veure\'n tots els números o bé mantén-la premuda per canviar-ne l\'ordre" "Suprimeix" + "Selecciona-ho tot" "Videotrucada" "Envia un missatge" "Detalls de la trucada" @@ -213,11 +217,9 @@ "Números bloquejats" "%1$s ja està bloquejat." "Comptes de trucades" - "Activa" "Defineix els permisos" "Activa el permís Contactes per activar el marcatge ràpid." "Activa el permís Telèfon per veure el teu registre de trucades." - "Activa el permís Contactes per veure els teus contactes." "Activa el permís Telèfon per accedir a la bústia de veu." "Per cercar els teus contactes, activa els permisos de Contactes." "Activa el permís Telèfon per fer una trucada." diff --git a/java/com/android/dialer/app/res/values-cs/strings.xml b/java/com/android/dialer/app/res/values-cs/strings.xml index 5a3e42913f0bf3fd49c61f852937e96a1b738582..bbcb35847ef1ec0b684b151e0d75bc40cc3fe859 100644 --- a/java/com/android/dialer/app/res/values-cs/strings.xml +++ b/java/com/android/dialer/app/res/values-cs/strings.xml @@ -87,6 +87,10 @@ "Návrat k probíhajícímu hovoru" "Přidat hovor" "Příchozí volání" + "Vstupování do režimu hromadných akcí" + "Opustili jste režim hromadných akcí" + "Položka %1$s je vybrána" + "Položka %1$s není vybrána" "Přehrát hlasovou schránku" "Zobrazit kontakt %1$s" "Volat kontakt %1$s" @@ -101,11 +105,13 @@ "Hlasová schránka" "%s s" "%s min %s s" + "Zrušit režim hromadných akcí" "vybranou hlasovou zprávu" "vybrané hlasové zprávy" "Ano" "Ne" "Smazat %1$s?" + "Vybráno: %1$s" @string/call_log_header_today "%1$s%2$s" "%1$02d:%2$02d" @@ -118,7 +124,6 @@ "MEID" "Načítání ze SIM karty..." "Kontakty na SIM kartě" - "Není k dispozici žádná aplikace pro práci s kontakty." "Hlasové vyhledávání není k dispozici." "Telefonický hovor nelze uskutečnit, protože aplikace Telefon byla zakázána." "Vyhledat kontakty" @@ -147,10 +152,9 @@ "Nové zmeškané hovory: %s" "V rychlém vytáčení zatím nemáte žádný kontakt." "Přidat oblíbený kontakt" - "Zatím nemáte žádné kontakty" - "Přidat kontakt" "Klepnutím na obrázek zobrazíte všechna čísla. Podržením můžete změnit pořadí." "Odstranit" + "Vybrat všechny" "Videohovor" "Odeslat zprávu" "Podrobnosti hovoru" @@ -217,11 +221,9 @@ "Blokovaná čísla" "Číslo %1$s je již blokováno." "Účty pro volání" - "Zapnout" "Nastavit oprávnění" "Chcete-li povolit rychlé vytáčení, aktivujte oprávnění Kontakty." "Chcete-li zobrazit seznam hovorů, aktivujte oprávnění Telefon." - "Chcete-li zobrazit kontakty, aktivujte oprávnění Kontakty." "Chcete-li přejít do hlasové schránky, aktivujte oprávnění Telefon." "Chcete-li vyhledat kontakty, zapněte oprávnění Kontakty." "Chcete-li uskutečnit hovor, aktivujte oprávnění Telefon." diff --git a/java/com/android/dialer/app/res/values-da/strings.xml b/java/com/android/dialer/app/res/values-da/strings.xml index 42aa663782a9360936e477c67acfece292ae6230..31cf8e33d1b9ffb0838f190dbe91bf53e8721597 100644 --- a/java/com/android/dialer/app/res/values-da/strings.xml +++ b/java/com/android/dialer/app/res/values-da/strings.xml @@ -85,6 +85,10 @@ "Vend tilbage til igangværende opkald" "Tilføj opkald" "Indgående opkald" + "Massehandlingstilstanden startes" + "Massehandlingstilstanden blev afsluttet" + "Vælg %1$s" + "Fravælg %1$s" "Afspil telefonsvarerbesked" "Vis kontaktpersonen %1$s" "Ring til %1$s" @@ -99,11 +103,13 @@ "Telefonsvarer" "%s sek." "%s min. %s sek." + "Annuller massehandlingstilstand" "talebesked" "talebeskeder" "Ja" "Nej" "Vil du slette de valgte %1$s?" + "%1$s er valgt" @string/call_log_header_today "%1$s kl. %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Indlæser fra SIM-kort ..." "Kontakter på SIM-kort" - "Der er ingen app til kontaktpersoner" "Talesøgning er ikke tilgængelig" "Det er ikke muligt at foretage et telefonopkald, fordi applikationen Telefon er deaktiveret." "Søg i kontakter" @@ -145,10 +150,9 @@ "%s nye ubesvarede opkald" "Der er endnu ingen kontaktpersoner i Hurtigopkald" "Angiv en kontaktperson som foretrukken" - "Du har endnu ikke nogen kontaktpersoner" - "Tilføj en kontaktperson" "Tryk på billedet for at se alle numre, eller tryk og hold nede på billedet for at omarrangere" "Fjern" + "Vælg alt" "Videoopkald" "Send en sms-besked" "Opkaldsinfo" @@ -213,11 +217,9 @@ "Blokerede telefonnumre" "%1$s er allerede blokeret." "Opkaldskonti" - "Aktivér" "Angiv tilladelser" "Slå tilladelsen Kontaktpersoner til for at aktivere hurtigopkald." "Slå tilladelsen Telefon til for at se din opkaldsliste." - "Slå tilladelsen Kontaktpersoner til for at se dine kontaktpersoner." "Slå tilladelsen Telefon til for at få adgang til din telefonsvarer," "Hvis du vil søge i dine kontaktpersoner, skal du slå tilladelserne Kontaktpersoner til." "Slå tilladelsen Telefon til for at foretage et opkald." diff --git a/java/com/android/dialer/app/res/values-de/strings.xml b/java/com/android/dialer/app/res/values-de/strings.xml index 5653e0f12f535c3daebde470042cf15805c89560..c1f644119de6027a9b818e40a0f46e954a58df2b 100644 --- a/java/com/android/dialer/app/res/values-de/strings.xml +++ b/java/com/android/dialer/app/res/values-de/strings.xml @@ -85,6 +85,10 @@ "Zurück zum aktuellen Anruf" "Anruf hinzufügen" "Eingehende Anrufe" + "Es wird in den Modus für Bulk-Aktionen gewechselt" + "Der Modus für Bulk-Aktionen wurde verlassen" + "%1$s ausgewählt" + "Auswahl für %1$s aufgehoben" "Mailbox abhören" "Kontakt %1$s anzeigen" "%1$s anrufen" @@ -99,11 +103,13 @@ "Mailbox" "%s s" "%s min %s s" + "Modus für Batch-Aktionen abbrechen" "Mailboxnachricht" "Mailboxnachrichten" "Ja" "Nein" "Ausgewählte %1$s löschen?" + "%1$s ausgewählt" @string/call_log_header_today "%1$s um %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Ladevorgang von SIM-Karte läuft..." "Kontakte auf SIM-Karte" - "Keine Kontakte-App verfügbar" "Sprachsuche nicht verfügbar" "Es kann kein Anruf getätigt werden, da die App \"Telefon\" deaktiviert wurde." "In Kontakten suchen" @@ -145,10 +150,9 @@ "%s neue entgangene Anrufe" "Du hast für noch niemanden eine Kurzwahl festgelegt" "Favoriten hinzufügen" - "Du hast noch keine Kontakte." - "Kontakt hinzufügen" "Tippe auf das Bild, um alle Nummern zu sehen, oder halte das Bild länger gedrückt, um sie neu anzuordnen" "Entfernen" + "Alle auswählen" "Videoanruf" "SMS senden" "Anrufdetails" @@ -213,11 +217,9 @@ "Blockierte Nummern" "%1$s ist bereits blockiert." "Anrufkonten" - "Aktivieren" "Berechtigungen festlegen" "Aktiviere die Berechtigung \"Kontakte\", um die Kurzwahlfunktion zu verwenden." "Aktiviere die Berechtigung \"Telefon\", um dein Anrufprotokoll abzurufen." - "Aktiviere die Berechtigung \"Kontakte\", um deine Kontakte abzurufen." "Aktiviere die Berechtigung \"Telefon\", um auf deine Mailbox zuzugreifen." "Aktiviere die Berechtigungen \"Kontakte\", um deine Kontakte zu suchen." "Aktiviere die Berechtigung \"Telefon\", um einen Anruf zu tätigen." diff --git a/java/com/android/dialer/app/res/values-el/strings.xml b/java/com/android/dialer/app/res/values-el/strings.xml index 847f60a26aa0d965ff07c26dcf76fea12d76619a..c4ba02d0f1d9fb73f9c4e44504d926e38cb95298 100644 --- a/java/com/android/dialer/app/res/values-el/strings.xml +++ b/java/com/android/dialer/app/res/values-el/strings.xml @@ -85,6 +85,10 @@ "Επιστροφή στην κλήση που βρίσκεται σε εξέλιξη" "Προσθήκη κλήσης" "Εισερχόμενες κλήσεις" + "Εισαγωγή στη λειτουργία μαζικών ενεργειών" + "Αποχώρηση από τη λειτουργία μαζικών ενεργειών" + "Έγινε επιλογή %1$s" + "Καταργήθηκε η επιλογή %1$s" "Αναπαραγωγή μηνύματος αυτόματου τηλεφωνητή" "Προβολή επαφής %1$s" "Κλήση %1$s" @@ -99,11 +103,13 @@ "Αυτόματος τηλεφωνητής" "%s δευτερόλεπτα" "%s λεπτά %s δευτερόλεπτα" + "Ακύρωση λειτουργίας μαζικών ενεργειών" "φωνητικού μηνύματος αυτόματου τηλεφωνητή" "φωνητικών μηνυμάτων αυτόματου τηλεφωνητή" "Ναι" "Όχι" "Διαγραφή επιλεγμ. %1$s;" + "Έχουν επιλεγεί %1$s" @string/call_log_header_today "%1$s στις %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Φόρτωση από κάρτα SIM…" "Επαφές στην κάρτα SIM" - "Δεν υπάρχουν διαθέσιμες εφαρμογές επαφών" "Η φωνητική αναζήτηση δεν είναι διαθέσιμη" "Δεν είναι δυνατή η πραγματοποίηση τηλεφωνικής κλήσης επειδή η εφαρμογή \"Τηλέφωνο\" έχει απενεργοποιηθεί." "Αναζήτηση επαφών" @@ -145,10 +150,9 @@ "%s νέες αναπάντητες κλήσεις" "Δεν έχετε ορίσει ακόμη κάποια επαφή στις ταχείες κλήσεις" "Προσθέστε ένα αγαπημένο" - "Δεν έχετε επαφές ακόμη" - "Προσθήκη επαφής" "Αγγίξτε την εικόνα για να δείτε όλους τους αριθμούς ή αγγίξτε παρατεταμένα για αναδιάταξη" "Κατάργηση" + "Επιλογή όλων" "Βιντεοκλήση" "Αποστολή μηνύματος" "Λεπτομέρειες κλήσης" @@ -213,11 +217,9 @@ "Αποκλεισμένοι αριθμοί" "Ο αριθμός %1$s αποκλείστηκε ήδη." "Λογαριασμοί κλήσης" - "Ενεργοποίηση" "Ορισμός αδειών" "Για να ενεργοποιήσετε την ταχεία κλήση, ενεργοποιήστε την άδεια επαφών." "Για να δείτε το αρχείο καταγραφής κλήσεών σας, ενεργοποιήστε την άδεια τηλεφώνου." - "Για να δείτε τις επαφές σας, ενεργοποιήστε την άδεια επαφών." "Για να αποκτήσετε πρόσβαση στον τηλεφωνητή σας, ενεργοποιήστε την άδεια τηλεφώνου." "Για να κάνετε αναζήτηση στις επαφές σας, ενεργοποιήστε τις άδειες \"Επαφές\"." "Για να πραγματοποιήσετε μια κλήση, ενεργοποιήστε την άδεια τηλεφώνου." diff --git a/java/com/android/dialer/app/res/values-en-rAU/strings.xml b/java/com/android/dialer/app/res/values-en-rAU/strings.xml index 28eea8b4dc096ea823f3b23ce8fe6aa7fcaae0fb..cb7e912c7bc119c938f1c9d0a2551a107ae1d00b 100644 --- a/java/com/android/dialer/app/res/values-en-rAU/strings.xml +++ b/java/com/android/dialer/app/res/values-en-rAU/strings.xml @@ -85,6 +85,10 @@ "Return to call in progress" "Add call" "Incoming calls" + "Entering bulk action mode" + "Left bulk action mode" + "Selected %1$s" + "Unselected %1$s" "Play voicemail" "View contact %1$s" "Call %1$s" @@ -99,11 +103,13 @@ "Voicemail" "%s sec" "%s min %s sec" + "Cancel batch actions mode" "voicemail" "voicemails" "Yes" "No" "Delete selected %1$s?" + "%1$s selected" @string/call_log_header_today "%1$s at %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Loading from SIM card…" "SIM card contacts" - "No contacts app available" "Voice search not available" "Cannot make a phone call because the Phone application has been disabled." "Search contacts" @@ -145,10 +150,9 @@ "%s new missed calls" "No one is on your speed dial yet" "Add a favourite" - "You don\'t have any contacts yet" - "Add a contact" "Touch image to see all numbers, or touch & hold to re-arrange" "Remove" + "Select all" "Video call" "Send a message" "Call details" @@ -213,11 +217,9 @@ "Blocked numbers" "%1$s is already blocked." "Calling accounts" - "Turn on" "Set permissions" "To enable speed dial, turn on the Contacts permission." "To see your call log, turn on the Phone permission." - "To see your contacts, turn on the Contacts permission." "To access your voicemail, turn on the Phone permission." "To search your contacts, turn on the Contacts permissions." "To place a call, turn on the Phone permission." diff --git a/java/com/android/dialer/app/res/values-en-rGB/strings.xml b/java/com/android/dialer/app/res/values-en-rGB/strings.xml index 28eea8b4dc096ea823f3b23ce8fe6aa7fcaae0fb..cb7e912c7bc119c938f1c9d0a2551a107ae1d00b 100644 --- a/java/com/android/dialer/app/res/values-en-rGB/strings.xml +++ b/java/com/android/dialer/app/res/values-en-rGB/strings.xml @@ -85,6 +85,10 @@ "Return to call in progress" "Add call" "Incoming calls" + "Entering bulk action mode" + "Left bulk action mode" + "Selected %1$s" + "Unselected %1$s" "Play voicemail" "View contact %1$s" "Call %1$s" @@ -99,11 +103,13 @@ "Voicemail" "%s sec" "%s min %s sec" + "Cancel batch actions mode" "voicemail" "voicemails" "Yes" "No" "Delete selected %1$s?" + "%1$s selected" @string/call_log_header_today "%1$s at %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Loading from SIM card…" "SIM card contacts" - "No contacts app available" "Voice search not available" "Cannot make a phone call because the Phone application has been disabled." "Search contacts" @@ -145,10 +150,9 @@ "%s new missed calls" "No one is on your speed dial yet" "Add a favourite" - "You don\'t have any contacts yet" - "Add a contact" "Touch image to see all numbers, or touch & hold to re-arrange" "Remove" + "Select all" "Video call" "Send a message" "Call details" @@ -213,11 +217,9 @@ "Blocked numbers" "%1$s is already blocked." "Calling accounts" - "Turn on" "Set permissions" "To enable speed dial, turn on the Contacts permission." "To see your call log, turn on the Phone permission." - "To see your contacts, turn on the Contacts permission." "To access your voicemail, turn on the Phone permission." "To search your contacts, turn on the Contacts permissions." "To place a call, turn on the Phone permission." diff --git a/java/com/android/dialer/app/res/values-en-rIN/strings.xml b/java/com/android/dialer/app/res/values-en-rIN/strings.xml index 28eea8b4dc096ea823f3b23ce8fe6aa7fcaae0fb..cb7e912c7bc119c938f1c9d0a2551a107ae1d00b 100644 --- a/java/com/android/dialer/app/res/values-en-rIN/strings.xml +++ b/java/com/android/dialer/app/res/values-en-rIN/strings.xml @@ -85,6 +85,10 @@ "Return to call in progress" "Add call" "Incoming calls" + "Entering bulk action mode" + "Left bulk action mode" + "Selected %1$s" + "Unselected %1$s" "Play voicemail" "View contact %1$s" "Call %1$s" @@ -99,11 +103,13 @@ "Voicemail" "%s sec" "%s min %s sec" + "Cancel batch actions mode" "voicemail" "voicemails" "Yes" "No" "Delete selected %1$s?" + "%1$s selected" @string/call_log_header_today "%1$s at %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Loading from SIM card…" "SIM card contacts" - "No contacts app available" "Voice search not available" "Cannot make a phone call because the Phone application has been disabled." "Search contacts" @@ -145,10 +150,9 @@ "%s new missed calls" "No one is on your speed dial yet" "Add a favourite" - "You don\'t have any contacts yet" - "Add a contact" "Touch image to see all numbers, or touch & hold to re-arrange" "Remove" + "Select all" "Video call" "Send a message" "Call details" @@ -213,11 +217,9 @@ "Blocked numbers" "%1$s is already blocked." "Calling accounts" - "Turn on" "Set permissions" "To enable speed dial, turn on the Contacts permission." "To see your call log, turn on the Phone permission." - "To see your contacts, turn on the Contacts permission." "To access your voicemail, turn on the Phone permission." "To search your contacts, turn on the Contacts permissions." "To place a call, turn on the Phone permission." diff --git a/java/com/android/dialer/app/res/values-es-rUS/strings.xml b/java/com/android/dialer/app/res/values-es-rUS/strings.xml index 9d80bc9e2528adb279c01019ea934018ce258fc5..79d607fc781aad12568058676f3c76ff53df0115 100644 --- a/java/com/android/dialer/app/res/values-es-rUS/strings.xml +++ b/java/com/android/dialer/app/res/values-es-rUS/strings.xml @@ -85,6 +85,10 @@ "Regresar a la llamada en curso" "Agregar llamada" "Llamadas entrantes" + "Entrando al modo de acción masiva" + "Saliendo del modo de acción masiva" + "Se seleccionó %1$s" + "Se anuló la selección de %1$s" "Reproducir mensaje de voz" "Ver contacto %1$s" "Llamar a %1$s" @@ -99,11 +103,13 @@ "Correo de voz" "%s s" "%s min %s s" + "Cancelar el modo de acción masiva" "el mensaje de voz" "los mensajes de voz" "Sí" "No" "¿Deseas borrar %1$s que seleccionaste?" + "%1$s seleccionada(s)" @string/call_log_header_today "El %1$s a la hora %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Cargando desde tarjeta SIM..." "Contactos de tarjeta SIM" - "No hay aplicaciones de contactos disponibles." "Búsqueda por voz no disponible" "No se pueden realizar llamadas porque se inhabilitó la aplicación Teléfono." "Buscar contactos" @@ -145,10 +150,9 @@ "%s llamadas perdidas nuevas" "Aún no tienes contactos en la opción de marcado rápido" "Agregar un favorito" - "Aún no tienes contactos" - "Agregar un contacto" "Toca la imagen para ver todos los números o mantenla presionada para reorganizar" "Eliminar" + "Seleccionar todo" "Videollamada" "Enviar un mensaje" "Detalles de la llamada" @@ -213,11 +217,9 @@ "Números bloqueados" "%1$s ya está bloqueado." "Cuentas telefónicas" - "Activar" "Configurar permisos" "Para habilitar el marcado rápido, activa el permiso Contactos." "Para ver el registro de llamadas, activa el permiso Teléfono." - "Para ver los contactos, activa el permiso Contactos." "Para acceder al buzón de voz, activa el permiso Teléfono." "Para buscar contactos, activa el permiso Contactos." "Para realizar una llamada, activa el permiso Teléfono." diff --git a/java/com/android/dialer/app/res/values-es/strings.xml b/java/com/android/dialer/app/res/values-es/strings.xml index b7383d970110ebdf4eeb4cd91c2e3f1bece49cfa..170edc8ca604e64374a76c1bafdb190aab021b9e 100644 --- a/java/com/android/dialer/app/res/values-es/strings.xml +++ b/java/com/android/dialer/app/res/values-es/strings.xml @@ -85,6 +85,10 @@ "Volver a la llamada" "Añadir llamada" "Llamadas entrantes" + "Entrando en el modo de acción en bloque" + "Se ha salido del modo de acción en bloque" + "%1$s seleccionado" + "Selección de %1$s anulada" "Reproducir mensaje de voz" "Ver contacto %1$s" "Llamar a %1$s" @@ -99,11 +103,13 @@ "Buzón de voz" "%s s" "%s min y %s s" + "Cancelar el modo de acciones en lote" "mensaje de voz" "mensajes de voz" "Sí" "No" "¿Eliminar la selección de %1$s?" + "Se han seleccionado %1$s" @string/call_log_header_today "%1$s a las %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Cargando desde tarjeta SIM…" "Contactos de tarjeta SIM" - "No hay aplicaciones de contactos disponibles" "La búsqueda por voz no está disponible" "No se puede hacer llamadas porque se ha inhabilitado la aplicación Teléfono." "Buscar contactos" @@ -145,10 +150,9 @@ "%s llamadas perdidas nuevas" "Aún no tienes contactos en la función de marcación rápida" "Añadir un favorito" - "Aún no tienes contactos" - "Añadir un contacto" "Tocar la imagen para ver todos los números o mantenerla pulsada para cambiar el orden" "Eliminar" + "Seleccionar todo" "Videollamada" "Enviar un mensaje" "Detalles de la llamada" @@ -213,11 +217,9 @@ "Números bloqueados" "%1$s ya está bloqueado." "Cuentas de llamadas" - "Activar" "Establecer permisos" "Para habilitar la marcación rápida, activa el permiso la aplicación Contactos." "Para ver el registro de llamadas, activa el permiso de la aplicación Teléfono." - "Para ver tus contactos, activa el permiso de la aplicación Contactos." "Para acceder al buzón de voz, activa el permiso de la aplicación Teléfono." "Para poder buscar tus contactos, activa los permisos de contactos." "Para hacer una llamada, activa el permiso de la aplicación Teléfono." diff --git a/java/com/android/dialer/app/res/values-et/strings.xml b/java/com/android/dialer/app/res/values-et/strings.xml index d4e4faa59ccad29709401398d819ffad1a249759..e32b10403892da5e2a0eeec470b608c1321b105f 100644 --- a/java/com/android/dialer/app/res/values-et/strings.xml +++ b/java/com/android/dialer/app/res/values-et/strings.xml @@ -85,6 +85,10 @@ "Tagasi käimasolevale kõnele" "Lisa kõne" "Sissetulevad kõned" + "Sisenemine hulgitoimingute režiimi" + "Lahkumine hulgitoimingute režiimist" + "%1$s on valitud" + "%1$s on valimata" "Esita kõnepostisõnum" "Kuva kontakt %1$s" "Helista kasutajale %1$s" @@ -99,11 +103,13 @@ "Kõnepost" "%s s" "%s min %s s" + "Mitme toimigu režiimi tühistamine" "kõnepostisõnum" "kõnepostisõnumid" "Jah" "Ei" "Kas kustutada valitud kõnepostisõnumid %1$s?" + "%1$s on valitud" @string/call_log_header_today "%1$s kell %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Laadimine SIM-kaardilt ..." "SIM-kaardi kontaktid" - "Kontaktide rakendus pole saadaval" "Häälotsing ei ole saadaval" "Helistada ei saa, sest telefonirakendus on keelatud." "Otsige kontakte" @@ -145,10 +150,9 @@ "%s uus/uut vastamata kõne(t)" "Te pole veel kedagi kiirvalimisse lisanud" "Lisa lemmik" - "Teil pole veel kontakte" - "Lisa kontakt" "Puudutage kujutist kõigi numbrite nägemiseks või puudutage pikalt järjestuse muutmiseks" "Eemalda" + "Vali kõik" "Videokõne" "Saada sõnum" "Kõne üksikasjad" @@ -213,11 +217,9 @@ "Blokeeritud numbrid" "%1$s on juba blokeeritud." "Helistamiskontod" - "Lülita sisse" "Määra load" "Kiirvalimise lubamiseks lülitage sisse kontaktiluba." "Kõnelogi vaatamiseks lülitage sisse telefoniluba." - "Kontaktide vaatamiseks lülitage sisse kontaktiluba." "Kõnepostile juurdepääsemiseks lülitage sisse telefoniluba." "Kontaktide otsimiseks lülitage sisse kontaktiload." "Helistamiseks lülitage sisse telefoniluba." diff --git a/java/com/android/dialer/app/res/values-eu/strings.xml b/java/com/android/dialer/app/res/values-eu/strings.xml index 95f4621a490930d63123263fdc30b959c9b5deec..57ef67d883759d5de3aa919b704624d8f4940552 100644 --- a/java/com/android/dialer/app/res/values-eu/strings.xml +++ b/java/com/android/dialer/app/res/values-eu/strings.xml @@ -85,6 +85,10 @@ "Itzuli abian den deira" "Gehitu deia" "Sarrerako deiak" + "Ekintzak multzoka gauzatzeko modua aktibatzen" + "Ekintzak multzoka gauzatzeko modua desaktibatu da" + "%1$s hautatu da" + "%1$s desautatu da" "Erreproduzitu erantzungailuko ahots-mezuak" "Ikusi %1$s kontaktua" "Deitu %1$s erabiltzaileari" @@ -99,11 +103,13 @@ "Erantzungailua" "%s s" "%s min %s s" + "Utzi bertan behera ekintzak multzoka gauzatzeko modua" "ahots-mezua" "ahots-mezuak" "Bai" "Ez" "Hautatutako %1$s ezabatu?" + "%1$s hautatu dira" @string/call_log_header_today "%1$s (%2$s)" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "SIM txarteletik kargatzen…" "SIM txarteleko kontaktuak" - "Ez dago kontaktuen aplikaziorik erabilgarri" "Ahozko bilaketa ez dago erabilgarri" "Ezin da telefono-deirik egin Telefonoa aplikazioa desgaitu egin delako." "Bilatu kontaktuetan" @@ -145,10 +150,9 @@ "%s dei galdu berri" "Ez duzu inor markatze bizkorrean oraindik" "Gehitu gogokoak" - "Ez duzu kontakturik oraindik" - "Gehitu kontaktua" "Ukitu irudia zenbaki guztiak ikusteko, edo eduki ezazu sakatuta berrantolatzeko" "Kendu" + "Hautatu guztiak" "Bideo-deia" "Bidali mezua" "Deiaren xehetasunak" @@ -213,11 +217,9 @@ "Blokeatutako zenbakiak" "%1$s blokeatuta dago dagoeneko." "Deiak egiteko kontuak" - "Aktibatu" "Ezarri baimenak" "Markatze bizkorra gaitzeko, aktibatu Kontaktuak erabiltzeko baimena." "Deien erregistroa ikusteko, aktibatu Telefonoa erabiltzeko baimena." - "Kontaktuak ikusteko, aktibatu Kontaktuak erabiltzeko baimena." "Erantzungailuan sartzeko, aktibatu Telefonoa erabiltzeko baimena." "Kontaktuak bilatzeko, aktibatu kontaktuak atzitzeko baimenak." "Deiak egiteko, aktibatu Telefonoa erabiltzeko baimena." diff --git a/java/com/android/dialer/app/res/values-fa/strings.xml b/java/com/android/dialer/app/res/values-fa/strings.xml index 9c8c01b64ace7970e54d4cb0711471d9c0914457..eadb0dcb7aa9e42c61ff3f0676241af82b75a8bb 100644 --- a/java/com/android/dialer/app/res/values-fa/strings.xml +++ b/java/com/android/dialer/app/res/values-fa/strings.xml @@ -85,6 +85,10 @@ "برگشت به تماس درحال انجام" "افزودن تماس" "تماس‌های ورودی" + "درحال ورود به حالت اقدام انبوه" + "خروج از حالت اقدام انبوه" + "%1$s انتخاب شد" + "%1$s از حالت انتخاب خارج شد" "پخش پست صوتی" "مشاهده مخاطب %1$s" "تماس با %1$s" @@ -99,11 +103,13 @@ "پست صوتی" "%s ثانیه" "%s دقیقه %s ثانیه" + "لغو حالت اقدام‌ دسته‌ای" "پست صوتی" "پست‌های صوتی" "بله" "نه" "%1$s انتخاب‌شده حذف شود؟" + "%1$s مورد انتخاب شد" @string/call_log_header_today "%1$s ساعت %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "در حال بارگیری سیم کارت..." "مخاطبین سیم کارت" - "هیچ برنامه مخاطبی در دسترس نیست" "جستجوی گفتاری در دسترس نیست" "برقراری تماس تلفنی ممکن نیست، زیرا برنامه تلفن غیرفعال شده است." "جستجوی مخاطبین" @@ -145,10 +150,9 @@ "%s تماس‌ بی‌پاسخ جدید" "هنوز کسی در فهرست شماره‌گیری سریع شما نیست" "افزودن مورد دلخواه" - "هنوز هیچ مخاطبی ندارید" - "افزودن مخاطب" "برای مشاهده همه شماره‌ها، تصویر را لمس کنید، یا برای ترتیب مجدد، لمس کنید و نگه‌دارید" "حذف" + "انتخاب همه" "تماس ویدئویی" "ارسال پیام" "جزئیات تماس" @@ -213,11 +217,9 @@ "شماره‌های مسدود‌شده" "%1$s درحال‌حاضر مسدود شده است." "حساب‌های تماس" - "روشن کردن" "تنظیم مجوزها" "برای فعال کردن شماره‌گیری سریع، مجوز «مخاطبین» را روشن کنید." "برای دیدن گزارش تماستان، مجوز «تلفن» را روشن کنید." - "برای دیدن مخاطبینتان، مجوز «مخاطبین» را روشن کنید." "برای دسترسی به پست صوتی‌تان، مجوز «تلفن» را روشن کنید." "برای جستجوی مخاطبینتان، مجوزهای مخاطبین را روشن کنید." "برای برقراری تماس، مجوز «تلفن» را روشن کنید." diff --git a/java/com/android/dialer/app/res/values-fi/strings.xml b/java/com/android/dialer/app/res/values-fi/strings.xml index c5a103d48f0013c76a7cf5d6a29c30fe90830d84..9510959088519fb672e8c25b563ec7b103bf237d 100644 --- a/java/com/android/dialer/app/res/values-fi/strings.xml +++ b/java/com/android/dialer/app/res/values-fi/strings.xml @@ -85,6 +85,10 @@ "Palaa käynnissä olevaan puheluun" "Lisää puhelu" "Saapuvat puhelut" + "Siirrytään joukkotoimintotilaan." + "Poistuttiin joukkotoimintotilasta." + "%1$s valittiin." + "%1$s ei ole enää valittuna." "Toista vastaajaviesti" "Näytä yhteystieto %1$s" "Soita: %1$s" @@ -99,11 +103,13 @@ "Vastaaja" "%s s" "%s min %s s" + "Peruuta joukkotoimintotila." "vastaajaviesti" "vastaajaviestit" "Kyllä" "Ei" "Poistetaanko %1$s?" + "%1$s valittu" @string/call_log_header_today "%1$s klo %2$s" "%1$02d.%2$02d" @@ -116,7 +122,6 @@ "MEID" "Ladataan SIM-kortilta…" "SIM-kortin yhteystiedot" - "Ei käytettävissä olevaa yhteystietosovellusta" "Puhehaku ei ole käytettävissä" "Puhelua ei voi soittaa, koska Puhelin-sovellus on poistettu käytöstä." "Hae yhteystiedoista" @@ -145,10 +150,9 @@ "%s uutta vastaamatonta puhelua" "Pikavalinnassa ei ole vielä yhtään yhteystietoa." "Lisää suosikki" - "Sinulla ei ole yhteystietoja." - "Lisää yhteystieto" "Katso kaikki numerot koskettamalla kuvaa tai järjestele tietoja koskettamalla kuvaa pitkään." "Poista" + "Valitse kaikki" "Videopuhelu" "Lähetä viesti" "Puhelun tiedot" @@ -213,11 +217,9 @@ "Estetyt numerot" "%1$s on jo estetty." "Puhelutilit" - "Ota käyttöön" "Määritä käyttöoikeudet" "Jos haluat käyttää pikavalintaa, ota Yhteystiedot-käyttöoikeus käyttöön." "Jos haluat katsella puhelulokiasi, ota Puhelin-käyttöoikeus käyttöön." - "Jos haluat katsella yhteystietojasi, ota Yhteystiedot-käyttöoikeus käyttöön." "Jos haluat käyttää puhelinvastaajaa, ota Puhelin-käyttöoikeus käyttöön." "Jos haluat hakea kontaktejasi, ota käyttöön kontaktien käyttöoikeudet." "Jos haluat soittaa puheluja, ota Puhelin-käyttöoikeus käyttöön." diff --git a/java/com/android/dialer/app/res/values-fr-rCA/strings.xml b/java/com/android/dialer/app/res/values-fr-rCA/strings.xml index d557d7442db80a2538a8bb22dbc0b9986e4cce24..6aa285c501d452e1229b8d96780dfc4c3413d6a0 100644 --- a/java/com/android/dialer/app/res/values-fr-rCA/strings.xml +++ b/java/com/android/dialer/app/res/values-fr-rCA/strings.xml @@ -85,6 +85,10 @@ "Reprendre l\'appel en cours" "Autre appel" "Appels entrants" + "Entrée du mode d\'action groupée en cours…" + "Mode d\'action groupée quitté" + "Sélection : %1$s" + "Désélection : %1$s" "Écouter le message vocal" "Afficher le contact %1$s" "Appeler %1$s" @@ -99,11 +103,13 @@ "Messagerie vocale" "%s s" "%s min et %s sec" + "Annuler le mode d\'action par lots" "message vocal" "messages vocaux" "Oui" "Non" "Supprimer la sélection (%1$s)?" + "%1$s sélection(s)" @string/call_log_header_today "%1$s à %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Chargement depuis la carte SIM..." "Contacts de carte SIM" - "Aucune application de gestion des contacts n\'est disponible" "Recherche vocale non disponible" "Impossible d\'effectuer un appel téléphonique, car l\'application Téléphone a été désactivée." "Rechercher des contacts" @@ -145,10 +150,9 @@ "%s nouveaux appels manqués" "Aucun contact ne figure dans vos numéros de composition abrégée" "Ajouter un favori" - "Vous n\'avez pas encore de contacts" - "Ajouter un contact" "Touchez l\'image pour afficher tous les numéros, ou maintenez le doigt dessus pour les réorganiser" "Supprimer" + "Tout sélectionner" "Appel vidéo" "Envoyer un message" "Détails de l\'appel" @@ -213,11 +217,9 @@ "Numéros bloqués" "Le numéro %1$s est déjà bloqué." "Comptes d\'appel" - "Activer" "Définir les autorisations" "Pour activer la composition abrégée, activez l\'autorisation Contacts." "Pour consulter votre journal d\'appels, activez l\'autorisation Téléphone." - "Pour consulter vos contacts, activez l\'autorisation Contacts." "Pour accéder à votre messagerie vocale, activez l\'autorisation Téléphone." "Pour rechercher vos contacts et les lieux à proximité, activez les autorisations Contacts." "Pour faire un appel, activez l\'autorisation Téléphone." diff --git a/java/com/android/dialer/app/res/values-fr/strings.xml b/java/com/android/dialer/app/res/values-fr/strings.xml index d8a59395be2a2b4b68ed299111115fdd19a7a600..f539d2e550afc57386980a5c430d50743f961f02 100644 --- a/java/com/android/dialer/app/res/values-fr/strings.xml +++ b/java/com/android/dialer/app/res/values-fr/strings.xml @@ -85,6 +85,10 @@ "Reprendre l\'appel en cours" "Autre appel" "Appels entrants" + "Activation du mode d\'action groupée" + "Désactivation du mode d\'action groupée" + "%1$s sélectionné" + "%1$s désélectionné" "Écouter le message vocal" "Afficher le contact %1$s" "Appeler %1$s" @@ -99,11 +103,13 @@ "Messagerie vocale" "%s secondes" "%s min et %s s" + "Annuler le mode d\'actions groupées" "message vocal" "messages vocaux" "Oui" "Non" "Supprimer les messages vocaux sélectionnés (%1$s) ?" + "%1$s sélectionnés" @string/call_log_header_today "%1$s à %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Chargement depuis la carte SIM..." "Contacts de carte SIM" - "Aucune application de gestion des contacts n\'est disponible." "Recherche vocale non disponible" "Impossible d\'effectuer un appel téléphonique, car l\'application Téléphone a été désactivée." "Rech. des contacts" @@ -145,10 +150,9 @@ "Nouveaux appels manqués : %s" "Aucun contact pour la numérotation abrégée" "Ajouter un favori" - "Vous n\'avez pas encore de contacts." - "Ajouter un contact" "Appuyer sur l\'image pour afficher tous les numéros, ou appuyer dessus de manière prolongée pour réorganiser ces derniers" "Supprimer" + "Tout sélectionner" "Appel vidéo" "Envoyer un message" "Informations sur l\'appel" @@ -213,11 +217,9 @@ "Numéros bloqués" "Le numéro \"%1$s\" est déjà bloqué." "Comptes téléphoniques" - "Activer" "Définir les autorisations" "Pour activer la numérotation abrégée, activez l\'autorisation Contacts." "Pour consulter votre journal d\'appels, activez l\'autorisation Téléphone." - "Pour consulter vos contacts, activez l\'autorisation Contacts." "Pour accéder à votre messagerie vocale, activez l\'autorisation Téléphone." "Pour rechercher vos contacts, activez l\'autorisation Contacts." "Pour passer un appel, activez l\'autorisation Téléphone." diff --git a/java/com/android/dialer/app/res/values-gl/strings.xml b/java/com/android/dialer/app/res/values-gl/strings.xml index 33b55a740281aacd4339b8789c13da54dbd52165..ca31c5e4706a83aeefc8ae96fa0d28a518a5a2b5 100644 --- a/java/com/android/dialer/app/res/values-gl/strings.xml +++ b/java/com/android/dialer/app/res/values-gl/strings.xml @@ -85,6 +85,10 @@ "Volver á chamada en curso" "Engadir chamada" "Chamadas entrantes" + "Entrando no modo de acción masiva" + "Saíu do modo de acción masiva" + "Seleccionouse: %1$s" + "Anulouse a selección de: %1$s" "Reproducir correo de voz" "Ver contacto %1$s" "Chamar a %1$s" @@ -99,11 +103,13 @@ "Correo de voz" "%s s" "%s min %s s" + "Cancela o modo de accións en lote" "correo de voz" "correos de voz" "Si" "Non" "Queres eliminar a selección (%1$s)?" + "Cantidade seleccionada: %1$s" @string/call_log_header_today "%1$s ás %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Cargando da tarxeta SIM..." "Contactos da tarxeta SIM" - "Non hai aplicacións de contactos dispoñibles" "Busca por voz non dispoñible" "Non se pode facer unha chamada telefónica porque se desactivou a aplicación de teléfono." "Buscar contactos" @@ -145,10 +150,9 @@ "%s chamadas perdidas novas" "Aínda non tes ningún contacto na marcación directa" "Engade un favorito para a marcación directa" - "Aínda non tes contactos" - "Engade un contacto" "Toca a imaxe para ver todos os números ou mantena premida para reordenalos" "Eliminar" + "Seleccionar todos" "Videochamada" "Enviar unha mensaxe" "Detalles da chamada" @@ -213,11 +217,9 @@ "Números bloqueados" "O %1$s xa está bloqueado." "Contas de chamadas" - "Activar" "Establecer permisos" "Para activar a marcación rápida, activa o permiso de Contactos." "Para ver o teu rexistro de chamadas, activa o permiso de Teléfono." - "Para ver os teus contactos, activa o permiso de Contactos." "Para acceder ao correo de voz, activa o permiso de Teléfono." "Para buscar os teus contactos, activa os permisos de Contactos." "Para facer unha chamada, activa o permiso de Teléfono." diff --git a/java/com/android/dialer/app/res/values-gu/strings.xml b/java/com/android/dialer/app/res/values-gu/strings.xml index 1df18269ee65751726e985fb81649c696f92b004..fbe4d0aaabc14b1559faa00b7d8c40c94640528e 100644 --- a/java/com/android/dialer/app/res/values-gu/strings.xml +++ b/java/com/android/dialer/app/res/values-gu/strings.xml @@ -85,6 +85,10 @@ "કૉલ પર પાછા આવવું પ્રગતિ પર છે" "કૉલ ઉમેરો" "ઇનકમિંગ કૉલ્સ" + "બલ્ક ક્રિયા મોડમાં દાખલ થઈ રહ્યાં છે" + "બલ્ક ક્રિયા મોડ છોડી દીધો" + "%1$s પસંદ કર્યો" + "%1$s પસંદગીમાંથી દૂર કર્યો" "વૉઇસમેઇલ ચલાવો" "%1$s સંપર્ક જુઓ" "%1$s ને કૉલ કરો" @@ -99,11 +103,13 @@ "વૉઇસમેઇલ" "%s સેકંડ" "%s મિ %s સે" + "બૅચ ક્રિયા મોડ રદ કરો" "વૉઇસમેઇલ" "વૉઇસમેઇલ" "હા" "નહીં" "પસંદ કરેલ %1$sને કાઢી નાખીએ?" + "%1$s પસંદ કરી" @string/call_log_header_today "%1$s નાં રોજ %2$s વાગ્યે" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "SIM કાર્ડમાંથી લોડ કરી રહ્યું છે…" "SIM કાર્ડ સંપર્કો" - "કોઈ સંપર્કો ઍપ્લિકેશન ઉપલબ્ધ નથી" "વૉઇસ શોધ ઉપલબ્ધ નથી" "ફોન કૉલ કરી શકાતો નથી કારણ કે ફોન ઍપ્લિકેશન અક્ષમ કરવામાં આવી છે." "સંપર્કો શોધો" @@ -145,10 +150,9 @@ "%s નવા છૂટેલા કૉલ્સ" "તમારા ઝડપી ડાયલ પર હજી સુધી કોઇ નથી" "એક મનપસંદ ઉમેરો" - "તમે હજી સુધી કોઇપણ સંપર્કો ધરાવતાં નથી" - "સંપર્ક ઉમેરો" "બધા નંબર્સ જોવા માટે છબી ટચ કરો અથવા પુનઃક્રમાંકિત કરવા માટે ટચ કરો અને પકડી રાખો" "દૂર કરો" + "તમામ પસંદ કરો" "વિડિઓ કૉલ" "એક સંદેશ મોકલો" "કૉલની વિગતો" @@ -213,11 +217,9 @@ "અવરોધિત નંબરો" "%1$s ને પહેલેથી અવરોધિત કરવામાં આવ્યો છે." "કૉલિંગ એકાઉન્ટ્સ" - "ચાલુ કરો" "પરવાનગીઓ સેટ કરો" "ઝડપી ડાયલ સક્ષમ કરવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો." "તમારો કૉલ લૉગ જોવા માટે, ફોન પરવાનગી ચાલુ કરો." - "તમારા સંપર્કો જોવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો." "તમારી વૉઇસમેઇલને ઍક્સેસ કરવા માટે, ફોન પરવાનગી ચાલુ કરો." "તમારા સંપર્કો શોધવા માટે, સંપર્કોની પરવાનગીઓ ચાલુ કરો." "કૉલ કરવા માટે, ફોન પરવાનગી ચાલુ કરો." diff --git a/java/com/android/dialer/app/res/values-hi/strings.xml b/java/com/android/dialer/app/res/values-hi/strings.xml index 84d2d974a6740f7bac46f9bac1b94abb841295ba..c998e4402cc70a3bab0d15cabaca03fe92fc09b0 100644 --- a/java/com/android/dialer/app/res/values-hi/strings.xml +++ b/java/com/android/dialer/app/res/values-hi/strings.xml @@ -85,6 +85,10 @@ "कॉल पर लौटना प्रगति पर है" "कॉल जोड़ें" "इनकमिंग कॉल" + "बल्क कार्रवाई मोड में प्रवेश कर रहे हैं" + "बल्क कार्रवाई मोड छोड़ा" + "%1$s को चुना गया" + "%1$s को नहीं चुना गया" "ध्‍वनिमेल चलाएं" "%1$s संपर्क देखें" "%1$s को कॉल करें" @@ -99,11 +103,13 @@ "वॉयस मेल" "%s सेकंड" "%s मि. %s से." + "बैच कार्रवाई मोड रद्द करें" "वॉयसमेल" "वॉयसमेल" "हां" "नहीं" "क्या चुने गए %1$s हटाना चाहते हैं?" + "%1$s चयनित" @string/call_log_header_today "%1$s को %2$s बजे" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "सिम कार्ड से लोड हो रहा है…" "सिम कार्ड के संपर्क" - "कोई भी संपर्क ऐप उपलब्‍ध नहीं है" "बोलकर खोजना उपलब्‍ध नहीं है" "फ़ोन कॉल नहीं किया जा सकता क्योंकि फ़ोन ऐप्लिकेशन अक्षम कर दिया गया है." "संपर्क खोजें" @@ -145,10 +150,9 @@ "%s छूटे हुए नए कॉल" "आपके स्‍पीड डायल पर अभी तक कोई भी नहीं है" "कोई पसंदीदा जोड़ें" - "आपके पास अभी कोई भी संपर्क नहीं है" - "कोई संपर्क जोड़ें" "सभी नंबर देखने के लिए चित्र को स्‍पर्श करें या पुन: क्रमित करने के लिए स्‍पर्श करके रखें" "निकालें" + "सभी चुनें" "वीडियो कॉल" "संदेश भेजें" "कॉल विवरण" @@ -213,11 +217,9 @@ "अवरोधित नंबर" "%1$s पहले से अवरोधित है." "कॉलिंग खाते" - "चालू करें" "अनुमतियां सेट करें" "स्पीड डायल सक्षम करने के लिए, संपर्क अनुमति चालू करें." "अपना कॉल लॉग देखने के लिए, फ़ोन अनुमति चालू करें." - "अपने संपर्क देखने के लिए, संपर्क अनुमति चालू करें." "अपना वॉइसमेल ऐक्सेस करने के लिए, फ़ोन अनुमति चालू करें." "अपने संपर्कों की खोज करने के लिए, संपर्क अनुमतियों को चालू करें." "कॉल करने के लिए, फ़ोन अनुमति चालू करें." diff --git a/java/com/android/dialer/app/res/values-hr/strings.xml b/java/com/android/dialer/app/res/values-hr/strings.xml index cd353537247e671b6d8376a83129cfc5acae939f..5261cfb0dace4cb65ca819042a9a5c30e0f44b43 100644 --- a/java/com/android/dialer/app/res/values-hr/strings.xml +++ b/java/com/android/dialer/app/res/values-hr/strings.xml @@ -86,6 +86,10 @@ "Natrag na poziv u tijeku" "Dodaj poziv" "Dolazni pozivi" + "Ulazak u način skupne radnje" + "Napuštanje načina skupne radnje" + "Odabrano: %1$s" + "Poništen odabir: %1$s" "Reprodukcija govorne pošte" "Prikaz kontakta %1$s" "Nazovi %1$s" @@ -100,11 +104,13 @@ "Govorna pošta" "%s s" "%s min %s s" + "Otkaži način skupnih radnji" "poruka govorne pošte" "poruke govorne pošte" "Da" "Ne" "Želite li izbrisati odabranu poruku/e govorne pošte %1$s?" + "Odabrano: %1$s" @string/call_log_header_today "%1$s u %2$s" "%1$02d.%2$02d" @@ -117,7 +123,6 @@ "MEID" "Učitavanje sa SIM kartice..." "Kontakti SIM kartice" - "Nije dostupna nijedna aplikacija za kontakte" "Glasovno pretraživanje nije dostupno" "Telefoniranje nije moguće jer je aplikacija Telefon onemogućena." "Pretraži kontakte" @@ -146,10 +151,9 @@ "Broj novih propuštenih poziva: %s" "Još nemate nikog na brzom biranju" "Dodaj omiljeni kontakt" - "Još nemate nijedan kontakt" - "Dodajte kontakt" "Dodirnite sliku da biste vidjeli sve brojeve ili dodirnite i zadržite da biste promijenili redoslijed" "Ukloni" + "Odaberi sve" "Videopoziv" "Pošalji poruku" "Pojedinosti poziva" @@ -215,11 +219,9 @@ "Blokirani brojevi" "Broj %1$s već je blokiran." "Pozivanje računa" - "Uključi" "Postavi dopuštenja" "Da biste omogućili brzo biranje, uključite dopuštenje za kontakte." "Da biste vidjeli zapisnik poziva, uključite dopuštenje za telefon." - "Da biste vidjeli svoje kontakte, uključite dopuštenje za kontakte." "Da biste pristupili govornoj pošti, uključite dopuštenje za telefon." "Da biste pretraživali kontakte, uključite dopuštenja za kontakte." "Da biste nazvali nekog, uključite dopuštenje za telefon." diff --git a/java/com/android/dialer/app/res/values-hu/strings.xml b/java/com/android/dialer/app/res/values-hu/strings.xml index 2e64d745d4f58a7e9f050101169217370cf91815..452f0da47d09b8edb28df882f5c6a3f6159a444e 100644 --- a/java/com/android/dialer/app/res/values-hu/strings.xml +++ b/java/com/android/dialer/app/res/values-hu/strings.xml @@ -85,6 +85,10 @@ "Vissza a folyamatban lévő híváshoz" "Hívás hozzáadása" "Bejövő hívások" + "Belépés tömeges műveleti módba" + "Kilépett a tömeges műveleti módból" + "Kijelölés: %1$s" + "Kijelölés megszüntetve: %1$s" "Hangposta lejátszása" "%1$s névjegyének megtekintése" "%1$s hívása" @@ -99,11 +103,13 @@ "Hangposta" "%s másodperc" "%s perc %s másodperc" + "Köteges művelet mód leállítva" "hangpostaüzenetet" "hangpostaüzeneteket" "Igen" "Nem" "Törli a kiválasztott %1$s?" + "%1$s kiválasztva" @string/call_log_header_today "%1$s, %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Betöltés a SIM kártyáról..." "Névjegyek a SIM kártyán" - "Nincs elérhető névjegyek alkalmazás" "A hangalapú keresés nem érhető el" "Nem lehet telefonhívást kezdeményezni, mert a Telefon alkalmazást letiltották." "Keresés a névjegyek között" @@ -145,10 +150,9 @@ "%s új nem fogadott hívás" "Még semelyik telefonszám sincs gyorshívón" "Kedvenc hozzáadása" - "Még nem rendelkezik egyetlen névjeggyel sem" - "Névjegy hozzáadása" "Koppintson a képre az összes szám megjelenítéséhez, vagy tartsa nyomva az átrendezéshez" "Eltávolítás" + "Az összes kijelölése" "Videohívás" "Üzenet küldése" "Hívás adatai" @@ -213,11 +217,9 @@ "Letiltott számok" "A következő szám már le van tiltva: %1$s." "Telefonos fiókok" - "Engedélyezés" "Engedélyek beállítása" "Gyorshívás engedélyezéséhez kapcsolja be a Névjegyek engedélyt." "A hívásnapló megtekintéséhez kapcsolja be a Telefon engedélyt." - "A névjegyek megtekintéséhez kapcsolja be a Névjegyek engedélyt." "A hangposta eléréséhez kapcsolja be a Telefon engedélyt." "A névjegyek kereséséhez adja meg a Névjegyek engedélyeket." "Hívásindításhoz kapcsolja be a Telefon engedélyt." diff --git a/java/com/android/dialer/app/res/values-hy/strings.xml b/java/com/android/dialer/app/res/values-hy/strings.xml index 6f3931c9f67a23403d88beb08110b917a216ac26..97a84f2feff1c40a8c4d8e47122fb0b5321a91d9 100644 --- a/java/com/android/dialer/app/res/values-hy/strings.xml +++ b/java/com/android/dialer/app/res/values-hy/strings.xml @@ -85,6 +85,10 @@ "Վերադառնալ ընթացիկ զանգին" "Ավելացնել զանգ" "Մուտքային զանգեր" + "Մուտք զանգվածային գործողությունների ռեժին" + "Դուք դուրս եկաք զանգվածային գործողությունների ռեժիմից" + "Ընտրվեց՝ %1$s" + "Ապընտրվեց՝ %1$s" "Նվագարկել ձայնային փոստը" "Դիտել %1$s կոնտակտը" "Զանգել %1$s-ին" @@ -99,11 +103,13 @@ "Ձայնային փոստ" "%s վրկ" "%s րոպե %s վայրկյան" + "Չեղարկել փաթեթային գործողությունների ռեժիմը" "ձայնային հաղորդագրություն" "ձայնային հաղորդագրություններ" "Այո" "Ոչ" "Ջնջե՞լ նշված %1$sը" + "Ընտրվել է՝ %1$s" @string/call_log_header_today "%1$s-ին, ժամը %2$s-ին" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "SIM քարտը բեռնվում է..." "SIM քարտի կոնտակտները" - "Կոնտակտների հավելված չկա" "Ձայնային որոնումը հասանելի չէ" "Հնարավոր չէ զանգահարել, քանի որ Հեռախոս հավելվածն անջատված է:" "Կոնտակտների որոնում" @@ -145,10 +150,9 @@ "%s նոր բաց թողնված զանգ" "Արագ համարահավաքման ցանկը դատարկ է" "Ավելացնել կոնտակտ" - "Դեռ կոնտակտներ չունեք" - "Ավելացնել կոնտակտ" "Բոլոր համարները տեսնելու համար հպեք պատկերին: Վերադասավորելու համար հպեք և պահեք:" "Հեռացնել" + "Ընտրել բոլորը" "Տեսազանգ" "Ուղարկել հաղորդագրություն" "Զանգի մանրամասները" @@ -213,11 +217,9 @@ "Արգելափակված համարներ" "%1$s համարն արդեն արգելափակված է:" "Հաշիվներ զանգերի համար" - "Միացնել" "Թույլտվությունների սահմանում" "Արագ համարահավաքը թույլատրելու համար միացրեք Կոնտակտների թույլտվությունը:" "Ձեր զանգերի մատյանը տեսնելու համար միացրեք Հեռախոսի թույլտվությունը:" - "Ձեր կոնտակտները տեսնելու համար միացրեք Կոնտակտների թույլտվությունը:" "Ձայնային փոստն օգտագործելու համար միացրեք Հեռախոսի թույլտվությունը:" "Կոնտակտները որոնելու համար միացրեք Կոնտակտների թույլտվությունները:" "Զանգ կատարելու համար միացրեք Հեռախոսի թույլտվությունը:" diff --git a/java/com/android/dialer/app/res/values-in/strings.xml b/java/com/android/dialer/app/res/values-in/strings.xml index c0de9b3b496ca4dead49490869fc21f1dae93fc2..f309f927b3611ad5317d6dc113fea008e356bcf5 100644 --- a/java/com/android/dialer/app/res/values-in/strings.xml +++ b/java/com/android/dialer/app/res/values-in/strings.xml @@ -85,6 +85,10 @@ "Kembali ke panggilan sedang berlangsung" "Tambahkan panggilan" "Panggilan masuk" + "Masuk ke mode tindakan massal" + "Keluar dari mode tindakan massal" + "%1$s dipilih" + "%1$s tidak dipilih" "Putar pesan suara" "Lihat kontak %1$s" "Telepon %1$s" @@ -99,11 +103,13 @@ "Kotak Pesan" "%s dtk" "%s mnt %s dtk" + "Membatalkan mode tindakan kelompok" "pesan suara" "pesan suara" "Ya" "Tidak" "Hapus %1$s yang dipilih?" + "%1$s dipilih" @string/call_log_header_today "%1$s pukul %2$s" "%1$02d.%2$02d" @@ -116,7 +122,6 @@ "MEID" "Memuat dari kartu SIM..." "Kontak pada kartu SIM" - "Aplikasi kontak tidak tersedia" "Penelusuran suara tidak tersedia" "Tidak dapat melakukan panggilan telepon karena aplikasi Telepon telah dinonaktifkan." "Telusuri kontak" @@ -145,10 +150,9 @@ "%s panggilan tidak terjawab baru" "Daftar panggilan cepat masih kosong" "Tambahkan favorit" - "Anda belum memiliki kontak" - "Tambahkan kontak" "Sentuh foto untuk melihat semua nomor atau sentuh & tahan untuk menyusun ulang" "Hapus" + "Pilih semua" "Panggilan video" "Kirim pesan" "Detail panggilan" @@ -213,11 +217,9 @@ "Nomor yang diblokir" "%1$s sudah diblokir." "Akun panggilan" - "Aktifkan" "Setel izin" "Untuk mengaktifkan panggilan cepat, aktifkan izin Kontak." "Untuk melihat log panggilan, aktifkan izin Telepon." - "Untuk melihat kontak, aktifkan izin Kontak." "Untuk mengakses pesan suara, aktifkan izin Telepon." "Untuk menelusuri kontak, aktifkan izin Kontak." "Untuk melakukan panggilan, aktifkan izin Telepon." diff --git a/java/com/android/dialer/app/res/values-is/strings.xml b/java/com/android/dialer/app/res/values-is/strings.xml index fdd63566827f308cc87bf219af23d796b5a19e41..b291eae84a31717417e7b62e45b2bac14e652b42 100644 --- a/java/com/android/dialer/app/res/values-is/strings.xml +++ b/java/com/android/dialer/app/res/values-is/strings.xml @@ -85,6 +85,10 @@ "Fara aftur í símtal í gangi" "Bæta við símtali" "Móttekin símtöl" + "Opnar fjöldaaðgerðastillingu" + "Fjöldaaðgerðastillingu lokað" + "Valdi %1$s" + "Fjarlægði val á %1$s" "Spila talhólfsskilaboð" "Skoða tengiliðinn %1$s" "Hringja í %1$s" @@ -99,11 +103,13 @@ "Talhólf" "%s sek." "%s mín. og %s sek." + "Hætta við runuaðgerðastillingu" "talhólfsskilaboð" "talhólfsskilaboð" "Já" "Nei" "Eyða völdum %1$s?" + "%1$s valin" @string/call_log_header_today "%1$s kl. %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Hleður af SIM-kortinu…" "Tengiliðir á SIM-korti" - "Ekkert tengiliðaforrit í boði" "Raddleit er ekki í boði" "Ekki er hægt að hringja vegna þess að forritið Sími hefur verið gert óvirkt." "Leita í tengiliðum" @@ -145,10 +150,9 @@ "%s ný ósvöruð símtöl" "Þú ert ekki með neinn í hraðvali enn sem komið er" "Bæta uppáhaldi við" - "Þú ert ekki með neina tengiliði enn sem komið er" - "Bæta tengilið við" "Snertu myndina til að sjá öll númer eða haltu henni inni til að endurraða" "Fjarlægja" + "Velja allt" "Myndsímtal" "Senda skilaboð" "Símtalsupplýsingar" @@ -213,11 +217,9 @@ "Númer á bannlista" "%1$s er nú þegar á bannlista." "Símtalareikningar" - "Kveikja" "Stilla heimildir" "Kveiktu á tengiliðaheimildinni til að gera hraðval virkt." "Kveiktu á heimild símaforritsins til að sjá símtalaskrána þína." - "Kveiktu á tengiliðaheimildinni til að sjá tengiliðina þína." "Kveiktu á heimild símaforritsins til að fá aðgang að talhólfinu þínu." "Kveiktu á heimildunum fyrir tengiliði til að leita að tengiliðum." "Kveiktu á heimild símaforritsins til að hringja símtal." diff --git a/java/com/android/dialer/app/res/values-it/strings.xml b/java/com/android/dialer/app/res/values-it/strings.xml index 9bd8cd359996182f0c766397411abcd42492647c..711ab26eebf9975938701cf355ca654d0eac7494 100644 --- a/java/com/android/dialer/app/res/values-it/strings.xml +++ b/java/com/android/dialer/app/res/values-it/strings.xml @@ -85,6 +85,10 @@ "Torna alla chiamata in corso" "Aggiungi chiamata" "Chiamate in arrivo" + "Attivazione della modalità di azione collettiva" + "Disttivazione della modalità di azione collettiva" + "%1$s selezionato" + "%1$s deselezionato" "Riproduci messaggio vocale" "Visualizza %1$s contatto" "Chiama %1$s" @@ -99,11 +103,13 @@ "Segreteria" "%s secondi" "%s min %s s" + "Annulla modalità di azione collettiva" "messaggio vocale" "messaggi vocali" "Sì" "No" "Eliminare i %1$s selezionati?" + "%1$s selezionate" @string/call_log_header_today "%1$s alle ore %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Caricamento da SIM..." "Contatti SIM" - "Nessuna app di contatti disponibile" "Ricerca vocale non disponibile" "Impossibile effettuare una telefonata perché l\'applicazione Telefono è stata disattivata." "Cerca contatti" @@ -145,10 +150,9 @@ "%s nuove chiamate perse" "Nessun preferito disponibile nella Composizione rapida" "Aggiungi un preferito" - "Nessun contatto disponibile" - "Aggiungi un contatto" "Tocca l\'immagine per visualizzare tutti i numeri oppure tieni premuto per cambiare l\'ordine" "Rimuovi" + "Seleziona tutto" "Videochiamata" "Invia un messaggio" "Dettagli chiamata" @@ -213,11 +217,9 @@ "Numeri bloccati" "%1$s è già bloccato." "Account di chiamata" - "Attiva" "Imposta autorizzazioni" "Per attivare la composizione rapida, attiva l\'autorizzazione Contatti." "Per accedere al registro chiamate, attiva l\'autorizzazione sul telefono." - "Per accedere ai tuoi contatti, attiva l\'autorizzazione Contatti." "Per accedere alla segreteria, attiva l\'autorizzazione sul telefono." "Per cercare nei tuoi contatti, attiva le autorizzazioni Contatti." "Per fare una chiamata, attiva l\'autorizzazione sul telefono." diff --git a/java/com/android/dialer/app/res/values-iw/strings.xml b/java/com/android/dialer/app/res/values-iw/strings.xml index bb115e2f88581fc2ee88dfed0902a3ccfe8abb69..bd2a05aec1ac83d21191692ca6eb313645945b61 100644 --- a/java/com/android/dialer/app/res/values-iw/strings.xml +++ b/java/com/android/dialer/app/res/values-iw/strings.xml @@ -87,6 +87,10 @@ "חזור לשיחה פעילה" "הוסף שיחה" "שיחות נכנסות" + "עברת למצב של ביצוע פעולות בכמות גדולה" + "עזבת את המצב של ביצוע פעולות בכמות גדולה" + "בחרת את %1$s" + "ביטלת את הבחירה של %1$s" "הפעל דואר קולי" "הצג את איש הקשר %1$s" "התקשר אל %1$s" @@ -101,11 +105,13 @@ "דואר קולי" "%s שניות" "%s דק\' %s שנ\'" + "ביטול המצב של ביצוע פעולות בכמות גדולה" "ההודעה הקולית" "ההודעות הקוליות" "כן" "לא" "האם למחוק את %1$s שבחרת?" + "%1$s נבחרו" @string/call_log_header_today "%1$s ב-%2$s" "%1$02d:%2$02d" @@ -118,7 +124,6 @@ "MEID" "‏טוען מכרטיס SIM…" "‏אנשי קשר בכרטיס SIM" - "אין אפליקציה זמינה עבור אנשי קשר" "חיפוש קולי אינו זמין" "לא ניתן לבצע שיחת טלפון מפני שאפליקציית הטלפון הושבתה." "חפש אנשי קשר" @@ -147,10 +152,9 @@ "%s שיחות חדשות שלא נענו" "עדיין לא הוגדר חיוג מהיר לאף איש קשר" "הוסף פריט מועדף" - "עדיין אין לך אנשי קשר" - "הוסף איש קשר" "גע בתמונה כדי להציג את כל המספרים או גע והחזק כדי לשנות את הסדר" "הסר" + "בחירת הכל" "שיחת וידאו" "שלח הודעה" "פרטי שיחה" @@ -217,11 +221,9 @@ "מספרים חסומים" "%1$s כבר חסום." "חשבונות לביצוע שיחות" - "הפעל" "הגדר הרשאות" "כדי להפעיל חיוג מהיר, הפעל את ההרשאה \'אנשי קשר\'." "כדי לראות את יומן השיחות, הפעל את ההרשאה \'טלפון\'." - "כדי להציג את אנשי הקשר, הפעל את ההרשאה \'אנשי קשר\'." "כדי לגשת לדואר הקולי, הפעל את ההרשאה \'טלפון\'." "כדי לחפש באנשי הקשר, הפעל את ההרשאה \'אנשי קשר\'." "כדי להתקשר, הפעל את ההרשאה \'טלפון\'." diff --git a/java/com/android/dialer/app/res/values-ja/strings.xml b/java/com/android/dialer/app/res/values-ja/strings.xml index 63b15cbede38a0a2f2e4fd6f3205f0faec4e3c52..9ba40fb8f8c84de517a9c354905f67fd7fb3faa0 100644 --- a/java/com/android/dialer/app/res/values-ja/strings.xml +++ b/java/com/android/dialer/app/res/values-ja/strings.xml @@ -85,6 +85,10 @@ "通話に戻る" "別の通話を追加" "着信" + "一括操作モードを開始します" + "一括操作モードを終了しました" + "%1$s を選択しました" + "%1$s を選択解除しました" "ボイスメールを再生" "%1$sの連絡先を表示" "%1$sに発信" @@ -99,11 +103,13 @@ "ボイスメール" "%s秒" "%s%s秒" + "一括操作モードをキャンセルします" "ボイスメール" "ボイスメール" "はい" "いいえ" "選択した%1$sを削除しますか?" + "%1$s 件選択済み" @string/call_log_header_today "%1$s%2$s" "%1$02d%2$02d 秒" @@ -116,7 +122,6 @@ "MEID" "SIMカードから読み取り中..." "SIMカードの連絡先" - "連絡先アプリがありません" "音声検索を利用できません" "電話アプリが無効になっているため発信できません。" "連絡先を検索" @@ -145,10 +150,9 @@ "%s件の不在着信" "クイックアクセスに登録済みの連絡先はまだありません" "お気に入りを追加" - "連絡先はまだありません" - "連絡先を追加" "画像をタップするとすべての番号が表示され、押し続けると番号を並べ替えることができます" "削除" + "すべて選択" "ビデオハングアウト" "メッセージを送信" "通話の詳細" @@ -213,11 +217,9 @@ "ブロックした番号" "%1$sは既にブロックしています。" "通話アカウント" - "ONにする" "権限を設定" "クイックアクセスを有効にするには、連絡先権限をONにしてください。" "通話履歴を表示するには、電話権限をONにしてください。" - "連絡先を表示するには、連絡先権限をONにしてください。" "ボイスメールにアクセスするには、電話権限をONにしてください。" "連絡先を検索するには、連絡先権限をONにしてください。" "電話をかけるには、電話権限をONにしてください。" diff --git a/java/com/android/dialer/app/res/values-ka/strings.xml b/java/com/android/dialer/app/res/values-ka/strings.xml index ae89505b5c3f6e02a8ece1728a0794c74433bc6e..dbb48f4f5091b6d8ef9d6e86f2f8fb9423092be4 100644 --- a/java/com/android/dialer/app/res/values-ka/strings.xml +++ b/java/com/android/dialer/app/res/values-ka/strings.xml @@ -85,6 +85,10 @@ "მიმდინარე ზარზე დაბრუნება" "ზარის დამატება" "შემომავალი ზარები" + "მიმდინარეობს ერთიანი ქმედების რეჟიმში შესვლა" + "ერთიანი ქმედების რეჟიმიდან გამოხვედით" + "არჩეულია %1$s" + "%1$s-ის არჩევა გაუქმდა" "ხმოვანი ფოსტის ჩართვა" "კონტაქტის %1$s ნახვა" "%1$s-თან დარეკვა" @@ -99,11 +103,13 @@ "ხმოვანი ფოსტა" "%s წმ" "%s მინ %s წამ" + "ერთიანი ქმედების რეჟიმის გაუქმება" "ხმოვანი ფოსტა" "ხმოვანი ფოსტა" "დიახ" "არა" "გსურთ, წაშალოთ არჩეული %1$s?" + "არჩეულია %1$s" @string/call_log_header_today "%1$s, %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "იტვირთება SIM ბარათიდან…" "SIM ბარათის კონტაქტები" - "კონტაქტების აპლიკაცია არ არის ხელმისაწვდომი" "ხმოვანი ძიება არ არის ხელმისაწვდომი" "სატელეფონო ზარის განხორციელება ვერ ხერხდება, ვინაიდან ტელეფონის აპლიკაცია გაუქმებულია." "კონტაქტებში ძიება" @@ -145,10 +150,9 @@ "%s ახალი გაცდენილი ზარი" "სწრაფი აკრეფისთვის რჩეულები ჯერ არ გყავთ" "რჩეული კონტაქტის დამატება" - "კონტაქტები ჯერ არ გაქვთ" - "კონტაქტის დამატება" "ყველა ნომრის სანახავად შეეხეთ სურათს ან შეეხეთ და დააყოვნეთ მიმდევრობის შესაცვლელად" "ამოშლა" + "ყველას არჩევა" "ვიდეო ზარი" "შეტყობინების გაგზავნა" "ზარის მონაცემები" @@ -213,11 +217,9 @@ "დაბლოკილი ნომრები" "%1$s უკვე დაბლოკილია." "ანგარიშების გამოძახება" - "ჩართვა" "ნებართვების დაყენება" "სწრაფი აკრეფის გასააქტიურებლად, ჩართეთ კონტაქტების ნებართვა." "ზარების ჟურნალის სანახავად, ჩართეთ ტელეფონის ნებართვა." - "კონტაქტების სანახავად, ჩართეთ კონტაქტების ნებართვა." "ხმოვან ფოსტაზე წვდომისთვის, ჩართეთ ტელეფონის ნებართვა." "თქვენი კონტაქტების მოსაძებნად ჩართეთ კონტაქტების ნებართვები." "ზარის განსახორციელებლად, ჩართეთ ტელეფონის ნებართვა." diff --git a/java/com/android/dialer/app/res/values-kk/strings.xml b/java/com/android/dialer/app/res/values-kk/strings.xml index ba4238692dd7c9f9ee751dce821c6a8b017b488c..8dfe531a1d7b0363fc4061f61fa06c1898ade826 100644 --- a/java/com/android/dialer/app/res/values-kk/strings.xml +++ b/java/com/android/dialer/app/res/values-kk/strings.xml @@ -85,6 +85,10 @@ "Қосылып тұрған қоңырауға оралу" "Қоңырау қосу" "Келген қоңыраулар" + "Жаппай әрекет режиміне өту" + "Жаппай әрекет режиімінен шығу" + "%1$s таңдалды" + "%1$s таңдауы алынды" "Дауыс-хабарды ойнату" "%1$s контактісін көру" "%1$s нөміріне қоңырау шалу" @@ -99,11 +103,13 @@ "Дауыстық пошта" "%s сек." "%s мин %s сек" + "Топтама әрекеттер режимін жабу" "дауыстық хабар" "дауыстық хабарлар" "Иә" "Жоқ" "Таңдалған %1$s хабарларын жою қажет пе?" + "%1$s таңдалды" @string/call_log_header_today "%1$s, %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID (ұялы жабдық анықтағыш)" "SIM картасынан жүктеу…" "SIM картасының контактілері" - "Контактілер қолданбасы қол жетімді емес" "Дауыс арқылы іздеу қол жетімді емес" "Телефон қоңырауын шалу мүмкін емес, өйткені «Телефон» қолданбасы өшірілген." "Контактілерді іздеу" @@ -145,10 +150,9 @@ "%s жаңа қабылданбаған қоңыраулар" "Жылдам теруде әлі ешкім жоқ" "Таңдаулыны қосу" - "Әлі ешқандай контактілер жоқ" - "Контакт қосу" "Барлық нөмірлерді көру үшін кескінді түртіңіз, ал ретін өзгерту үшін түртіп, ұстап тұрыңыз" "Алып тастау" + "Барлығын таңдау" "Бейне қоңырау" "Хабар жіберу" "Қоңырау мәліметтері" @@ -213,11 +217,9 @@ "Бөгелген нөмірлер" "%1$s бөгеліп қойылған." "Қоңырау шалу есептік жазбалары" - "Қосу" "Рұқсаттар орнату" "Жылдам теруді қосу үшін \"Контактілер\" рұқсатын қосыңыз." "Қоңыраулар журналы көру үшін \"Телефон\" рұқсатын қосыңыз." - "Контактілерді көру үшін \"Контактілер\" рұқсатын қосыңыз." "Дауыс поштасына қатынасу үшін \"Телефон\" рұқсатын қосыңыз." "Контактілерді іздеу үшін \"Контактілер\" рұқсаттарын қосыңыз." "Қоңырауды шалу үшін \"Телефон\" рұқсатын қосыңыз." diff --git a/java/com/android/dialer/app/res/values-km/strings.xml b/java/com/android/dialer/app/res/values-km/strings.xml index bdc91cf0b86b9406d615c2214530378e01985d20..ed0db05e24856afdf2afc976533f14f930466c59 100644 --- a/java/com/android/dialer/app/res/values-km/strings.xml +++ b/java/com/android/dialer/app/res/values-km/strings.xml @@ -85,6 +85,10 @@ "កំពុង​ត្រឡប់​ទៅកាន់​ការ​ហៅ" "បន្ថែម​ការ​ហៅ" "ការ​ហៅ​ចូល" + "ចូល​មុខងារ​សកម្មភាព​ច្រើន" + "បាន​ចាកចេញ​ពី​មុខងារ​សកម្មភាព​ច្រើន" + "បាន​ជ្រើសរើស %1$s" + "បាន​ដក​ការជ្រើសរើស %1$s" "ចាក់​សារ​ជា​សំឡេង" "មើល​ទំ​នាក់ទំនង %1$s" "ហៅ %1$s" @@ -99,11 +103,13 @@ "សារ​ជា​សំឡេង" "%s វិនាទី" "%s នាទី %s វិនាទី" + "បោះបង់​មុខងារ​សកម្មភាព​ជា​ក្រុម" "សារ​ជា​សំឡេង" "សារ​ជា​សំឡេង" "បាទ/ចាស" "ទេ" "លុប %1$s ដែល​បាន​ជ្រើសរើស?" + "បាន​ជ្រើសរើស %1$s" @string/call_log_header_today "%1$s នៅម៉ោង %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "កំពុង​ផ្ទុក​ពី​ស៊ីម​កាត..." "ទំនាក់ទំនង​នៅ​ក្នុង​ស៊ីម​កាត" - "មិនមានកម្មវិធីទំនាក់ទំនងទេ" "ការស្វែងរកជាសម្លេងមិនមានទេ" "មិន​អាច​ហៅ​បាន​ទេ​ ព្រោះ​កម្មវិធី​ទូរស័ព្ទ​ត្រូវ​បាន​បិទ។" "រក​ទំនាក់ទំនង" @@ -145,10 +150,9 @@ "ខកខាន​ទទួល​ថ្មី %s" "គ្មាននរណាម្នាក់នៅក្នុងការហៅរហ័សរបស់អ្នកនៅឡើយទេ" "បញ្ចូលសំណព្វ" - "អ្នកមិនទាន់មានទំនាក់ទំនងនៅឡើយទេ" - "បន្ថែមទំនាក់ទំនង" "ប៉ះរូបភាពដើម្បីមើលលេខទាំងអស់ ឬប៉ះ & សង្កត់ឲ្យជាប់ដើម្បីតម្រៀបឡើងវិញ" "លុបចេញ" + "ជ្រើសរើស​​ទាំងអស់" "ហៅជាវីដេអូ" "ផ្ញើសារ" "ព័ត៌មានលម្អិតអំពីការហៅ" @@ -213,11 +217,9 @@ "លេខបានរារាំង" "%1$s ត្រូវបានទប់ស្កាត់រួចហើយ" "គណនីហៅទូរសព្ទ" - "បើក" "កំណត់សិទ្ធិអនុញ្ញាត" "ដើម្បីបើកដំណើរការហៅរហ័ស សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីទំនាក់ទំនង។" "ដើម្បីមើលកំណត់ហេតុហៅទូរស័ព្ទរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។" - "ដើម្បីមើលទំនាក់ទំនងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីទំនាក់ទំនង។" "ដើម្បីចូលដំណើរការសារជាសំឡេងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។" "ដើម្បីស្វែងរកទំនាក់ទំនងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតទំនាក់ទំនង។" "ដើម្បីធ្វើការហៅទូរស័ព្ទ សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។" diff --git a/java/com/android/dialer/app/res/values-kn/strings.xml b/java/com/android/dialer/app/res/values-kn/strings.xml index dae544d3f9fb74552040ea0815146d84877981c8..932bc403509aa01536bd2421477b9cabdb47ae98 100644 --- a/java/com/android/dialer/app/res/values-kn/strings.xml +++ b/java/com/android/dialer/app/res/values-kn/strings.xml @@ -85,6 +85,10 @@ "ಪ್ರತ್ಯತ್ತರ ಕರೆಯು ಪ್ರಗತಿಯಲ್ಲಿದೆ" "ಕರೆಯನ್ನು ಸೇರಿಸಿ" "ಒಳಬರುವ ಕರೆಗಳು" + "ದೊಡ್ಡ ಪ್ರಮಾಣದ ಕ್ರಿಯೆಯ ಮೋಡ್‌ಗೆ ಪ್ರವೇಶಿಸಲಾಗುತ್ತಿದೆ" + "ದೊಡ್ಡ ಪ್ರಮಾಣದ ಕ್ರಿಯೆಯ ಮೋಡ್ ತೊರೆಯಲಾಗಿದೆ" + "%1$s ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ" + "%1$s ಆಯ್ಕೆಯನ್ನು ರದ್ದುಮಾಡಲಾಗಿದೆ" "ಧ್ವನಿಮೇಲ್‌ ಪ್ಲೇ ಮಾಡಿ" "%1$s ಸಂಪರ್ಕ ವೀಕ್ಷಿಸಿ" "%1$s ಕರೆ ಮಾಡಿ" @@ -99,11 +103,13 @@ "ಧ್ವನಿಮೇಲ್" "%s ಸೆಕೆಂ" "%s ನಿಮಿ %s ಸೆಕೆಂ" + "ಬ್ಯಾಚ್ ಕ್ರಿಯೆಗಳ ಮೋಡ್ ಅನ್ನು ರದ್ದುಮಾಡಿ" "ಧ್ವನಿಮೇಲ್" "ಧ್ವನಿಮೇಲ್‌ಗಳು" "ಹೌದು" "ಇಲ್ಲ" "ಆಯ್ಕೆ ಮಾಡಲಾದ %1$s ಅನ್ನು ಅಳಿಸುವುದೇ?" + "%1$s ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ" @string/call_log_header_today "%1$s ರಂದು %2$s ಗಂಟೆಗೆ" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "ಸಿಮ್‌ ಕಾರ್ಡ್‌ನಿಂದ ಲೋಡ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ…" "ಸಿಮ್‌ ಕಾರ್ಡ್‌ ಸಂಪರ್ಕಗಳು" - "ಯಾವುದೇ ಸಂಪರ್ಕಗಳ ಅಪ್ಲಿಕೇಶನ್‌ ಲಭ್ಯವಿಲ್ಲ" "ಧ್ವನಿ ಹುಡುಕಾಟ ಲಭ್ಯವಿಲ್ಲ" "ಫೋನ್ ಅಪ್ಲಿಕೇಶನ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿರುವುದರಿಂದ ಫೋನ್ ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ." "ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಿ" @@ -145,10 +150,9 @@ "%s ಹೊಸ ಮಿಸ್ಡ್‌ ಕರೆಗಳು" "ನಿಮ್ಮ ತ್ವರಿತ ಡಯಲ್‌ನಲ್ಲಿ ಇದುವರೆಗೆ ಯಾರೂ ಇಲ್ಲ" "ಮೆಚ್ಚಿನದನ್ನು ಸೇರಿಸಿ" - "ನೀವು ಇನ್ನೂ ಯಾವುದೇ ಸಂಪರ್ಕಗಳನ್ನು ಹೊಂದಿಲ್ಲ" - "ಸಂಪರ್ಕ ಸೇರಿಸಿ" "ಎಲ್ಲಾ ಸಂಖ್ಯೆಗಳನ್ನು ನೋಡಲು ಚಿತ್ರವನ್ನು ಸ್ಪರ್ಶಿಸಿ ಅಥವಾ ಮರುಕ್ರಮಗೊಳಿಸಲು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹೋಲ್ಡ್‌‌ ಮಾಡಿ" "ತೆಗೆದುಹಾಕು" + "ಎಲ್ಲವನ್ನೂ ಆಯ್ಕೆ ಮಾಡಿ" "ವೀಡಿಯೊ ಕರೆ" "ಸಂದೇಶ ಕಳುಹಿಸಿ" "ಕರೆಯ ವಿವರಗಳು" @@ -213,11 +217,9 @@ "ನಿರ್ಬಂಧಿಸಲಾದ ಸಂಖ್ಯೆಗಳು" "%1$s ಈಗಾಗಲೇ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ." "ಕರೆ ಮಾಡುವ ಖಾತೆಗಳು" - "ಆನ್‌ ಮಾಡಿ" "ಅನುಮತಿಗಳನ್ನು ಹೊಂದಿಸು" "ವೇಗ ಡಯಲ್ ಸಕ್ರಿಯಗೊಳಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ." "ನಿಮ್ಮ ಕರೆಯ ಲಾಗ್ ಅನ್ನು ವೀಕ್ಷಿಸಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ." - "ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ವೀಕ್ಷಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ." "ನಿಮ್ಮ ಧ್ವನಿಮೇಲ್ ಪ್ರವೇಶಿಸಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ." "ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಗಳನ್ನು ಆನ್ ಮಾಡಿ." "ಕರೆ ಮಾಡಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ." diff --git a/java/com/android/dialer/app/res/values-ko/strings.xml b/java/com/android/dialer/app/res/values-ko/strings.xml index 1850b6ce1f24b14ed6f5ee0aad195b66371fc83f..de6b93c01befb4c955f973ac06a64a7a25a37c3c 100644 --- a/java/com/android/dialer/app/res/values-ko/strings.xml +++ b/java/com/android/dialer/app/res/values-ko/strings.xml @@ -85,6 +85,10 @@ "진행 중인 통화로 돌아가기" "통화 추가" "수신전화" + "일괄 작업 모드 시작 중" + "일괄 작업 모드 종료됨" + "%1$s 선택됨" + "%1$s 선택 취소됨" "음성사서함 재생" "%1$s님의 연락처 보기" "전화걸기: %1$s" @@ -99,11 +103,13 @@ "음성사서함" "%s초" "%s%s초" + "일괄 작업 모드 취소" "음성사서함" "음성사서함" "예" "아니요" "선택한 %1$s을(를) 삭제하시겠습니까?" + "%1$s개 선택됨" @string/call_log_header_today "%1$s %2$s" "%1$02d%2$02d초" @@ -116,7 +122,6 @@ "MEID" "SIM 카드에서 로딩 중..." "SIM 카드 주소록" - "사용할 수 있는 주소록 앱이 없습니다." "음성검색이 지원되지 않습니다." "전화 애플리케이션을 사용 중지했으므로 전화를 걸 수 없습니다." "주소록 검색" @@ -145,10 +150,9 @@ "새로운 부재중 전화 %s건" "아직 단축 다이얼이 설정된 연락처가 없습니다." "단축 다이얼 추가" - "아직 연락처가 없습니다." - "연락처 추가" "이미지를 터치하여 모든 번호를 확인하거나 길게 터치하여 재정렬합니다." "삭제" + "모두 선택" "화상 통화" "메시지 보내기" "통화 세부정보" @@ -213,11 +217,9 @@ "차단된 번호" "%1$s번은 이미 차단되었습니다." "통화 계정" - "사용" "권한 설정" "단축번호를 사용하려면 주소록 권한을 사용하도록 설정하세요." "통화 기록을 보려면 전화 권한을 사용하도록 설정하세요." - "주소록을 보려면 주소록 권한을 사용하도록 설정하세요." "음성사서함에 액세스하려면 전화 권한을 사용하도록 설정하세요." "주소록을 검색하려면 주소록 권한을 사용하도록 설정하세요." "전화를 걸려면 전화 권한을 사용하도록 설정하세요." diff --git a/java/com/android/dialer/app/res/values-ky/strings.xml b/java/com/android/dialer/app/res/values-ky/strings.xml index 9e80e29ee74c4d01374bd912184359a23db20d7a..ac9a617ed8b8db5ac63068f63afa2e7eea273881 100644 --- a/java/com/android/dialer/app/res/values-ky/strings.xml +++ b/java/com/android/dialer/app/res/values-ky/strings.xml @@ -85,6 +85,10 @@ "Токтотулган чалууга кайтуу" "Чалууну кошуу" "Кирүүчү чалуулар" + "Жапырт аракет режимине кирдиңиз" + "Жапырт аракет режиминен чыктыңыз" + "%1$s объект тандалды" + "%1$s объект тандоодон чыгарылды" "Үнкатты угуу" "Байланышты кароо %1$s" "Чалуу %1$s" @@ -99,11 +103,13 @@ "Үн почтасы" "%s сек." "%s мүн. %s сек." + "Жапырт аракет режимин жокко чыгаруу" "үн почтасы" "үн почталары" "Ооба" "Жок" "Тандалган %1$s жок кылынсынбы?" + "%1$s тандалды" @string/call_log_header_today "%1$s саат %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "SIM картадан жүктөлүүдө..." "SIM картадагы байланыштар" - "Жеткиликтүү байланыштар колдонмосу жок" "Үн менен издөө жеткиликтүү эмес" "Телефон колдонмосу өчүрүлгөндүктөн, чалуу мүмкүн болбой жатат." "Байланыштарды издөө" @@ -145,10 +150,9 @@ "%s жаңы өткөзүлгөн чалуу" "Азырынча тез териле турган номерлер жок" "Сүйүктүү номер кошуу" - "Азырынча бир дагы байланышыңыз жок" - "Байланыш кошуу" "Бардык номерлерди көрүү үчүн, сүрөткө тийип коюңуз же коё бербей басып туруп иретин өзгөртсөңүз болот." "Алып салуу" + "Баарын тандоо" "Видео чалуу" "Билдирүү жөнөтүү" "Чалуунун чоо-жайы" @@ -213,11 +217,9 @@ "Бөгөттөлгөн номерлер" "%1$s мурунтан эле бөгөттөлгөн." "Чалуу каттоо эсептери" - "Күйгүзүү" "Уруксаттарды берүү" "Тез терүүнү иштетүү үчүн, \"Байланыштар\" колдонмосуна уруксат бериңиз." "Чалуулар таржымалыңызды көрүү үчүн, \"Телефон\" колдонмосуна уруксат бериңиз." - "Байланыштар тизмесин көрүү үчүн, \"Байланыштар\" колдонмосуна уруксат бериңиз." "Үн почтаңызга кирүү үчүн, \"Телефон\" колдонмосуна уруксат бериңиз." "Байланыштарыңызды издөө үчүн, Байланыштарга уруксатты күйгүзүңүз." "Чалуу үчүн, \"Телефон\" колдонмосуна уруксат бериңиз." diff --git a/java/com/android/dialer/app/res/values-lo/strings.xml b/java/com/android/dialer/app/res/values-lo/strings.xml index 8284e8de0ad9e860105e4c5131615e5520984604..2a829730fd4452b97dc4cc464d472161c75ee5b5 100644 --- a/java/com/android/dialer/app/res/values-lo/strings.xml +++ b/java/com/android/dialer/app/res/values-lo/strings.xml @@ -85,6 +85,10 @@ "ກັບໄປການໂທທີ່ກຳລັງດຳເນີນຢູ່" "ເພີ່ມການໂທ" "ສາຍໂທເຂົ້າ" + "ກຳລັງເຂົ້າໂໝດຄຳສັ່ງຈຳນວນຫຼາຍ" + "ອອກຈາກໂໝດຄຳສັ່ງຈຳນວນຫຼາຍແລ້ວ" + "ເລືອກ %1$s ແລ້ວ" + "ເຊົາເລືອກ %1$s ແລ້ວ" "ເປີດຂໍ້ຄວາມສຽງ" "ເບິ່ງລາຍຊື່ຜູ່ຕິດຕໍ່ %1$s" "ໂທຫາ %1$s" @@ -99,11 +103,13 @@ "ຂໍ້ຄວາມສຽງ" "%s ວິນາທີ" "%s ນ​ທ %s ວິ" + "ຍົກເລີກໂໝດຄຳສັ່ງເປັນຊຸດ" "ຂໍ້ຄວາມສຽງ" "ຂໍ້ຄວາມສຽງ" "ແມ່ນແລ້ວ" "ບໍ່" "ລຶບ %1$s ທີ່ເລືອກອອກໄປບໍ?" + "ເລືອກ %1$s ລາຍການແລ້ວ" @string/call_log_header_today "%1$s ເວລາ %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "ກຳລັງໂຫລດຈາກ SIM card..." "ລາຍຊື່ຜູ່ຕິດຕໍ່ SIM card" - "ບໍ່​ມີ​ແອັບຯ​ລາຍ​ຊື່​ຕິດ​ຕໍ່​ຢູ່" "ບໍ່​ມີ​ການ​ຊອກ​ຫາ​ດ້ວຍ​ສຽງ​ຢູ່" "ບໍ່​ສາ​ມາດ​ໂທ​ໄດ​້​ເນື່ອງ​ຈາກ​ແອັບ​ພ​ລິ​ເຄ​ຊັນ​ໂທ​ລະ​ສັບ​ຖືກ​ປິດ​ການ​ນຳ​ໃຊ້​ໄວ້." "ຊອກຫາລາຍຊື່ຜູ່ຕິດຕໍ່" @@ -145,10 +150,9 @@ "%s ສາຍທີ່ບໍ່ໄດ້ຮັບໃໝ່" "ບໍ່​ມີ​ຜູ້​ໃດ​ຢູ່​ໃນ​ການ​ໂທ​ດ່ວນ​ຂອງ​ທ່ານ​ເທື່ອ" "ເພີ່ມ​ລາຍ​ການ​ທີ່​ມັກ" - "ທ່ານ​ບໍ່​ມີ​ລາຍ​ຊື່​ໃດ​ເທື່ອ" - "ເພີ່ມ​ລາຍ​ຊື່" "ແຕະຮູບເພື່ອເບິ່ງເບີໂທທັງໝົດ ຫຼື ແຕະຄ້າງໄວ້ເພື່ອຈັດລຳດັບໃໝ່" "​ລຶບ​ອອກ" + "ເລືອກທັງໝົດ" "​ໂທ​ດ້ວຍ​ວິ​ດີ​ໂອ" "ສົ່ງຂໍ້ຄວາມ" "ລາຍລະອຽດ​ການໂທ" @@ -213,11 +217,9 @@ "ເບີໂທລະສັບທີ່ບລັອກໄວ້" "%1$s ຖືກ​ບ​ລັອກ​ແລ້ວ." "ບັນ​ຊີ​ໂທ" - "ເປີດ​" "ຕັ້ງ​ການ​ອະ​ນຸ​ຍາດ" "ເພື່ອ​ເປີດ​ໃຊ້​ງານ​ການໂທດ່ວນ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ລາຍ​ຊື່." "ເພື່ອ​ເບິ່ງ​ບັນ​ທຶກ​ການ​ໂທ​ຂອງ​ທ່ານ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ໂທ​ລະ​ສັບ." - "ເພື່ອ​ເບິ່ງ​ລາຍ​ຊື່​ຂອງ​ທ່ານ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ລາຍ​ຊື່" "ເພື່ອ​ເຂົ້າ​ຫາ​ຂໍ້​ຄວາມ​ສຽງ​ຂອງ​ທ່ານ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ໂທ​ລະ​ສັບ." "ເພື່ອຄົ້ນຫາລາຍາຊື່ຂອງທ່ານ, ໃຫ້ເປີດການອະນຸຍາດລາຍຊື່." "ເພື່ອ​ເຮັດການໂທ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ໂທ​ລະ​ສັບ." diff --git a/java/com/android/dialer/app/res/values-lt/strings.xml b/java/com/android/dialer/app/res/values-lt/strings.xml index a346d5d0a2f8fcc97ee0227c9fb0626ebc44ab2f..367c928f4813319e169a503934d6eb159ee435e6 100644 --- a/java/com/android/dialer/app/res/values-lt/strings.xml +++ b/java/com/android/dialer/app/res/values-lt/strings.xml @@ -87,6 +87,10 @@ "Grįžti prie vykdomo skambučio" "Pridėti skambutį" "Gaunami skambučiai" + "Įjungiamas masinių veiksmų režimas" + "Masinių veiksmų režimas išjungtas" + "Pasirinkta: %1$s" + "Pasirinkimas atšauktas: %1$s" "Paleisti balso pašto pranešimus" "Žiūrėti kontaktą %1$s" "Skambinti %1$s" @@ -101,11 +105,13 @@ "Balso paštas" "%s sek." "%s min. %s sek." + "Atšaukti masinių veiksmų režimą" "balso pašto praneš." "balso pašto praneš." "Taip" "Ne" "Ištrinti pasir. %1$s?" + "Pasirinkta: %1$s" @string/call_log_header_today "%1$s, %2$s" "%1$02d:%2$02d" @@ -118,7 +124,6 @@ "MEID" "Įkeliama iš SIM kortelės..." "SIM kortelės adresatai" - "Nepasiekiama jokia kontaktų programa" "Paieška balsu nepasiekiama" "Negalima skambinti telefonu, nes Telefono programa išjungta." "Ieškoti adresatų" @@ -147,10 +152,9 @@ "Naujų praleistų skambučių: %s" "Dar nieko neįtraukėte į sparčiojo rinkimo sąrašą" "Pridėti mėgstamiausią" - "Dar neturite kontaktų" - "Pridėti kontaktą" "Palieskite vaizdą, kad peržiūrėtumėte visus numerius, arba palieskite ir palaikykite, kad pertvarkytumėte" "Pašalinti" + "Pasirinkti viską" "Vaizdo skambutis" "Siųsti pranešimą" "Išsami skambučio informacija" @@ -217,11 +221,9 @@ "Užblokuoti numeriai" "%1$s jau užblokuotas." "Skambinimo paskyros" - "Įjungti" "Nustatyti leidimus" "Jei norite įgalinti spartųjį rinkimą, įjunkite Kontaktų programos leidimą." "Jei norite peržiūrėti skambučių žurnalą, įjunkite Telefono programos leidimą." - "Jei norite peržiūrėti kontaktus, įjunkite Kontaktų programos leidimą." "Jei norite pasiekti balso paštą, įjunkite Telefono programos leidimą." "Kad galėtumėte ieškoti kontaktų, įjunkite Kontaktų leidimus." "Jei norite paskambinti, įjunkite Telefono programos leidimą." diff --git a/java/com/android/dialer/app/res/values-lv/strings.xml b/java/com/android/dialer/app/res/values-lv/strings.xml index 808d7bfb7073248f74c29f887dd64066b01a93fc..2713b91b6e9793e8b4e9f7be8bc1beccff187cc0 100644 --- a/java/com/android/dialer/app/res/values-lv/strings.xml +++ b/java/com/android/dialer/app/res/values-lv/strings.xml @@ -86,6 +86,10 @@ "Atgriezties pie pašreizējā zvana" "Pievienot zvanu" "Ienākošie zvani" + "Tiek atvērts lielapjoma darbību režīms" + "Tika aizvērts lielapjoma darbību režīms" + "Atlasīt: %1$s" + "Noņemt atlasi: %1$s" "Atskaņot balss pasta ziņojumu" "Skatīt kontaktpersonu %1$s" "Zvanīt: %1$s" @@ -100,11 +104,13 @@ "Balss pasts" "%s s" "%s min %s s" + "Iziet no grupas darbību režīma" "balss pasta ziņojums" "balss pasta ziņojumi" "Jā" "Nē" "Vai dzēst atlasi: %1$s?" + "Atlasīti: %1$s" @string/call_log_header_today "%1$s plkst. %2$s" "%1$02d:%2$02d" @@ -117,7 +123,6 @@ "MEID" "Notiek ielāde no SIM kartes..." "Kontaktpersonas SIM kartē" - "Nav pieejama neviena kontaktpersonu lietotne." "Meklēšana ar balsi nav pieejama." "Nevar veikt tālruņa zvanu, jo lietojumprogramma Tālrunis tika atspējota." "Meklēt kontaktpersonas" @@ -146,10 +151,9 @@ "Jauni neatbildēti zvani: %s" "Ātro zvanu sarakstā vēl nav nevienas kontaktpersonas." "Pievienot izlasei" - "Jums vēl nav nevienas kontaktpersonas." - "Pievienot kontaktpersonu" "Pieskarieties attēlam, lai skatītu visus numurus, vai pieskarieties attēlam un turiet to, lai veiktu pārkārtošanu." "Noņemt" + "Atlasīt visu" "Videozvans" "Sūtīt ziņojumu" "Informācija par zvanu" @@ -215,11 +219,9 @@ "Bloķētie numuri" "%1$s jau ir bloķēts." "Zvanu konti" - "Ieslēgt" "Iestatīt atļaujas" "Lai iespējotu ātros zvanus, ieslēdziet atļauju Kontaktpersonas." "Lai skatītu zvanu žurnālu, ieslēdziet atļauju Tālrunis." - "Lai skatītu kontaktpersonas, ieslēdziet atļauju Kontaktpersonas." "Lai piekļūtu balss pastam, ieslēdziet atļauju Tālrunis." "Lai meklētu savas kontaktpersonas, ieslēdziet atļauju Kontaktpersonas." "Lai veiktu zvanu, ieslēdziet atļauju Tālrunis." diff --git a/java/com/android/dialer/app/res/values-mk/strings.xml b/java/com/android/dialer/app/res/values-mk/strings.xml index 6d2e533a5a775552d592204dd206fa08e2248f28..09725a64212b7523a343fe05e27a2e990df49d16 100644 --- a/java/com/android/dialer/app/res/values-mk/strings.xml +++ b/java/com/android/dialer/app/res/values-mk/strings.xml @@ -85,6 +85,10 @@ "Врати се на повик во тек" "Додај повик" "Дојдовни повици" + "Влегувате во режим на групно дејство" + "Излеговте од режим на групно дејство" + "Избрано е %1$s" + "Поништен е изборот на %1$s" "Преслушај говорна пошта" "Прикажи контакт %1$s" "Повикај %1$s" @@ -99,11 +103,13 @@ "Говорна пошта" "%s сек." "%s мин. %s сек." + "Откажи го режимот на групни дејства" "говорна пошта" "говорни пораки" "Да" "Не" "Да се избришат избраните %1$s?" + "Избрани се %1$s" @string/call_log_header_today "%1$s во %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Вчитување од SIM картичка..." "Контакти од SIM картичка" - "Не е достапна апликација за контакти" "Гласовното пребарување не е достапно" "Не може да се воспостави телефонски повик, бидејќи апликацијата Телефон е оневозможена." "Пребарај контакти" @@ -145,10 +150,9 @@ "%s нови пропуштени повици" "Сè уште немате никого на брзо бирање" "Додај омилено" - "Сè уште немате контакти" - "Додај контакт" "Допрете ја сликата за да ги видите сите броеви или допрете и држете за промена на редоследот" "Отстрани" + "Изберете ги сите" "Видеоповик" "Испрати порака" "Детали на повик" @@ -213,11 +217,9 @@ "Блокирани броеви" "%1$s веќе е блокиран." "Сметки за повикување" - "Вклучи" "Постави дозволи" "За да овозможите брзо бирање, вклучете ја дозволата за контакти." "За да ја видите евиденцијата на повици, вклучете ја дозволата за телефон." - "За да ги видите контактите, вклучете ја дозволата за контакти." "За да пристапите кон говорната пошта, вклучете ја дозволата за телефон." "За да ги пребарувате контактите, вклучете ги дозволите за контакти." "За да воспоставите повик, вклучете ја дозволата за телефон." diff --git a/java/com/android/dialer/app/res/values-ml/strings.xml b/java/com/android/dialer/app/res/values-ml/strings.xml index 91accf44221cf05ff23b99ef3ef95e51b0bbd675..7655dbe233778aa2f922050091721e9471f6aaac 100644 --- a/java/com/android/dialer/app/res/values-ml/strings.xml +++ b/java/com/android/dialer/app/res/values-ml/strings.xml @@ -85,6 +85,10 @@ "വിളിച്ചുകൊണ്ടിരിക്കുന്ന കോളിലേക്ക് മടങ്ങുക" "കോൾ ചേർക്കുക" "ഇൻകമിംഗ് കോളുകൾ" + "ബൾക്ക് പ്രവർത്തന മോഡിലേക്ക് പ്രവേശിക്കുന്നു" + "ബൾക്ക് പ്രവർത്തന മോഡ് വിട്ടു" + "%1$s തിരഞ്ഞെടുത്തു" + "%1$s തിരഞ്ഞെടുത്തത് മാറ്റി" "വോയ്‌സ്‌മെയിൽ പ്ലേ ചെയ്യുക" "%1$s എന്ന കോൺടാക്റ്റ് കാണുക" "വിളിക്കുക %1$s" @@ -99,11 +103,13 @@ "വോയ്‌സ്‌മെയിൽ" "%s സെക്കൻഡ്" "%s മി. %s സെ." + "\'ബാച്ച് പ്രവർത്തനങ്ങൾ\' മോഡ് റദ്ദാക്കുക" "വോയ്‌സ്‌മെയിൽ" "വോയ്‌സ്മെയിലുകൾ" "അതെ" "ഇല്ല" "തിരഞ്ഞെടുത്ത %1$s ഇല്ലാതാക്കണോ?" + "%1$s എണ്ണം തിരഞ്ഞെടുത്തു" @string/call_log_header_today "%1$s, %2$s-ന്" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "സിം കാർഡിൽ നിന്നും ലോഡുചെയ്യുന്നു…" "സിം കാർഡ് കോൺടാക്റ്റുകൾ" - "കോൺടാക്റ്റ് അപ്ലിക്കേഷനൊന്നും ലഭ്യമല്ല" "വോയ്‌സ് തിരയൽ ലഭ്യമല്ല" "ഫോൺ അപ്ലിക്കേഷൻ പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നതിനാൽ ഫോൺ കോൾ ചെയ്യാനാകില്ല." "കോണ്‍‌ടാക്റ്റുകള്‍ തിരയുക" @@ -145,10 +150,9 @@ "%s പുതിയ മിസ്‌ഡ് കോളുകൾ" "ഇതുവരെ ആരും നിങ്ങളുടെ സ്പീഡ് ഡയലിൽ ഇല്ല" "പ്രിയപ്പെട്ടത് ചേർക്കുക" - "നിങ്ങൾക്ക് ഇതുവരെയും കോൺടാക്റ്റുകൾ ഒന്നുമില്ല." - "ഒരു കോണ്‍ടാക്റ്റ് ചേര്‍ക്കുക" "എല്ലാ നമ്പറുകളും കാണാൻ ചിത്രം സ്‌പർശിക്കുക അല്ലെങ്കിൽ വീണ്ടും ക്രമീകരിക്കാൻ സ്‌പർശിച്ച് പിടിക്കുക" "നീക്കംചെയ്യുക" + "എല്ലാം തിരഞ്ഞെടുക്കുക" "വീഡിയോ കോള്‍" "ഒരു സന്ദേശം അയയ്‌ക്കുക" "കോൾ വിശദാംശങ്ങൾ" @@ -213,11 +217,9 @@ "ബ്ലോക്കുചെയ്ത നമ്പറുകൾ" "ഇതിനകം തന്നെ %1$s ബ്ലോക്കുചെയ്തിരിക്കുന്നു" "കോളിംഗ് അക്കൗണ്ട്" - "ഓണാക്കുക" "അനുമതികൾ സജ്ജമാക്കുക" "സ്പീഡ് ഡയൽ പ്രവർത്തനക്ഷമാക്കുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക." "നിങ്ങളുടെ കോൾ ലോഗ് കാണുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക." - "നിങ്ങളുടെ കോൺടാക്റ്റുകൾ കാണുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക." "നിങ്ങളുടെ വോയ്‌സ്‌മെയിൽ ആക്സസ് ചെയ്യുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക." "നിങ്ങളുടെ കോൺടാക്റ്റുകൾ തിരയുന്നതിന് കോൺടാക്റ്റുകൾക്കുള്ള അനുമതികൾ ഓണാക്കുക." "കോൾ വിളിക്കുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക." diff --git a/java/com/android/dialer/app/res/values-mn/strings.xml b/java/com/android/dialer/app/res/values-mn/strings.xml index a07a826d567b835b306d1d8d37851dda2da7cbad..29bd8af42229b21d8f6cacb77a708860876af332 100644 --- a/java/com/android/dialer/app/res/values-mn/strings.xml +++ b/java/com/android/dialer/app/res/values-mn/strings.xml @@ -85,6 +85,10 @@ "Үргэлжилж буй дуудлага руу буцах" "Дуудлага нэмэх" "Ирж буй дуудлага" + "Багц үйлдлийн горимд орж байна" + "Багц үйлдлийн горимоос гарсан" + "%1$s сонгосон" + "%1$s сонголтыг болиулсан" "Дуут шууданг тоглуулах" "%1$s харилцагчийг харах" "%1$s руу залгах" @@ -99,11 +103,13 @@ "Дуут шуудан" "%s сек" "%s минут %s секунд" + "Багц үйлдлийн горимыг цуцлах" "дуут шуудан" "дуут шуудан" "Тийм" "Үгүй" "Сонгосон %1$s-г устгах уу?" + "%1$s сонгосон" @string/call_log_header_today "%1$s %2$s-д" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "SIM картаас уншиж байна…" "SIM картны харилцагчид" - "Ямар ч харилцагчдын апликейшн байхгүй байна." "Дуут хайлт хийх боломжгүй байна" "Утас аппликешныг идэвхгүйжүүлсэн тул утасны дуудлага хийх боломжгүй." "Харилцагчдаас хайх" @@ -145,10 +150,9 @@ "%s шинэ аваагүй дуудлага" "Таны яаралтай залгах тохиргоон дээр одоогоор харилцагч байхгүй байна" "Таалагдсан хэсэгт нэмэх" - "Танд одоогоор харилцагч байхгүй байна" - "Харилцагч нэмэх" "Бүх дугаарыг харахын тулд зурганд хүрнэ үү эсвэл жагсаалтыг өөрчлөхийн тулд удаан дарна уу." "Хасах" + "Бүгдийг сонгох" "Видео дуудлага" "Зурвас илгээх" "Дуудлагын мэдээлэл" @@ -213,11 +217,9 @@ "Блоклосон дугаар" "%1$s-г аль хэдийн блоклосон байна." "Дуудах бүртгэл" - "Идэвхжүүлэх" "Зөвшөөрөл тохируулах" "Яаралтай дуудлагыг идэвхжүүлэхийн тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү." "Дуудлагын жагсаалтыг харахын тулд утасны зөвшөөрлийг идэвхжүүлнэ үү." - "Харилцагчдаа харахын тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү." "Дуут шууданд хандахын тулд Утасны зөвшөөрлийг идэвхжүүлнэ үү." "Харилцагчаа хайхын тулд, Харилцагчийн жагсаалтын зөвшөөрлийг идэвхжүүлнэ үү." "Залгахын тулд Утасны зөвшөөрлийг идэвхжүүлнэ үү." diff --git a/java/com/android/dialer/app/res/values-mr/strings.xml b/java/com/android/dialer/app/res/values-mr/strings.xml index 5aca7a5e250a315fc1ea8e703d30c5096f65d885..ee21291e81eacdc08a37db17309a2c91ce1b1985 100644 --- a/java/com/android/dialer/app/res/values-mr/strings.xml +++ b/java/com/android/dialer/app/res/values-mr/strings.xml @@ -85,6 +85,10 @@ "चालू असलेल्या कॉलवर परत जा" "कॉल जोडा" "येणारे कॉल" + "मोठ्या प्रमाणात क्रिया मोडमध्ये प्रवेश करीत आहे" + "मोठ्या प्रमाणात क्रिया मोड सोडत आहे" + "%1$s निवडले" + "%1$s ची निवड रद्द केली" "व्हॉइसमेल प्ले करा" "%1$s संपर्क पहा" "%1$s ला कॉल करा" @@ -99,11 +103,13 @@ "व्हॉइसमेल" "%s सेकंद" "%s मिनिट %s सेकंद" + "बॅच क्रिया मोड रद्द करा" "व्हॉइसमेल" "व्हॉइसमेल" "होय" "नाही" "निवडलेले %1$s हटवायचेे?" + "%1$s निवडले" @string/call_log_header_today "%1$s रोजी %2$s वाजता" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "सिम कार्ड मधून लोड करीत आहे..." "सिम कार्ड संपर्क" - "कोणताही संपर्क अॅप उपलब्ध नाही" "व्हॉइस शोध उपलब्ध नाही" "फोन अनुप्रयोग अक्षम केला गेला असल्याने फोन कॉल करणे शक्य नाही." "संपर्क शोधा" @@ -145,10 +150,9 @@ "%s नवीन सुटलेले कॉल" "अद्याप आपल्‍या स्पीड डायलवर कोणीही नाही" "एक आवडते जोडा" - "आपल्‍याकडे अद्याप कोणतेही संपर्क नाहीत" - "एक संपर्क जोडा" "सर्व नंबर पाहण्यासाठी प्रतिमेस स्पर्श करा किंवा पुन्हा क्रम लावण्यासाठी स्पर्श करा आणि धरून ठेवा" "काढा" + "सर्व निवडा" "व्हिडिओ कॉल" "एक संदेश पाठवा" "कॉल तपशील" @@ -213,11 +217,9 @@ "अवरोधित केलेले नंबर" "%1$s आधीच अवरोधित केलेला आहे." "कॉल करण्याची खाती" - "चालू करा" "परवानग्या सेट करा" "स्पीड डायल सक्षम करण्‍यासाठी, संपर्क परवानगी चालू करा." "आपला कॉल लॉग पाहण्‍यासाठी, फोन परवानगी चालू करा." - "आपले संपर्क पाहण्‍यासाठी, संपर्क परवानगी चालू करा." "आपल्‍या व्हॉइसमेलमध्‍ये प्रवेश करण्‍यासाठी, फोन परवानगी चालू करा." "आपले संपर्क शोधण्‍यासाठी, संपर्क परवानग्या चालू करा." "कॉल करण्यासाठी, फोन परवानगी चालू करा." diff --git a/java/com/android/dialer/app/res/values-ms/strings.xml b/java/com/android/dialer/app/res/values-ms/strings.xml index 9dbe541d97508fc50f29555f038d701e5fe9d401..dbb021359581d3a64dee78a75617161c682274b3 100644 --- a/java/com/android/dialer/app/res/values-ms/strings.xml +++ b/java/com/android/dialer/app/res/values-ms/strings.xml @@ -85,6 +85,10 @@ "Kembali ke panggilan yang sedang berlangsung" "Tambah panggilan" "Panggilan masuk" + "Memasuki mod tindakan pukal" + "Meninggalkan mod tindakan pukal" + "%1$s dipilih" + "%1$s dinyahpilih" "Mainkan mel suara" "Lihat kenalan %1$s" "Panggil %1$s" @@ -99,11 +103,13 @@ "Mel suara" "%s saat" "%s min %s saat" + "Batalkan mod tindakan kelompok" "mel suara" "mel suara" "Ya" "Tidak" "Padam %1$s yang dipilih?" + "%1$s dipilih" @string/call_log_header_today "%1$s pada %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Memuatkan dari kad SIM..." "Kenalan kad SIM" - "Tiada apl kenalan tersedia" "Carian suara tidak tersedia" "Tidak boleh membuat panggilan telefon kerana aplikasi Telefon telah dilumpuhkan." "Cari dalam kenalan" @@ -145,10 +150,9 @@ "%s panggilan terlepas baharu" "Belum ada sesiapa pada dail pantas anda" "Tambahkan kegemaran" - "Anda belum mempunyai sebarang kenalan" - "Tambahkan kenalan" "Sentuh imej untuk melihat semua nombor atau sentuh & tahan untuk menyusun semula" "Alih keluar" + "Pilih semua" "Panggilan video" "Hantar mesej" "Butiran panggilan" @@ -213,11 +217,9 @@ "Nombor yang disekat" "%1$s sudah disekat." "Akaun panggilan" - "Hidupkan" "Tetapkan kebenaran" "Untuk mendayakan dail laju, hidupkan kebenaran Kenalan." "Untuk melihat log panggilan anda, hidupkan kebenaran Telefon." - "Untuk melihat kenalan anda, hidupkan kebenaran Kenalan." "Untuk mengakses mel suara anda, hidupkan kebenaran Telefon." "Untuk mencari kenalan anda, hidupkan kebenaran Kenalan." "Untuk membuat panggilan, hidupkan kebenaran Telefon." diff --git a/java/com/android/dialer/app/res/values-my/strings.xml b/java/com/android/dialer/app/res/values-my/strings.xml index 2b51b2054d4043d60a147def24eb758660f03378..eecfeb234d6d35f1baedcd418b75edf92180c9d0 100644 --- a/java/com/android/dialer/app/res/values-my/strings.xml +++ b/java/com/android/dialer/app/res/values-my/strings.xml @@ -85,6 +85,10 @@ "ဖုန်းပြန်ခေါ်မှု ပြုလုပ်နေစဉ်" "ဖုန်းခေါ်မှု ထပ်ထည့်ပါ" "အဝင်ခေါ်ဆိုမှုများ" + "တပြိုင်နက်တည်း စုပြုံလုပ်ဆောင်ချက်မုဒ်ကို ထည့်သွင်းခြင်း" + "တပြိုင်နက်တည်း စုပြုံလုပ်ဆောင်ချက်မုဒ်မှ ထွက်လိုက်သည်" + "ရွေးချယ်ထားသော %1$s" + "မရွေးချယ်ထားသော %1$s" "အသံပို့စာ နားထောင်ရန်" "%1$s လိပ်စာကြည့်ရန်" "%1$s ကိုခေါ်ပါ" @@ -99,11 +103,13 @@ "အသံစာပို့စနစ်" "%s စက္ကန့်" "%s မိနစ် %s စက္ကန့်" + "တပြိုင်နက်တည်း စုပြုံလုပ်ဆောင်ချက်များမုဒ်ကိ ပယ်ဖျက်ရန်" "အသံမေးလ်" "အသံမေးလ်များ" "Yes" "No" "ရွေးထားသော %1$s ကို ဖျက်လိုပါသလား။" + "%1$s ကို ရွေးချယ်ထားသည်" @string/call_log_header_today "%1$s %2$s ၌" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEIDနံပါတ်" "ဆင်းမ်ကဒ်မှ ဖွင့်နေပါသည်..." "ဆင်းမ်ကဒ်မှ အဆက်အသွယ်များ" - "အဆက်အသွယ်များ app မရှိ" "အသံဖြင့် ရှာဖွေမှု မရှိ" "ဖုန်း အပလီကေးရှင်းကို ပိတ်ထား၍ ဖုန်း ခေါ်ဆိုမှု မပြုလုပ်နိုင်ခဲ့ပါ။" "အဆက်အသွယ်များရှာပါ" @@ -145,10 +150,9 @@ "လွတ်သွားသောဖုန်း %s ခါ" "သင်၏အမြန်ခေါ်စာရင်းတွင် မည်သူမျှ မရှိသေးပါ" "အနှစ်သက်ဆုံးတစ်ခု ထည့်ရန်" - "သင့်တွင် မည်သည့်အဆက်အသွယ်မျှ မရှိသေးပါ" - "အဆက်အသွယ်တစ်ယောက် ထည့်မည်" "နံပါတ်အားလုံးကိုကြည့်ရန် ပုံကိုထိပါ (သို့) ပြန်စီရန် ထိပြီးဖိထားပါ" "ဖယ်ရှာခြင်း" + "အားလုံးကို ရွေးချယ်ပါ" "ဗီဒီယို ခေါ်ဆိုမှု" "စာ တစ်စောင် ပို့ပါ" "ဖုန်းခေါ်မှု အသေးစိတ်အချက်အလက်" @@ -213,11 +217,9 @@ "ပိတ်ထားသည့် နံပါတ်များ" "%1$s အားပိတ်ဆို့ထားပြီးပါပြီ။" "ခေါ်ဆိုသော အကောင့်များ" - "ဖွင့်ထားရန်" "ခွင့်ပြုချက်များ သတ်မှတ်မည်" "မြန်နှုန်းမြင့်ဖုန်းခေါ်ဆိုမှုကို ဖွင့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။" "ခေါ်ဆိုမှုမှတ်တမ်းကို ကြည့်ရန်၊ ဖုန်းခွင့်ပြုချက်ကို ဖွင့်ပါ။" - "အဆက်အသွယ်များကိုကြည့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။" "အသံမေးလ်ကိုအသုံးပြုရန်၊ ဖုန်းခွင့်ပြုချက်ကိုဖွင့်ပါ။" "သင့်အဆက်အသွယ်များကို ရှာဖွေရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်များကို ဖွင့်ပါ။" "ဖုန်းခေါ်ဆိုရန်၊ ဖုန်းခွင့်ပြုချက်ကိုဖွင့်ပါ။" diff --git a/java/com/android/dialer/app/res/values-nb/strings.xml b/java/com/android/dialer/app/res/values-nb/strings.xml index d92edc6491a94c341f02f52496e88669a0e7c5b6..bda4915b50530a42ea5a4e8ff5e34a455d4bea1e 100644 --- a/java/com/android/dialer/app/res/values-nb/strings.xml +++ b/java/com/android/dialer/app/res/values-nb/strings.xml @@ -85,6 +85,10 @@ "Gå tilbake til aktiv samtale" "Legg til en samtale" "Innkommende samtaler" + "Starter massehandlingsmodus" + "Massehandlingsmodus er avsluttet" + "Du har valgt %1$s" + "Du har valgt bort %1$s" "Spill av talemelding" "Se kontakten %1$s" "Ring %1$s" @@ -99,11 +103,13 @@ "Telefonsvarer" "%s sek" "%s min %s sek" + "Avbryt massehandlinsmodus" "talepost" "talepost" "Ja" "Nei" "Slett markert %1$s?" + "%1$s er valgt" @string/call_log_header_today "%1$s kl. %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Henter fra SIM-kort…" "Kontakter på SIM-kort" - "Ingen kontaktapper er tilgjengelige" "Talesøk er ikke tilgjengelig" "Kan ikke ringe fordi Telefon-appen er deaktivert." "Søk i kontakter" @@ -145,10 +150,9 @@ "%s nye tapte anrop" "Du har ingen på hurtigoppringning ennå" "Legg til en favoritt" - "Du har ingen kontakter ennå" - "Legg til en kontakt" "Trykk på bildet for å se alle numrene, eller trykk og hold for å omorganisere" "Fjern" + "Velg alle" "Videoanrop" "Send en melding" "Samtaleinformasjon" @@ -213,11 +217,9 @@ "Blokkerte numre" "%1$s er allerede blokkert." "Ringekontoer" - "Slå på" "Angi tillatelser" "For å slå på hurtigoppringning, slå på Kontakter-tillatelsen." "For å se samtaleloggen din, slå på Telefon-tillatelsen." - "For å se kontaktene dine, slå på Kontakter-tillatelsen." "For å få tilgang til talepostkassen, slå på Telefon-tillatelsen." "For å søke i kontaktene dine, slå på tillatelser for Kontakter." "For å ringe, slå på Telefon-tillatelsen." diff --git a/java/com/android/dialer/app/res/values-ne/strings.xml b/java/com/android/dialer/app/res/values-ne/strings.xml index 90a3016e2ec7f175dfc74e5a2ce1fb5e8f2b5f05..8262a316c4b10547d9f4dd354b29dff02f5944a7 100644 --- a/java/com/android/dialer/app/res/values-ne/strings.xml +++ b/java/com/android/dialer/app/res/values-ne/strings.xml @@ -85,6 +85,10 @@ "हुदै गरेको कलमा फर्कनुहोस्" "कल थप्नुहोस्" "आगमन कलहरू" + "बल्क कारबाही सम्बन्धी मोडमा प्रवेश गर्दै" + "बल्क कारबाही सम्बन्धी मोड छोडियो" + "%1$s चयन गरियो" + "%1$s चयन हटाइयो" "भ्वाइसमेल बजाउनुहोस्" "%1$s सम्पर्क हेर्नुहोस्" "कल %1$s" @@ -99,11 +103,13 @@ "भ्वाइसमेल" "%s सेकेन्ड" "%s मिनेट %s सकेन्ड" + "ब्याच सम्बन्धी कारबाहीको मोडलाई रद्द गर्नुहोस्" "भ्वाइस मेल" "भ्वाइस मेलहरू" "हो" "होइन" "चयन गरिएका %1$s लाई मेटाउने हो?" + "%1$s चयन गरियो" @string/call_log_header_today "%1$s मा %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "SIM कार्डबाट लोड हुँदै" "SIM कार्ड सम्पर्कहरू" - "कुनै पनि सम्पर्क अनुप्रयोग उपलब्ध छैन" "आवाज खोजी उपलब्ध छैन" "फोन अनुप्रयोग असक्षम गरिएकोले फोन गर्न सकिँदैन।" "सम्पर्कहरू खोज्नुहोस्" @@ -145,10 +150,9 @@ "%s नयाँ छुटेका कलहरु" "तपाईँको स्पिड डायलमा अझसम्म कोही छैन" "एक मनपर्ने थप्नुहोस्" - "तपाईँसँग अझसम्म कुनै सम्पर्कहरू छैनन्" - "एउटा सम्पर्क थप्नुहोस्" "सबै नम्बरहरू हेर्न छविलाई छुनुहोस् वा पुन:क्रमबद्ध गर्न छोइराख्नुहोस्" "हटाउँनुहोस्" + "सबैलाई चयन गर्नुहोस्" "भिडियो कल" "सन्देश पठाउनुहोस्" "कल विवरणहरु" @@ -213,11 +217,9 @@ "रोकिएका नम्बरहरू" "%1$s पहिले नै रोकिएको छ।" "खाता कलिङ" - "सक्रिय पार्नुहोस्" "अनुमतिहरू सेट गर्नुहोस्" "तीव्र डायल सक्षम गर्न, सम्पर्क अनुमति सक्षम गर्नुहोस्।" "आफ्नो कल लग हेर्न, फोन अनुमति सक्रिय गर्नुहोस्।" - "आफ्नो सम्पर्क हेर्न सम्पर्क अनुमति सक्रिय गर्नुहोस्।" "आफ्नो भ्वाइस मेल पहुँच गर्न, फोन अनुमति सक्रिय गर्नुहोस्" "तपाईँको सम्पर्कहरू खोज गर्न सम्पर्क अनुमतिहरू सक्रिय गर्नुहोस्।" "कल गर्न फोन अनुमति सक्रिय गर्नुहोस्।" diff --git a/java/com/android/dialer/app/res/values-nl/strings.xml b/java/com/android/dialer/app/res/values-nl/strings.xml index 5f41b8063cd943d1f5745af17962620f30a0b35c..eed412d69f3f94c4eb0b37c53bbb5cf51f41d89c 100644 --- a/java/com/android/dialer/app/res/values-nl/strings.xml +++ b/java/com/android/dialer/app/res/values-nl/strings.xml @@ -85,6 +85,10 @@ "Terug naar actief gesprek" "Oproep toevoegen" "Inkomende oproepen" + "Modus voor bulkacties openen" + "Modus voor bulkacties verlaten" + "%1$s geselecteerd" + "Selectie van %1$s opgeheven" "Voicemail afspelen" "Contact %1$s bekijken" "%1$s bellen" @@ -99,11 +103,13 @@ "Voicemail" "%s sec." "%s min. %s sec." + "Modus voor batchacties annuleren" "voicemail" "voicemails" "Ja" "Nee" "Geselecteerde %1$s verwijderen?" + "%1$s geselecteerd" @string/call_log_header_today "%1$s om %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Laden vanaf SIM-kaart..." "Contacten op SIM-kaart" - "Geen app voor contacten beschikbaar" "Gesproken zoekopdracht niet beschikbaar" "Kan niet bellen omdat de Telefoon-app is uitgeschakeld." "Contacten zoeken" @@ -145,10 +150,9 @@ "%s nieuwe gemiste oproepen" "Er staat nog niemand in je snelkeuzelijst" "Een favoriet toevoegen" - "Je hebt nog geen contacten" - "Contact toevoegen" "Tik op de afbeelding om alle nummers te bekijken of tik op de afbeelding en houd vast om opnieuw te rangschikken" "Verwijderen" + "Alles selecteren" "Videogesprek" "Een bericht verzenden" "Oproepdetails" @@ -213,11 +217,9 @@ "Geblokkeerde nummers" "%1$s is al geblokkeerd." "Oproepaccounts" - "Inschakelen" "Toestemmingen instellen" "Als je de snelkeuzefunctie wilt inschakelen, schakel je de machtiging voor Contacten in." "Als je je gesprekkenlijst wilt bekijken, schakel je de machtiging voor Telefoon in." - "Als je je contacten wilt bekijken, schakel je de machtiging voor Contacten in." "Als je je voicemail wilt beluisteren, schakel je de machtiging voor Telefoon in." "Als je naar contacten wilt zoeken, schakel je de contacttoestemming in." "Als je iemand wilt bellen, schakel je de machtiging voor Telefoon in." diff --git a/java/com/android/dialer/app/res/values-no/strings.xml b/java/com/android/dialer/app/res/values-no/strings.xml index d92edc6491a94c341f02f52496e88669a0e7c5b6..bda4915b50530a42ea5a4e8ff5e34a455d4bea1e 100644 --- a/java/com/android/dialer/app/res/values-no/strings.xml +++ b/java/com/android/dialer/app/res/values-no/strings.xml @@ -85,6 +85,10 @@ "Gå tilbake til aktiv samtale" "Legg til en samtale" "Innkommende samtaler" + "Starter massehandlingsmodus" + "Massehandlingsmodus er avsluttet" + "Du har valgt %1$s" + "Du har valgt bort %1$s" "Spill av talemelding" "Se kontakten %1$s" "Ring %1$s" @@ -99,11 +103,13 @@ "Telefonsvarer" "%s sek" "%s min %s sek" + "Avbryt massehandlinsmodus" "talepost" "talepost" "Ja" "Nei" "Slett markert %1$s?" + "%1$s er valgt" @string/call_log_header_today "%1$s kl. %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Henter fra SIM-kort…" "Kontakter på SIM-kort" - "Ingen kontaktapper er tilgjengelige" "Talesøk er ikke tilgjengelig" "Kan ikke ringe fordi Telefon-appen er deaktivert." "Søk i kontakter" @@ -145,10 +150,9 @@ "%s nye tapte anrop" "Du har ingen på hurtigoppringning ennå" "Legg til en favoritt" - "Du har ingen kontakter ennå" - "Legg til en kontakt" "Trykk på bildet for å se alle numrene, eller trykk og hold for å omorganisere" "Fjern" + "Velg alle" "Videoanrop" "Send en melding" "Samtaleinformasjon" @@ -213,11 +217,9 @@ "Blokkerte numre" "%1$s er allerede blokkert." "Ringekontoer" - "Slå på" "Angi tillatelser" "For å slå på hurtigoppringning, slå på Kontakter-tillatelsen." "For å se samtaleloggen din, slå på Telefon-tillatelsen." - "For å se kontaktene dine, slå på Kontakter-tillatelsen." "For å få tilgang til talepostkassen, slå på Telefon-tillatelsen." "For å søke i kontaktene dine, slå på tillatelser for Kontakter." "For å ringe, slå på Telefon-tillatelsen." diff --git a/java/com/android/dialer/app/res/values-pa/strings.xml b/java/com/android/dialer/app/res/values-pa/strings.xml index 76d4b9b700e51bd391e956fb6b723d7ae144621e..8e6540727e79c399afd60a6371dc64ed2d6b344d 100644 --- a/java/com/android/dialer/app/res/values-pa/strings.xml +++ b/java/com/android/dialer/app/res/values-pa/strings.xml @@ -85,6 +85,10 @@ "ਪ੍ਰਗਤੀ ਵਿੱਚ ਕਾਲ ਤੇ ਵਾਪਸ ਜਾਓ" "ਕਾਲ ਜੋੜੋ" "ਇਨਕਮਿੰਗ ਕਾਲਾਂ" + "ਬਲਕ ਕਾਰਵਾਈ ਮੋਡ ਵਿੱਚ ਦਾਖਲ ਹੋਇਆ ਜਾ ਰਿਹਾ ਹੈ" + "ਬਲਕ ਕਾਰਵਾਈ ਮੋਡ ਨੂੰ ਛੱਡਿਆ" + "%1$s ਨੂੰ ਚੁਣਿਆ ਗਿਆ" + "%1$s ਨੂੰ ਅਣ-ਚੁਣਿਆ ਕੀਤਾ ਗਿਆ" "ਵੌਇਸਮੇਲ ਪਲੇ ਕਰੋ" "ਸੰਪਰਕ %1$s ਦੇਖੋ" "%1$s ਨੂੰ ਕਾਲ ਕਰੋ" @@ -99,11 +103,13 @@ "ਵੌਇਸਮੇਲ" "%s ਸਕਿੰਟ" "%s ਮਿੰਟ %s ਸਕਿੰਟ" + "ਬੈਚ ਕਾਰਵਾਈਆਂ ਮੋਡ ਨੂੰ ਰੱਦ ਕਰੋ" "ਵੌਇਸਮੇਲ" "ਵੌਇਸਮੇਲਾਂ" "ਹਾਂ" "ਨਹੀਂ" "ਕੀ ਚੁਣੀ(ਆਂ) ਹੋਈ(ਆਂ) %1$s ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?" + "%1$s ਨੂੰ ਚੁਣਿਆ ਗਿਆ" @string/call_log_header_today "%1$s ਨੂੰ %2$s ਵਜੇ" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "SIM ਕਾਰਡ ਵਿੱਚੋਂ ਲੋਡ ਕਰ ਰਿਹਾ ਹੈ…" "SIM ਕਾਰਡ ਸੰਪਰਕ" - "ਕੋਈ ਸੰਪਰਕ ਐਪ ਉਪਲਬਧ ਨਹੀਂ" "ਵੌਇਸ ਖੋਜ ਉਪਲਬਧ ਨਹੀਂ ਹੈ" "ਇੱਕ ਫੋਨ ਕਾਲ ਨਹੀਂ ਕਰ ਸਕਦਾ ਕਿਉਂਕਿ ਫੋਨ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਅਯੋਗ ਬਣਾਇਆ ਗਿਆ ਹੈ।" "ਸੰਪਰਕ ਖੋਜੋ" @@ -145,10 +150,9 @@ "%s ਨਵੀਆਂ ਮਿਸਡ ਕਾਲਾਂ" "ਅਜੇ ਤੁਹਾਡੇ ਸਪੀਡ ਡਾਇਲ \'ਤੇ ਕੋਈ ਵੀ ਵਿਅਕਤੀ ਨਹੀਂ ਹੈ" "ਕੋਈ ਮਨਪਸੰਦ ਸ਼ਾਮਲ ਕਰੋ" - "ਤੁਹਾਡੇ ਕੋਲ ਅਜੇ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ ਹਨ।" - "ਕੋਈ ਸੰਪਰਕ ਸ਼ਾਮਲ ਕਰੋ" "ਸਾਰੇ ਨੰਬਰਾਂ ਨੂੰ ਵੇਖਣ ਲਈ ਚਿਤਰ ਨੂੰ ਸਪਰਸ਼ ਕਰੋ ਜਾਂ ਦੁਬਾਰਾ ਕ੍ਰਮਬੱਧ ਕਰਨ ਲਈ ਸਪਰਸ਼ ਕਰੋ ਅਤੇ ਦਬਾਈ ਰੱਖੋ" "ਹਟਾਓ" + "ਸਭ ਚੁਣੋ" "ਵੀਡੀਓ ਕਾਲ" "ਇੱਕ ਸੁਨੇਹਾ ਭੇਜੋ" "ਕਾਲ ਵੇਰਵੇ" @@ -213,11 +217,9 @@ "ਬਲੌਕ ਕੀਤੇ ਗਏ ਨੰਬਰ" "%1$s ਪਹਿਲਾਂ ਹੀ ਬਲੌਕ ਕੀਤਾ ਹੋਇਆ ਹੈ।" "ਕਾਲਿੰਗ ਖਾਤੇ" - "ਚਾਲੂ ਕਰੋ" "ਅਨੁਮਤੀਆਂ ਸੈੱਟ ਕਰੋ" "ਸਪੀਡ ਡਾਇਲ ਨੂੰ ਸਮਰੱਥ ਕਰਨ ਲਈ, ਸੰਪਰਕ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।" "ਆਪਣਾ ਕਾਲ ਲੌਗ ਵੇਖਣ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।" - "ਆਪਣੇ ਸੰਪਰਕਾਂ ਨੂੰ ਵੇਖਣ ਲਈ, ਸੰਪਰਕ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।" "ਆਪਣੀ ਵੌਇਸਮੇਲ ਐਕਸੈਸ ਕਰਨ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।" "ਆਪਣੇ ਸੰਪਰਕਾਂ ਦੀ ਖੋਜ ਕਰਨ ਲਈ,, ਸੰਪਰਕ ਅਨੁਮਤੀਆਂ ਨੂੰ ਚਾਲੂ ਕਰੋ।" "ਕਾਲ ਕਰਨ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।" diff --git a/java/com/android/dialer/app/res/values-pl/strings.xml b/java/com/android/dialer/app/res/values-pl/strings.xml index 76adfe579ebc9d12647c4643370d915b67403858..8f57a82b43ce412d0a73856ae1e02a2fe29626a3 100644 --- a/java/com/android/dialer/app/res/values-pl/strings.xml +++ b/java/com/android/dialer/app/res/values-pl/strings.xml @@ -87,6 +87,10 @@ "Wróć do aktywnego połączenia" "Dodaj połączenie" "Połączenia przychodzące" + "Włączono tryb działań zbiorczych" + "Wyłączono tryb działań zbiorczych" + "Wybrano: %1$s" + "Anulowano wybór: %1$s" "Odtwórz pocztę głosową" "Wyświetl kontakt %1$s" "Zadzwoń do: %1$s" @@ -101,11 +105,13 @@ "Poczta głosowa" "%s s" "%s min %s s" + "Anuluj tryb działań zbiorczych" "wiadomości głosowe" "wiadomości głosowe" "Tak" "Nie" "Usunąć wybrane %1$s?" + "Wybrane: %1$s" @string/call_log_header_today "%1$s o %2$s" "%1$02d:%2$02d" @@ -118,7 +124,6 @@ "Numer MEID" "Wczytuję z karty SIM…" "Kontakty z karty SIM" - "Nie jest dostępna aplikacja do obsługi kontaktów" "Wyszukiwanie głosowe jest niedostępne" "Nie można zadzwonić, ponieważ aplikacja Telefon została wyłączona." "Przeszukuj kontakty" @@ -147,10 +152,9 @@ "Nowe nieodebrane połączenia: %s" "Lista szybkiego wybierania jest pusta" "Dodaj do ulubionych" - "Nie masz jeszcze żadnych kontaktów" - "Dodaj kontakt" "Kliknij obraz, by zobaczyć wszystkie numery, lub kliknij go i przytrzymaj, by zmienić kolejność" "Usuń" + "Zaznacz wszystkie" "Rozmowa wideo" "Wyślij wiadomość" "Szczegóły połączenia" @@ -217,11 +221,9 @@ "Zablokowane numery" "Numer %1$s jest już zablokowany." "Konta telefoniczne" - "Włącz" "Ustaw uprawnienia" "Aby włączyć szybkie wybieranie, włącz uprawnienie Kontakty." "Aby zobaczyć swój rejestr połączeń, włącz uprawnienie Telefon." - "Aby zobaczyć swoje kontakty, włącz uprawnienie Kontakty." "Aby uzyskać dostęp do poczty głosowej, włącz uprawnienie Telefon." "Aby wyszukać kontakty, włącz uprawnienia Kontakty." "Aby nawiązać połączenie, włącz uprawnienie Telefon." diff --git a/java/com/android/dialer/app/res/values-pt-rBR/strings.xml b/java/com/android/dialer/app/res/values-pt-rBR/strings.xml index 780ca07dbdf712c6f6cc09866a5157f416d860d8..eb61923e99fd55d3a0d0d418e0e6681f1d10bf17 100644 --- a/java/com/android/dialer/app/res/values-pt-rBR/strings.xml +++ b/java/com/android/dialer/app/res/values-pt-rBR/strings.xml @@ -85,6 +85,10 @@ "Retornar para a chamada em espera" "Ad. cham." "Chamadas recebidas" + "Entrando no modo de ação em massa" + "Saindo do modo de ação em massa" + "%1$s selecionado" + "%1$s não selecionado" "Reproduzir mensagem de voz" "Visualizar contato %1$s" "Ligar para %1$s" @@ -99,11 +103,13 @@ "Correio de voz" "%s seg" "%s m %s s" + "Cancelar modo de ações em lote" "correio de voz" "correios de voz" "Sim" "Não" "Excluir a seleção de %1$s?" + "Itens selecionados: %1$s" @string/call_log_header_today "%1$s às %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Carregando do cartão SIM..." "Contatos do cartão SIM" - "Nenhum app de contatos disponível" "A pesquisa por voz não está disponível" "Não é possível fazer uma chamada porque o app Telefone foi desativado." "Pesquisar contatos" @@ -145,10 +150,9 @@ "%s novas chamadas perdidas" "Ainda não há ninguém na sua discagem rápida" "Adicionar favorito" - "Você ainda não tem contatos" - "Adicionar um contato" "Toque na imagem para ver todos os números ou toque e segure para reordenar" "Remover" + "Selecionar tudo" "Videochamada" "Enviar uma mensagem" "Detalhes da chamada" @@ -213,11 +217,9 @@ "Números bloqueados" "O número %1$s já está bloqueado." "Contas de chamadas" - "Ativar" "Definir permissões" "Para ativar a discagem rápida, ative a permissão para o app Contatos." "Para ver seu registro de chamadas, ative a permissão para o app Telefone." - "Para ver seus contatos, ative a permissão para o app Contatos." "Para acessar seu correio de voz, ative a permissão para o app Telefone." "Para pesquisar seus contatos, ative as permissões para \"Contatos\"." "Para fazer uma chamada, ative a permissão para o app Telefone." diff --git a/java/com/android/dialer/app/res/values-pt-rPT/strings.xml b/java/com/android/dialer/app/res/values-pt-rPT/strings.xml index 95fa75c7e71f39e01e27d942576b59312cfc9ec2..493f846c4c98a177c1a8dbf6332eaf224c4443a5 100644 --- a/java/com/android/dialer/app/res/values-pt-rPT/strings.xml +++ b/java/com/android/dialer/app/res/values-pt-rPT/strings.xml @@ -85,6 +85,10 @@ "Voltar à chamada em curso" "Adicionar chamada" "Chamadas recebidas" + "A entrar no modo de ação em massa…" + "Saiu do modo de ação em massa" + "%1$s selecionado" + "%1$s não selecionado" "Reproduzir mensagem de correio de voz" "Ver o contacto %1$s" "Ligar a %1$s" @@ -99,11 +103,13 @@ "Correio de voz" "%s seg" "%s min. %s seg." + "Cancelar modo de ações em lote" "mensagem de correio de voz" "mensagens de correio de voz" "Sim" "Não" "Pretende eliminar a(s) %1$s selecionada(s)?" + "%1$s selecionada(s)" @string/call_log_header_today "%1$s às %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "A carregar a partir do cartão SIM..." "Contactos no cartão SIM" - "Não existe nenhuma aplicação de contactos disponível" "Pesquisa por voz não disponível" "Não é possível efetuar uma chamada porque a aplicação Telefone foi desativada." "Pesquisar contactos" @@ -145,10 +150,9 @@ "%s chamadas não atendidas novas" "Ainda não tem ninguém na marcação rápida" "Adicionar um favorito" - "Ainda não tem nenhum contacto" - "Adicionar um contacto" "Toque na imagem para ver todos os números ou toque sem soltar para reordenar" "Remover" + "Selecionar tudo" "Videochamada" "Enviar uma mensagem" "Detalhes da chamada" @@ -213,11 +217,9 @@ "Números bloqueados" "%1$s já está bloqueado." "Contas de chamadas" - "Ativar" "Definir autorizações" "Para ativar a marcação rápida, ative a autorização Contactos." "Para ver o registo de chamadas, ative a autorização Telemóvel." - "Para ver os seus contactos, ative a autorização Contactos." "Para aceder ao correio de voz, ative a autorização Telemóvel." "Para pesquisar os seus contactos, ative as autorizações Contactos." "Para efetuar uma chamada, ative a autorização Telemóvel." diff --git a/java/com/android/dialer/app/res/values-pt/strings.xml b/java/com/android/dialer/app/res/values-pt/strings.xml index 780ca07dbdf712c6f6cc09866a5157f416d860d8..eb61923e99fd55d3a0d0d418e0e6681f1d10bf17 100644 --- a/java/com/android/dialer/app/res/values-pt/strings.xml +++ b/java/com/android/dialer/app/res/values-pt/strings.xml @@ -85,6 +85,10 @@ "Retornar para a chamada em espera" "Ad. cham." "Chamadas recebidas" + "Entrando no modo de ação em massa" + "Saindo do modo de ação em massa" + "%1$s selecionado" + "%1$s não selecionado" "Reproduzir mensagem de voz" "Visualizar contato %1$s" "Ligar para %1$s" @@ -99,11 +103,13 @@ "Correio de voz" "%s seg" "%s m %s s" + "Cancelar modo de ações em lote" "correio de voz" "correios de voz" "Sim" "Não" "Excluir a seleção de %1$s?" + "Itens selecionados: %1$s" @string/call_log_header_today "%1$s às %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Carregando do cartão SIM..." "Contatos do cartão SIM" - "Nenhum app de contatos disponível" "A pesquisa por voz não está disponível" "Não é possível fazer uma chamada porque o app Telefone foi desativado." "Pesquisar contatos" @@ -145,10 +150,9 @@ "%s novas chamadas perdidas" "Ainda não há ninguém na sua discagem rápida" "Adicionar favorito" - "Você ainda não tem contatos" - "Adicionar um contato" "Toque na imagem para ver todos os números ou toque e segure para reordenar" "Remover" + "Selecionar tudo" "Videochamada" "Enviar uma mensagem" "Detalhes da chamada" @@ -213,11 +217,9 @@ "Números bloqueados" "O número %1$s já está bloqueado." "Contas de chamadas" - "Ativar" "Definir permissões" "Para ativar a discagem rápida, ative a permissão para o app Contatos." "Para ver seu registro de chamadas, ative a permissão para o app Telefone." - "Para ver seus contatos, ative a permissão para o app Contatos." "Para acessar seu correio de voz, ative a permissão para o app Telefone." "Para pesquisar seus contatos, ative as permissões para \"Contatos\"." "Para fazer uma chamada, ative a permissão para o app Telefone." diff --git a/java/com/android/dialer/app/res/values-ro/strings.xml b/java/com/android/dialer/app/res/values-ro/strings.xml index 725ff4a3cd444a3d1d0e26eda4a8180e51fa9bc5..93d01888a1002bcca70c94e562acf687749de049 100644 --- a/java/com/android/dialer/app/res/values-ro/strings.xml +++ b/java/com/android/dialer/app/res/values-ro/strings.xml @@ -86,6 +86,10 @@ "Reveniți la apelul în curs" "Adăugați un apel" "Apeluri de intrare" + "Se intră în modul acțiune în bloc" + "Ați ieșit din modul acțiune în bloc" + "S-a selectat %1$s" + "S-a deselectat %1$s" "Redați mesajul vocal" "Afișați persoana din agendă %1$s" "Apelați %1$s" @@ -100,11 +104,13 @@ "Mesagerie vocală" "%s secunde" "%s min. %s sec." + "Anulați modul de acțiuni în lot" "mesagerie vocală" "mesaje vocale" "Da" "Nu" "Ștergeți cele %1$s selectate?" + "%1$s selectate" @string/call_log_header_today "%1$s la %2$s" "%1$02d:%2$02d" @@ -117,7 +123,6 @@ "MEID" "Se încarcă de pe cardul SIM..." "Persoanele din agendă de pe cardul SIM" - "Nu este disponibilă nicio aplicație pentru agendă" "Căutarea vocală nu este disponibilă" "Nu se poate efectua un apel telefonic, deoarece aplicația Telefon a fost dezactivată." "Căutați în Agendă" @@ -146,10 +151,9 @@ "%s apeluri nepreluate noi" "Nicio persoană de contact setată pentru apelarea rapidă" "Adăugați o persoană de contact preferată" - "Nu aveți încă persoane de contact" - "Adăugați o persoană de contact" "Atingeți imaginea pentru a vedea toate numerele sau atingeți lung pentru reordonare" "Eliminați" + "Selectați tot" "Apel video" "Trimiteți un mesaj" "Detaliile apelului" @@ -215,11 +219,9 @@ "Numere blocate" "%1$s este deja blocat." "Conturi pentru apelare" - "Activați" "Setați permisiunile" "Pentru a activa apelarea rapidă, activați permisiunea Agendă." "Pentru a vedea jurnalul de apeluri, activați permisiunea Telefon." - "Pentru a vedea persoanele de contact, activați permisiunea Agendă." "Pentru a accesa mesageria vocală, activați permisiunea Telefon." "Pentru a căuta în persoanele de contact, activați permisiunea Agendă." "Pentru a apela, activați permisiunea Telefon." diff --git a/java/com/android/dialer/app/res/values-ru/strings.xml b/java/com/android/dialer/app/res/values-ru/strings.xml index 557832bcda8f8f227d0108103e57af5a9d26d6ff..54278c40b135d64857dbc53346d25dca4a3d016e 100644 --- a/java/com/android/dialer/app/res/values-ru/strings.xml +++ b/java/com/android/dialer/app/res/values-ru/strings.xml @@ -87,6 +87,10 @@ "Вернуться к текущему вызову" "Добавить вызов" "Входящие вызовы" + "Вы вошли в режим массового действия" + "Вы вышли из режима массового действия" + "Выбран объект %1$s" + "Выбор объекта %1$s отменен" "Прослушать голосовую почту" "Просмотреть данные: %1$s" "Вызов: %1$s" @@ -101,11 +105,13 @@ "Голосовая почта" "%s сек." "%s мин. %s сек." + "Отмена режима массового действия" "голосовое сообщение" "голосовые сообщения" "Да" "Нет" "Удалить %1$s?" + "Выбрано: %1$s" @string/call_log_header_today "%1$s в %2$s" "%1$02d:%2$02d" @@ -118,7 +124,6 @@ "MEID" "Загрузка с SIM-карты…" "Контакты на SIM-карте" - "Нет приложения для работы с контактами" "Голосовой поиск недоступен" "Нельзя совершать телефонные звонки, поскольку приложение \"Телефон\" отключено." "Поиск в контактах" @@ -147,10 +152,9 @@ "Пропущенных вызовов: %s" "Нет номеров для быстрого набора" "Настроить быстрый набор" - "Нет контактов" - "Добавить контакт" "Коснитесь изображения, чтобы увидеть все номера, или нажмите и удерживайте, чтобы изменить порядок" "Удалить" + "Выбрать все" "Видеовстреча" "Отправить сообщение" "Сведения о вызове" @@ -217,11 +221,9 @@ "Заблокированные номера" "%1$s уже заблокирован." "Аккаунты для звонков" - "Включить" "Задать разрешения" "Чтобы настроить быстрый набор, предоставьте приложению разрешение \"Контакты\"." "Чтобы открыть список вызовов, предоставьте приложению разрешение \"Телефон\"." - "Чтобы открыть список контактов, предоставьте приложению разрешение \"Контакты\"." "Чтобы получить доступ к голосовой почте, предоставьте приложению разрешение \"Телефон\"." "Для поиска контактов включите разрешение \"Контакты\"." "Чтобы позвонить, предоставьте приложению разрешение \"Телефон\"." diff --git a/java/com/android/dialer/app/res/values-si/strings.xml b/java/com/android/dialer/app/res/values-si/strings.xml index 329d89e8d81b8b0cb60eec53c1503fc0b64113db..63634577fa10eafc06c6b1a5c6f5e9483b486f35 100644 --- a/java/com/android/dialer/app/res/values-si/strings.xml +++ b/java/com/android/dialer/app/res/values-si/strings.xml @@ -85,6 +85,10 @@ "පවතින ඇමතුමට නැවත යන්න" "ඇමතුමක් එක් කරන්න" "එන ඇමතුම්" + "තොග ක්‍රියා ප්‍රකාරය ඇතුළු කරමින්" + "තොග ක්‍රියා ප්‍රකාරය හැර යන ලදී" + "%1$s තෝරා ගන්නා ලදී" + "%1$s තෝරා ගැනීම ඉවත් කරන ලදී" "හඬ තැපෑල ධාවනය කිරීම" "%1$s සම්බන්ධතාවය බලන්න" "%1$s අමතන්න" @@ -99,11 +103,13 @@ "හඬ තැපෑල" "තත් %s" "මිනි %s තත් %s" + "කාණ්ඩ ක්‍රියා ප්‍රකාරය අවලංගු කරන්න" "හඬ තැපෑල" "හඬ තැපැල්" "ඔව්" "නැත" "තෝරා ගත් %1$s මකන්නද?" + "%1$s තෝරා ගන්නා ලදි" @string/call_log_header_today "%1$s දින %2$sට" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "SIM පතෙන් පූරණය කරමින්…" "SIM පත් සම්බන්ධතා" - "සබඳතා යෙදුමක් ලබාගත නොහැකිය" "හඬ සෙවුම ලබාගත නොහැකිය" "දුරකථන යෙදුම අබල කර ඇති නිසා දුරකථන ඇමතුම ලබාගැනීම කළ නොහැක." "සම්බන්ධතා සෙවීම" @@ -145,10 +150,9 @@ "නව මඟ හැරුණු ඇමතුම් %s" "ඔබගේ වේග ඩයල් එකේ තවමත් කවුරුවත් නැහැ" "ප්‍රියතම ලෙස එක් කරන්න" - "ඔබ තවමත් සම්බන්ධතා නැහැ" - "සම්බන්ධතාවයක් එක් කරන්න" "සියලු අංක බැලීමට රූපය ස්පර්ශ කරන්න නැතහොත් නැවත අනුපිළිවෙළට සැකසීමට ස්පර්ශ කර අල්ලාගෙන සිටින්න" "ඉවත් කරන්න" + "සියල්ල තෝරන්න" "වීඩියෝ ඇමතුම" "පණිවිඩයක් යවන්න" "ඇමතුම් විස්තර" @@ -213,11 +217,9 @@ "අවහිර කළ අංක" "%1$s දැනටමත් අවහිර කර ඇත." "ගිණුම් ඇමතීම" - "ක්‍රියාත්මක කරන්න" "අවසර සකසන්න" "වේග ඩයල් කිරීම සබල කිරීමට, සම්බන්ධතා අවසරය ක්‍රියාත්මක කරන්න." "ඔබේ ඇමතුම් ලොගය බැලීමට, දුරකථන අවසරය ක්‍රියාත්මක කරන්න." - "ඔබේ සම්බන්ධතා බැලීමට, සම්බන්ධතා අවසරය ක්‍රියාත්මක කරන්න." "ඔබේ හඬ තැපෑල වෙත ප්‍රවේශ වීමට, දුරකථන අවසරය ක්‍රියාත්මක කරන්න." "ඔබේ සම්බන්ධතා සෙවීමට, සම්බන්ධතා අවසර ක්‍රියාත්මක කරන්න." "ඇමතුමක් ලබා ගැනීමට, දුරකථන අවසරය ක්‍රියාත්මක කරන්න." diff --git a/java/com/android/dialer/app/res/values-sk/strings.xml b/java/com/android/dialer/app/res/values-sk/strings.xml index 60b63d520623a8ecb2be91dc429600765819c7c9..f7bf4237c44e0a116eb4cda074d72399a8328c8c 100644 --- a/java/com/android/dialer/app/res/values-sk/strings.xml +++ b/java/com/android/dialer/app/res/values-sk/strings.xml @@ -87,6 +87,10 @@ "Návrat k prebiehajúcemu hovoru" "Pridať hovor" "Prichádzajúce hovory" + "Vstupuje sa do režimu hromadných akcií" + "Odišli ste z režimu hromadných akcií" + "Položka %1$s bola vybraná" + "Výber položky %1$s bol zrušený" "Prehrať hlasovú správu" "Zobraziť kontakt %1$s" "Zavolať kontakt %1$s" @@ -101,11 +105,13 @@ "Hlasová schránka" "%s s" "%s min. %s s" + "Zrušiť režim hromadných akcií" "hlasová správa" "hlasové správy" "Áno" "Nie" "Chcete odstrániť vybraté položky (%1$s)?" + "Vybraté: %1$s" @string/call_log_header_today "%1$s%2$s" "%1$02d:%2$02d" @@ -118,7 +124,6 @@ "MEID" "Prebieha načítavanie z SIM karty..." "Kontakty na SIM karte" - "Nie je k dispozícii žiadna aplikácia na kontakty" "Hlasové vyhľadávanie nie je k dispozícii" "Nie je možné volať, pretože aplikácia Telefón bola deaktivovaná." "Hľadať v kontaktoch" @@ -147,10 +152,9 @@ "Nové zmeškané hovory: %s" "V rýchlej voľbe zatiaľ nemáte žiadny kontakt" "Pridať obľúbený kontakt" - "Zatiaľ nemáte žiadne kontakty" - "Pridať kontakt" "Klepnutím na obrázok môžete zobraziť všetky čísla. Pridržaním obrázka môžete zmeniť poradie." "Odstrániť" + "Vybrať všetko" "Videohovor" "Odoslať správu" "Podrobnosti hovoru" @@ -217,11 +221,9 @@ "Blokované čísla" "Číslo %1$s je už blokované." "Telefónne účty" - "Zapnúť" "Nastaviť povolenia" "Ak chcete aktivovať rýchlu voľbu, zapnite povolenie Kontakty." "Ak si chcete zobraziť denník hovorov, zapnite povolenie Telefón." - "Ak si chcete zobraziť kontakty, zapnite povolenie Kontakty." "Ak chcete používať hlasovú schránku, zapnite povolenie Telefón." "Ak chcete hľadať kontakty, zapnite povolenie Kontakty." "Ak chcete volať, zapnite povolenie Telefón." diff --git a/java/com/android/dialer/app/res/values-sl/strings.xml b/java/com/android/dialer/app/res/values-sl/strings.xml index b46b99ab58bd36ef167903c8922a43ee52fedadb..d3c57dd92b1e04bba3d59b5e9eeca79dd5cac250 100644 --- a/java/com/android/dialer/app/res/values-sl/strings.xml +++ b/java/com/android/dialer/app/res/values-sl/strings.xml @@ -87,6 +87,10 @@ "Nazaj na klic, ki poteka" "Dodaj klic" "Dohodni klici" + "Prehod v način množičnega dejanja" + "Prehod iz načina množičnega dejanja" + "Izbrano: %1$s" + "Preklican izbor: %1$s" "Predvajanje sporočil glasovne pošte" "Ogled stika %1$s" "Pokliči %1$s" @@ -101,11 +105,13 @@ "Glasovna pošta" "%s s" "%s min %s s" + "Prekliči način množičnega dejanja" "sporočilo v odzivniku" "sporočila v odzivniku" "Da" "Ne" "Želite izbrisati %1$s?" + "Št. izbranih: %1$s" @string/call_log_header_today "%1$s ob %2$s" "%1$02d:%2$02d" @@ -118,7 +124,6 @@ "MEID" "Nalaganje s kartice SIM ..." "Stiki na kartici SIM" - "Ni aplikacije za stike" "Glasovno iskanje ni na voljo" "Ni mogoče opraviti telefonskega klica, ker je aplikacija Telefon onemogočena." "Iskanje stikov" @@ -147,10 +152,9 @@ "Št. novih zgrešenih klicev: %s" "Na seznamu za hitro klicanje nimate še nikogar" "Dodajte priljubljenega" - "Nimate še stikov" - "Dodajte stik" "Dotaknite se slike, da prikažete vse številke, ali pa se je dotaknite in pridržite, da spremenite vrstni red." "Odstrani" + "Izberi vse" "Videoklic" "Pošljite sporočilo" "Podrobnosti klica" @@ -217,11 +221,9 @@ "Blokirane številke" "Telefonska številka %1$s je že blokirana." "Računi za klicanje" - "Vklop" "Nastavi dovoljenja" "Če želite omogočiti hitro klicanje, vklopite dovoljenje za stike." "Če si želite ogledati dnevnik klicev, vklopite dovoljenje za telefon." - "Če si želite ogledati stike, vklopite dovoljenje za stike." "Če želite dostopati do sporočil v odzivniku, vklopite dovoljenje za telefon." "Če želite iskati po stikih, vklopite dovoljenje za stike." "Če želite klicati, vklopite dovoljenje za telefon." diff --git a/java/com/android/dialer/app/res/values-sq/strings.xml b/java/com/android/dialer/app/res/values-sq/strings.xml index 6a274fcd258a7379a246ead7656651438c3d7eef..84704459c738046bced67c0bc04d6f78d17262f3 100644 --- a/java/com/android/dialer/app/res/values-sq/strings.xml +++ b/java/com/android/dialer/app/res/values-sq/strings.xml @@ -85,6 +85,10 @@ "Kthehu te telefonata" "Shto një telefonatë" "Telefonatat hyrëse" + "Po hyn në modalitetin e veprimit në masë" + "U largove nga modaliteti i veprimit në masë" + "U zgjodh %1$s" + "Zgjedhja e %1$s u anulua" "Luaj postën zanore" "Shiko kontaktin %1$s" "Telefono %1$s" @@ -99,11 +103,13 @@ "Posta zanore" "%s sekonda" "%s min. e %s sek." + "Anulo modalitetin e veprimeve në grup" "posta zanore" "postat zanore" "Po" "Jo" "Të fshihen %1$s të zgjedhura?" + "%1$s të zgjedhura" @string/call_log_header_today "%1$s%2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Po ngarkon nga karta SIM…" "Kontaktet e kartës SIM" - "Nuk mund të përdoret asnjë aplikacion për kontaktet" "Kërkimi me zë nuk mundësohet" "Telefonata nuk mund të bëhet sepse aplikacioni \"Telefoni\" është i çaktivizuar." "Kërko për kontakte" @@ -145,10 +150,9 @@ "%s telefonata të reja të humbura" "Askush nuk është ende në thirrjen tënde të shpejtuar" "Shto një të preferuar" - "Nuk ke ende kontakte" - "Shto një kontakt" "Prek imazhin për të parë të gjithë numrat ose mbaje të shtypur për ta pozicionuar përsëri" "Hiq" + "Zgjidh të gjitha" "Telefonatë me video" "Dërgo një mesazh" "Detajet e telefonatës" @@ -213,11 +217,9 @@ "Numrat e bllokuar" "%1$s është i bllokuar tashmë." "Llogaritë e telefonatave" - "Aktivizo" "Cakto lejet" "Për të aktivizuar thirrjen e shpejtuar, aktivizo lejen e Kontakteve." "Për të parë evidencën e telefonatave, aktivizo lejen e Telefonit." - "Për të parë kontaktet, aktivizo lejen e Kontakteve." "Për të pasur qasje në postën zanore, aktivizo lejen e Telefonit." "Për të kërkuar kontaktet, aktivizo lejet e Kontakteve" "Për të kryer një telefonatë, aktivizo lejen e Telefonit." diff --git a/java/com/android/dialer/app/res/values-sr/strings.xml b/java/com/android/dialer/app/res/values-sr/strings.xml index 0def958d49828d411775329ef8726f6172c8deb9..6cf7a7c8563d5c5d7bb0b4d23f1ff9f8164fc070 100644 --- a/java/com/android/dialer/app/res/values-sr/strings.xml +++ b/java/com/android/dialer/app/res/values-sr/strings.xml @@ -86,6 +86,10 @@ "Врати се на позив који је у току" "Додај позив" "Долазни позиви" + "Улазите у режим групних радњи" + "Изашли сте из режима групних радњи" + "Изабрано је %1$s" + "Опозван је избор %1$s" "Пуштање говорне поште" "Прикажи контакт %1$s" "Позови %1$s" @@ -100,11 +104,13 @@ "Говорна пошта" "%s сек" "%s мин %s сек" + "Откажите режим групних радњи" "говорну поруку" "говорне поруке" "Да" "Не" "Желите ли да избришете изабрану(е) %1$s?" + "Изабраних: %1$s" @string/call_log_header_today "%1$s у %2$s" "%1$02d:%2$02d" @@ -117,7 +123,6 @@ "MEID" "Учитава се са SIM картице…" "Контакти на SIM картици" - "Нема доступне апликације за контакте" "Гласовна претрага није доступна" "Није могуће упутити телефонски позив јер је апликација Телефон онемогућена." "Претражи контакте" @@ -146,10 +151,9 @@ "Нових пропуштених позива: %s" "Немате ниједан контакт на брзом бирању" "Додај омиљен контакт" - "Још увек немате ниједан контакт" - "Додај контакт" "Додирните слику да бисте видели све бројеве или додирните и задржите да бисте им променили распоред" "Уклони" + "Изабери све" "Видео позив" "Пошаљи поруку" "Детаљи позива" @@ -215,11 +219,9 @@ "Блокирани бројеви" "%1$s је већ блокиран." "Налози за позивање" - "Укључи" "Подеси дозволе" "Да бисте омогућили брзо бирање, укључите дозволу за Контакте." "Да бисте видели евиденцију позива, укључите дозволу за Телефон." - "Да бисте видели контакте, укључите дозволу за Контакте." "Да бисте приступили говорној пошти, укључите дозволу за Телефон." "Да бисте претражили контакте, укључите дозволе за Контакте." "Да бисте упутили позив, укључите дозволу за Телефон." diff --git a/java/com/android/dialer/app/res/values-sv/strings.xml b/java/com/android/dialer/app/res/values-sv/strings.xml index 75aa731f9b1d38ce3408bf65fcf1fa99fbb240de..71ef3e55bc8ad665093cf1a1f5daca7c9fd1e445 100644 --- a/java/com/android/dialer/app/res/values-sv/strings.xml +++ b/java/com/android/dialer/app/res/values-sv/strings.xml @@ -85,6 +85,10 @@ "Återvänd till pågående samtal" "Lägg t. samt." "Inkommande samtal" + "Öppnar läget för massåtgärd" + "Stängde läget för massåtgärd" + "Markerade %1$s" + "Avmarkerade %1$s" "Spela upp röstmeddelande" "Visa kontakten %1$s" "Ring %1$s" @@ -99,11 +103,13 @@ "Röstbrevlåda" "%s sekund" "%s min %s sek" + "Avbryt läget för massåtgärd" "röstbrevlåda" "röstmeddelanden" "Ja" "Nej" "Vill du radera markerade %1$s?" + "%1$s har markerats" @string/call_log_header_today "%1$s kl. %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Läser in från SIM-kort…" "Kontakter från SIM-kort" - "Det finns inga appar för kontakter" "Röstsökning är inte tillgänglig" "Det går inte att ringa eftersom appen Telefon har inaktiverats." "Sök efter kontakter" @@ -145,10 +150,9 @@ "%s nya missade samtal" "Du har ingen kontakt som snabbval ännu" "Lägg till en favorit" - "Du har inga kontakter ännu" - "Lägg till en kontakt" "Tryck på bilden för att visa alla nummer eller tryck länge för att ändra ordningen" "Ta bort" + "Markera alla" "Videosamtal" "Skicka ett meddelande" "Samtalsinfo" @@ -213,11 +217,9 @@ "Blockerade nummer" "%1$s är redan blockerat." "Konton för samtal" - "Aktivera" "Ange behörigheter" "Du måste aktivera behörigheten Kontakter för att kunna använda snabbuppringning." "Du måste aktivera behörigheten Telefon för att kunna visa samtalsloggen." - "Du måste aktivera behörigheten Kontakter för att kunna visa kontakterna." "Du måste aktivera behörigheten Telefon för att kunna komma åt röstmeddelanden." "Aktivera behörigheter för Kontakter om du vill söka bland kontakterna." "Du måste aktivera behörigheten Telefon för att kunna ringa." diff --git a/java/com/android/dialer/app/res/values-sw/strings.xml b/java/com/android/dialer/app/res/values-sw/strings.xml index d3b8392d47bc4bc98b1fcda89b1a0bfe3a358903..9cbdd3e8e33ebbdc3901cb3045e7c8b18ae6204a 100644 --- a/java/com/android/dialer/app/res/values-sw/strings.xml +++ b/java/com/android/dialer/app/res/values-sw/strings.xml @@ -85,6 +85,10 @@ "Rudi kwa simu inayoendelea" "Ongeza simu" "Simu zinazoingia" + "Unaingia katika hali ya kutekeleza vitendo vingi" + "Umeondoka katika hali ya kutekeleza vitendo vingi" + "Umeteua %1$s" + "Umebatilisha uteuzi wa %1$s" "Sikiliza ujumbe wa sauti" "Angalia anwani %1$s" "Pigia %1$s" @@ -99,11 +103,13 @@ "Ujumbe wa sauti" "Sekunde %s" "Dak %s sek %s" + "Ghairi hali ya kutekeleza vitendo vingi" "ujumbe wa sauti" "ujumbe wa sauti" "Ndiyo" "Hapana" "Je, ungependa kufuta %1$s uliochagua?" + "%1$s zimechaguliwa" @string/call_log_header_today "%1$s saa %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Inapakia kutoka SIM kadi..." "Anwani za SIM kadi" - "Hakuna programu za mawasiliano zinazopatikana" "Kutafuta kwa kutamka hakupatikani" "Haiwezi kupiga simu kwa sababu programu ya Simu imezimwa." "Tafuta anwani" @@ -145,10 +150,9 @@ "Simu %s za karibuni ambazo hazikujibiwa" "Hakuna mtu aliye katika orodha yako ya watu unaowasiliana nao zaidi" "Ongeza anwani unazopenda zaidi" - "Bado huna anwani zozote" - "Ongeza anwani" "Gusa picha ili uone nambari zote ama uguse na kushikilia ili upange upya" "Ondoa" + "Chagua zote" "Hangout ya Video" "Tuma SMS" "Maelezo ya simu" @@ -213,11 +217,9 @@ "Nambari zilizozuiwa" "%1$s tayari imezuiwa." "Akaunti za simu" - "Washa" "Weka ruhusa" "Ili kuwasha kipengele cha unaowasiliana nao zaidi, washa ruhusa ya Anwani." "Ili uone rekodi yako ya nambari za simu, washa ruhusa ya Simu." - "Ili uone anwani zako, washa ruhusa ya Anwani." "Ili ufikie ujumbe wako wa sauti, washa ruhusa ya Simu." "Ili utafute anwani zako, washa ruhusa za Anwani." "Ili upige simu, washa ruhusa ya Simu." diff --git a/java/com/android/dialer/app/res/values-ta/strings.xml b/java/com/android/dialer/app/res/values-ta/strings.xml index afb852b6d11d426b336b78b2bbadd219438d7ccc..a91088c4fd0dd1dd1d3da47e30343c0f475d60a6 100644 --- a/java/com/android/dialer/app/res/values-ta/strings.xml +++ b/java/com/android/dialer/app/res/values-ta/strings.xml @@ -85,6 +85,10 @@ "செயலிலுள்ள அழைப்பிற்குத் திரும்பு" "அழைப்பைச் சேர்" "உள்வரும் அழைப்புகள்" + "மொத்தச் செயல் பயன்முறையில் நுழைகிறீர்கள்" + "மொத்தச் செயல் பயன்முறையிலிருந்து வெளியேறிவிட்டீர்கள்" + "தேர்ந்தெடுத்த %1$s" + "தேர்வுநீக்கிய %1$s" "குரலஞ்சலை இயக்கு" "%1$s தொடர்பைக் காட்டு" "%1$s ஐ அழை" @@ -99,11 +103,13 @@ "குரலஞ்சல்" "%s வி" "%s நிமிடம் %s வினாடி" + "தொகுப்புச் செயல்கள் பயன்முறையை ரத்துசெய்யும்" "குரலஞ்சல்" "குரலஞ்சல்கள்" "ஆம்" "வேண்டாம்" "தேர்ந்தெடுத்த %1$sஐ நீக்கவா?" + "%1$s தேர்ந்தெடுக்கப்பட்டன" @string/call_log_header_today "%1$s அன்று %2$s மணிக்கு" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "சிம் கார்டிலிருந்து ஏற்றுகிறது…" "சிம் கார்டின் தொடர்புகள்" - "தொடர்புகள் பயன்பாடு எதுவுமில்லை" "குரல் தேடல் இல்லை" "Phone பயன்பாடு முடக்கப்பட்டுள்ளதால், ஃபோன் அழைப்பைச் செய்ய முடியாது." "தொடர்புகளைத் தேடு" @@ -145,10 +150,9 @@ "%s புதிய தவறிய அழைப்புகள்" "இன்னும் விரைவு டயலில் யாரையும் சேர்க்கவில்லை" "முக்கியமானவர்களைச் சேர்" - "இதுவரை எந்தத் தொடர்புகளும் இல்லை" - "ஒரு தொடர்பைச் சேர்க்கவும்" "எல்லா எண்களையும் பார்க்க, படத்தைத் தொடவும் அல்லது மறுவரிசைப்படுத்த, தொட்டுப் பிடித்திருக்கவும்" "அகற்று" + "அனைத்தையும் தேர்ந்தெடு" "வீடியோ அழைப்பு" "செய்தி அனுப்பவும்" "அழைப்பு விவரங்கள்" @@ -213,11 +217,9 @@ "தடுக்கப்பட்ட எண்கள்" "%1$s ஏற்கனவே தடுக்கப்பட்டுள்ளது." "அழைப்பு கணக்குகள்" - "இயக்கு" "அனுமதிகளை அமை" "விரைவு டயலை இயக்க, தொடர்புகள் அனுமதியை இயக்கவும்." "அழைப்புப் பதிவைப் பார்க்க, ஃபோன் அனுமதியை இயக்கவும்." - "தொடர்புகளைப் பார்க்க, தொடர்புகள் அனுமதியை இயக்கவும்." "குரலஞ்சலை அணுக, ஃபோன் அனுமதியை இயக்கவும்." "தொடர்புகளைத் தேட, தொடர்புகள் அனுமதிகளை இயக்கவும்." "அழைக்க, ஃபோன் அனுமதியை இயக்கவும்." diff --git a/java/com/android/dialer/app/res/values-te/strings.xml b/java/com/android/dialer/app/res/values-te/strings.xml index ffc046f691b6b336549b2911a114b922a6b7cb48..aecc1c4b93ac10e47a393ed27881676fee573544 100644 --- a/java/com/android/dialer/app/res/values-te/strings.xml +++ b/java/com/android/dialer/app/res/values-te/strings.xml @@ -85,6 +85,10 @@ "ప్రోగ్రెస్‌లో ఉన్న కాల్‌కు వెళ్లు" "కాల్‌ను జోడించు" "ఇన్‌కమింగ్ కాల్‌లు" + "బల్క్ చర్య మోడ్‌లోకి ప్రవేశిస్తున్నారు" + "బల్క్ చర్య మోడ్ నుండి నిష్క్రమించారు" + "%1$s ఎంచుకోబడింది" + "%1$s ఎంపిక తీసివేయబడింది" "వాయిస్ మెయిల్ ప్లే చేయండి" "%1$s పరిచయాన్ని వీక్షించండి" "%1$sకు కాల్ చేయి" @@ -99,11 +103,13 @@ "వాయిస్ మెయిల్" "%s సెక" "%s నిమి %s సెక" + "సమూహ చర్యల మోడ్‌ను రద్దు చేస్తుంది" "వాయిస్ మెయిల్" "వాయిస్ మెయిల్‌లు" "అవును" "వద్దు" "ఎంచుకున్న %1$sను తొలగించాలా?" + "%1$s ఎంచుకోబడ్డాయి" @string/call_log_header_today "%1$s %2$sకి" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "సిమ్ కార్డు నుండి లోడ్ చేస్తోంది…" "సిమ్ కార్డు పరిచయాలు" - "పరిచయాల అనువర్తనం ఏదీ అందుబాటులో లేదు" "వాయిస్ శోధన అందుబాటులో లేదు" "ఫోన్ అనువర్తనం నిలిపివేయబడినందున ఫోన్ కాల్ చేయలేరు." "పరిచయాలను శోధించు" @@ -145,10 +150,9 @@ "%s కొత్త సమాధానం ఇవ్వని కాల్‌లు" "మీ స్పీడ్ డయల్‌లో ఇంకా ఎవరూ లేరు" "ఇష్టమైన వారిని జోడించండి" - "మీకు ఇప్పటికీ పరిచయాలేవీ లేవు" - "పరిచయాన్ని జోడించండి" "అన్ని నంబర్‌లను చూడటానికి చిత్రాన్ని తాకండి లేదా క్రమం మార్చడానికి తాకి, కాసేపు అలాగే ఉంచండి" "తీసివేయి" + "అన్నీ ఎంచుకోండి" "వీడియో కాల్" "సందేశాన్ని పంపు" "కాల్ వివరాలు" @@ -213,11 +217,9 @@ "బ్లాక్ చేయబడిన నంబర్‌లు" "%1$s ఇప్పటికే బ్లాక్ చేయబడింది." "కాల్ చేసే ఖాతాలు" - "ఆన్ చేయి" "అనుమతులను సెట్ చేయి" "స్పీడ్ డయల్‌ను ప్రారంభించడానికి, పరిచయాల అనుమతిని ఆన్ చేయండి." "మీ కాల్ లాగ్‌ను చూడటానికి, ఫోన్ అనుమతిని ఆన్ చేయండి." - "మీ పరిచయాలను చూడటానికి, పరిచయాల అనుమతిని ఆన్ చేయండి." "మీ వాయిస్ మెయిల్‌ను ప్రాప్యత చేయడానికి, ఫోన్ అనుమతిని ఆన్ చేయండి." "మీ పరిచయాలను శోధించడానికి, పరిచయాల అనుమతులను ఆన్ చేయండి." "కాల్ చేయడానికి, ఫోన్ అనుమతిని ఆన్ చేయండి." diff --git a/java/com/android/dialer/app/res/values-th/strings.xml b/java/com/android/dialer/app/res/values-th/strings.xml index 13916a51d6692d3dd680eed7cf30341ac0c14e66..58507b49e6f88493ea1475fb6836dfa286537362 100644 --- a/java/com/android/dialer/app/res/values-th/strings.xml +++ b/java/com/android/dialer/app/res/values-th/strings.xml @@ -85,6 +85,10 @@ "กลับไปคุยสายต่อ" "เพิ่มการโทร" "สายโทรเข้า" + "กำลังเข้าสู่โหมดการดำเนินการแบบกลุ่ม" + "ออกจากโหมดการทำงานแบบกลุ่มแล้ว" + "เลือก %1$s แล้ว" + "ยกเลิกการเลือก %1$s แล้ว" "เล่นข้อความเสียง" "ดูรายชื่อติดต่อ %1$s" "โทรหา %1$s" @@ -99,11 +103,13 @@ "ข้อความเสียง" "%s วินาที" "%s นาที %s วินาที" + "ยกเลิกโหมดการทำงานแบบกลุ่ม" "ข้อความเสียง" "ข้อความเสียง" "ใช่" "ไม่" "ลบ%1$sที่เลือกหรือไม่" + "เลือกไว้ %1$s รายการ" @string/call_log_header_today "วันที่ %1$s เวลา %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "กำลังโหลดจากซิมการ์ด…" "รายชื่อบนซิมการ์ด" - "ไม่มีแอปรายชื่อติดต่อที่พร้อมใช้งาน" "การค้นหาด้วยเสียงไม่พร้อมใช้งาน" "ไม่สามารถโทรศัพท์ได้เนื่องจากแอปพลิเคชันโทรศัพท์ถูกปิดใช้งาน" "ค้นหารายชื่อติดต่อ" @@ -145,10 +150,9 @@ "สายที่ไม่ได้รับใหม่ %s สาย" "ยังไม่ได้กำหนดผู้ใดในการโทรด่วน" "เพิ่มรายการโปรด" - "คุณยังไม่มีรายชื่อติดต่อ" - "เพิ่มรายชื่อติดต่อ" "แตะรูปภาพเพื่อดูหมายเลขทั้งหมด หรือแตะค้างไว้เพื่อจัดเรียงใหม่" "ลบ" + "เลือกทั้งหมด" "แฮงเอาท์วิดีโอ" "ส่งข้อความ" "รายละเอียดการโทร" @@ -201,7 +205,7 @@ "ข้อความเสียง" "เลือกซิมสำหรับการตั้งค่าข้อความเสียง" "การบล็อกสายเรียกเข้าปิดชั่วคราว" - "ระบบปิดใช้การบล็อกสายเรียกเข้าเนื่องจากคุณติดต่อบริการฉุกเฉินจากโทรศัพท์เครื่องนี้ภายใน 48 ชั่วโมงที่ผ่านมา ระบบจะเปิดใช้คุณลักษณะนี้อีกครั้งโดยอัตโนมัติเมื่อครบ 48 ชั่วโมง" + "ระบบปิดใช้การบล็อกสายเรียกเข้าเนื่องจากคุณติดต่อบริการฉุกเฉินจากโทรศัพท์เครื่องนี้ภายใน 48 ชั่วโมงที่ผ่านมา ระบบจะเปิดใช้ฟีเจอร์นี้อีกครั้งโดยอัตโนมัติเมื่อครบ 48 ชั่วโมง" "นำเข้าหมายเลข" "ก่อนหน้านี้คุณได้ทำเครื่องหมายว่าให้ส่งผู้โทรบางคนไปยังข้อความเสียงโดยอัตโนมัติผ่านแอปอื่นๆ" "ดูหมายเลข" @@ -213,11 +217,9 @@ "หมายเลขที่ถูกบล็อก" "%1$s ถูกบล็อกอยู่แล้ว" "บัญชีการโทร" - "เปิด" "ตั้งค่าสิทธิ์" "หากต้องการเปิดใช้การโทรด่วน ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ" "หากต้องการดูประวัติการโทร ให้เปิดสิทธิ์เข้าถึงโทรศัพท์" - "หากต้องการดูรายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ" "หากต้องการเข้าถึงข้อความเสียง ให้เปิดสิทธิ์เข้าถึงโทรศัพท์" "หากต้องการค้นหารายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ" "หากต้องการโทรออก ให้เปิดสิทธิ์เข้าถึงโทรศัพท์" diff --git a/java/com/android/dialer/app/res/values-tl/strings.xml b/java/com/android/dialer/app/res/values-tl/strings.xml index cc44cb5f250d2063d1cce6d43d74d065fa2cc6c0..9a8157feaef526d063cbc9489583ea8d6eb3046f 100644 --- a/java/com/android/dialer/app/res/values-tl/strings.xml +++ b/java/com/android/dialer/app/res/values-tl/strings.xml @@ -85,6 +85,10 @@ "Bumalik sa kasalukuyang tawag" "Mag-add: tawag" "Mga paparating na tawag" + "Pumapasok sa bulk action mode" + "Umalis sa bulk action mode" + "Napili %1$s" + "Inalis sa pagkakapili %1$s" "I-play ang voicemail" "Tingnan ang contact na si %1$s" "Tawagan si %1$s" @@ -99,11 +103,13 @@ "Voicemail" "%s sec" "%s min %s sec" + "Kanselahin ang batch actions mode" "voicemail" "mga voicemail" "Oo" "Hindi" "I-delete ang napiling %1$s?" + "%1$s ang napili" @string/call_log_header_today "%1$s ng %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Naglo-load mula sa SIM card…" "Mga contact sa SIM card" - "Walang available na app ng mga contact" "Hindi available ang paghahanap gamit ang boses" "Hindi makagawa ng tawag sa telepono dahil naka-disable ang application na Telepono." "Maghanap ng mga contact" @@ -145,10 +150,9 @@ "%s (na) bagong hindi nasagot na tawag" "Wala pang tao sa iyong speed dial" "Magdagdag ng paborito" - "Wala ka pang sinumang mga contact" - "Magdagdag ng contact" "Pindutin ang larawan upang makita ang lahat ng numero o pindutin nang matagal upang ayusing muli" "Alisin" + "Piliin lahat" "Mag-video call" "Magpadala ng mensahe" "Mga detalye ng tawag" @@ -213,11 +217,9 @@ "Mga naka-block na numero" "Naka-block na ang %1$s" "Account sa pagtawag" - "I-on" "Magtakda ng mga pahintulot" "Upang i-enable ang speed dial, i-on ang pahintulot ng Mga Contact." "Upang makita ang iyong log ng tawag, i-on ang pahintulot ng Telepono." - "Upang makita ang iyong mga contact, i-on ang pahintulot ng Mga Contact." "Upang ma-access ang iyong voicemail, i-on ang pahintulot ng Telepono." "Upang hanapin ang iyong mga contact, i-on ang mga pahintulot sa Mga Contact." "Upang tumawag, i-on ang pahintulot ng Telepono." diff --git a/java/com/android/dialer/app/res/values-tr/strings.xml b/java/com/android/dialer/app/res/values-tr/strings.xml index 2f6f704f8923985686f3f8c3df38da2ce3f9d16c..17bd6645c73180e8fcf74b513e8d20e39b834109 100644 --- a/java/com/android/dialer/app/res/values-tr/strings.xml +++ b/java/com/android/dialer/app/res/values-tr/strings.xml @@ -85,6 +85,10 @@ "Çağrıya dön" "Çağrı ekle" "Gelen çağrılar" + "Toplu işlem moduna giriliyor" + "Toplu işlem modundan çıkıldı" + "Seçildi: %1$s" + "Seçimi kaldırıldı: %1$s" "Sesli mesajı oynat" "Kişiyi görüntüle: %1$s" "Ara: %1$s" @@ -99,11 +103,13 @@ "Sesli Mesaj" "%s sn." "%s dk. %s sn." + "Toplu işlemler modu iptal edilir" "sesli mesaj" "sesli mesajlar" "Evet" "Hayır" "Seçili %1$s silinsin mi?" + "%1$s öğe seçildi" @string/call_log_header_today "%1$s, %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "SIM karttan yükleniyor..." "SIM kart kişileri" - "Kullanılabilir rehber uygulaması yok" "Sesli arama kullanılamaz" "Telefon uygulaması devre dışı bırakıldığından telefon edilemiyor." "Kişilerde ara" @@ -145,10 +150,9 @@ "%s yeni cevapsız çağrı" "Hızlı arama listenizde henüz kimse yok" "Favori ekle" - "Henüz kayıtlı kişi yok" - "Kişi ekle" "Tüm numaraları görmek için resme dokunun veya yeniden sıralamak için dokunup basılı tutun" "Kaldır" + "Tümünü seç" "Video görüşmesi" "İleti gönder" "Çağrı ayrıntıları" @@ -213,11 +217,9 @@ "Engellenen numaralar" "%1$s numaralı telefon zaten engellendi." "Çağrı hesapları" - "Aç" "İzinleri ayarla" "Hızlı aramayı etkinleştirmek için Kişiler iznini açın." "Çağrı günlüğünüzü görmek için Telefon iznini açın." - "Kişilerinizi görmek için Kişiler iznini açın." "Sesli mesajınıza erişmek için Telefon iznini açın." "Kişilerinizde arama yapmak için Kişiler izinlerini açın." "Telefon etmek için Telefon iznini açın." diff --git a/java/com/android/dialer/app/res/values-uk/strings.xml b/java/com/android/dialer/app/res/values-uk/strings.xml index 9a790125b91ddbd34d058448434ce8c885410f05..a020a1f1b7bcecd56cbebf77b577d23928d24d1c 100644 --- a/java/com/android/dialer/app/res/values-uk/strings.xml +++ b/java/com/android/dialer/app/res/values-uk/strings.xml @@ -87,6 +87,10 @@ "Повернутися до поточного виклику" "Додати виклик" "Вхідні виклики" + "Перехід у режим масових дій" + "Ви вийшли з режиму масових дій" + "Вибрано користувача %1$s" + "Скасовано вибір користувача %1$s" "Відтворити голосову пошту" "Переглянути контакт %1$s" "Набрати %1$s" @@ -101,11 +105,13 @@ "Голосова пошта" "%s с" "%s хв %s с" + "Скасувати режим масових дій" "голосова пошта" "голосова пошта" "Так" "Ні" "Видалити вибране (%1$s)?" + "Вибрано %1$s" @string/call_log_header_today "%1$s о %2$s" "%1$02d:%2$02d" @@ -118,7 +124,6 @@ "MEID" "Завантаж. із SIM-карти…" "Контакти SIM-карти" - "Немає додатка з контактами" "Голосовий пошук недоступний" "Не вдається здійснити дзвінок, оскільки додаток Телефон вимкнено." "Пошук контактів" @@ -147,10 +152,9 @@ "Нових пропущених дзвінків: %s" "Немає номерів для швидкого набору" "Додати номер" - "Ще немає контактів" - "Додати контакт" "Торкніться зображення, щоб побачити всі номери, або натисніть і утримуйте, щоб змінити порядок." "Видалити" + "Вибрати все" "Відеодзвінок" "Надіслати повідомлення" "Деталі виклику" @@ -217,11 +221,9 @@ "Заблоковані номери" "Номер %1$s уже заблоковано." "Обл. записи для дзвінків" - "Увімкнути" "Налаштувати дозволи" "Щоб активувати швидкий набір, увімкніть дозвіл \"Контакти\"." "Щоб переглянути журнал викликів, увімкніть дозвіл \"Телефон\"." - "Щоб переглянути контакти, увімкніть дозвіл \"Контакти\"." "Щоб користуватися голосовою поштою, увімкніть дозвіл \"Телефон\"." "Щоб шукати контакти, увімкніть дозвіл \"Контакти\"." "Щоб зателефонувати, увімкніть дозвіл \"Телефон\"." diff --git a/java/com/android/dialer/app/res/values-ur/strings.xml b/java/com/android/dialer/app/res/values-ur/strings.xml index 25198711bf3f21f9193fef0b34a9842d1b36c8dc..d696bd54c16ca936c92050e34b1de77ff5b896d5 100644 --- a/java/com/android/dialer/app/res/values-ur/strings.xml +++ b/java/com/android/dialer/app/res/values-ur/strings.xml @@ -85,6 +85,10 @@ "جاری کال پر واپس لوٹیں" "کال شامل کریں" "آنے والی کالیں" + "بلک کاروائی موڈ میں داخل ہو رہا ہے" + "بلک کاروائی موڈ چھوڑ دیا" + "منتخب کردہ %1$s" + "غیر منتخب کردہ %1$s" "صوتی میل چلائیں" "رابطہ %1$s دیکھیں" "%1$s کو کال کریں" @@ -99,11 +103,13 @@ "صوتی میل" "%s سیکنڈ" "%s منٹ %s سیکنڈ" + "بیچ کاروائی موڈ منسوخ کریں" "صوتی میل" "صوتی میلز" "ہاں" "نہیں" "منتخب کردہ %1$s حذف کریں؟" + "%1$s منتخب کردہ" @string/call_log_header_today "%1$s بوقت %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "‏SIM کارڈ سے لوڈ ہو رہا ہے…" "‏SIM کارڈ کے رابطے" - "رابطوں کی کوئی ایپ دستیاب نہیں ہے" "صوتی تلاش دستیاب نہیں ہے" "فون کال نہیں کی جا سکتی ہے کیونکہ فون ایپلیکیشن کو غیر فعال کر دیا گیا ہے۔" "رابطے تلاش کریں" @@ -145,10 +150,9 @@ "%s نئی چھوٹی ہوئی کالیں" "آپ کے اسپیڈ ڈائل پر ابھی تک کوئی نہیں ہے" "ایک پسندیدہ شامل کریں" - "آپ کے پاس ابھی تک کوئی رابطے نہیں ہیں" - "ایک رابطہ شامل کریں" "سبھی نمبرز دیکھنے کیلئے تصویر ٹچ کریں یا دوبارہ ترتیب دینے کیلئے ٹچ کریں اور پکڑے رہیں" "ہٹائیں" + "سبھی کو منتخب کریں" "ویڈیو کال" "پیغام بھیجیں" "کال کی تفصیلات" @@ -213,11 +217,9 @@ "مسدود کردہ نمبرز" "%1$s پہلے ہی مسدود ہے۔" "کالنگ اکاؤنٹس" - "آن کریں" "اجازتیں طے کریں" "اسپیڈ ڈائل کو فعال کرنے کیلئے رابطوں کی اجازت آن کریں۔" "اپنا کال لاگ دیکھنے کیلئے فون کی اجازت آن کریں۔" - "اپنے رابطے دیکھنے کیلئے رابطوں کی اجازت آن کریں۔" "اپنی صوتی میل تک رسائی کیلئے فون کی اجازت آن کریں۔" "اپنے رابطوں کو تلاش کرنے کیلئے رابطوں کی اجازتیں آن کریں۔" "کال کرنے کیلئے فون کی اجازت آن کریں۔" diff --git a/java/com/android/dialer/app/res/values-uz/strings.xml b/java/com/android/dialer/app/res/values-uz/strings.xml index 705cae7654a512b5fade0d85f16f0e1aa16cc612..aa645bf88c13e25b007f1efc68de75708f566889 100644 --- a/java/com/android/dialer/app/res/values-uz/strings.xml +++ b/java/com/android/dialer/app/res/values-uz/strings.xml @@ -85,6 +85,10 @@ "Amaldagi chaqiruvga qaytish" "Chaqiruv qo‘shish" "Kiruvchi qo‘ng‘iroqlar" + "Yoppasiga bajariladigan amallar rejimiga o‘tilmoqda" + "Yoppasiga bajariladigan amallar rejimidan chiqib ketildi" + "%1$s tanlandi" + "%1$s tanlovi bekor qilindi" "Ovozli xabarni eshitish" "%1$s kontaktini ko‘rish" "Qo‘ng‘iroq: %1$s" @@ -99,11 +103,13 @@ "Ovozli pochta" "%s soniya" "%s daq %s son" + "Yoppasiga bajariladigan amallar rejimini bekor qilish" "ovozli xabar" "ovozli xabarlar" "Ha" "Yo‘q" "Tanlangan %1$s o‘chirib tashlansinmi?" + "Tanlandi: %1$s" @string/call_log_header_today "%1$s, %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "SIM kartadan yuklanmoqda…" "SIM karta kontaktlari" - "Hech qanday kontakt ilovasi yo‘q" "Ovozli qidiruv mavjud emas" "Telefon ilovasi o‘chirib qo‘yilgani sababli telefon qo‘ng‘iroqlarini amalga oshirib bo‘lmaydi." "Kontaktlar ichidan qidirish" @@ -145,10 +150,9 @@ "%s ta javobsiz chaqiruv" "Tezkor terish uchun hech kim yo‘q" "Tezkor raqam terishni sozlang" - "Sizda hali hech qanday kontakt yo‘q" - "Yangi kontakt qo‘shing" "Barcha raqamlarni ko‘rish uchun rasm ustiga bosing yoki joyini o‘zgartirish uchun rasmni bosib turing." "O‘chirish" + "Hammasini tanlash" "Video qo‘ng‘iroq" "Xabar yuborish" "Chaqiruv tafsilotlari" @@ -213,11 +217,9 @@ "Bloklangan raqamlar" "%1$s raqami allaqachon bloklangan." "Chaqiruv uchun hisoblar" - "Yoqish" "Ruxsatnomalarni sozlash" "Tezkor raqam terish uchun “Kontaktlar” ruxsatnomasini yoqing." "Qo‘ng‘iroqlaringiz ro‘yxatini ko‘rish uchun “Telefon” ruxsatnomasini yoqing." - "Kontaktlaringizni ko‘rish uchun “Kontaktlar” ruxsatnomasini yoqing." "Ovozli pochtaga kirish uchun “Telefon” ruxsatnomasini yoqing." "Kontaktlarni qidirish uchun “Kontaktlar” ruxsatnomasini yoqing." "Qo‘ng‘iroq qilish uchun “Telefon” ruxsatnomasini yoqing." diff --git a/java/com/android/dialer/app/res/values-vi/strings.xml b/java/com/android/dialer/app/res/values-vi/strings.xml index 5a60e0ac3ca36c2bec243f13be68f434f0933eef..dda7c1523058840433bd8fd9117c6e9193e5c2e9 100644 --- a/java/com/android/dialer/app/res/values-vi/strings.xml +++ b/java/com/android/dialer/app/res/values-vi/strings.xml @@ -85,6 +85,10 @@ "Quay lại cuộc gọi đang thực hiện" "Thêm cuộc gọi" "Cuộc gọi đến" + "Truy cập chế độ tác vụ hàng loạt" + "Đã rời khỏi chế độ tác vụ hàng loạt" + "Đã chọn %1$s" + "Đã bỏ chọn %1$s" "Phát thư thoại" "Xem thông tin liên hệ của %1$s" "Gọi %1$s" @@ -99,11 +103,13 @@ "Thư thoại" "%s giây" "%s phút %s giây" + "Hủy chế độ tác vụ hàng loạt" "thư thoại" "thư thoại" "Có" "Không" "Xóa %1$s đã chọn?" + "Đã chọn %1$s" @string/call_log_header_today "%1$s lúc %2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "Đang tải từ thẻ SIM…" "Danh bạ trên thẻ SIM" - "Không có ứng dụng danh bạ" "Không có tính năng tìm kiếm bằng giọng nói" "Không thể thực hiện cuộc gọi điện thoại vì ứng dụng Điện thoại đã bị tắt." "Tìm kiếm trong danh bạ" @@ -145,10 +150,9 @@ "%s cuộc gọi nhỡ mới" "Chưa có ai trong danh bạ quay số nhanh của bạn" "Thêm liên hệ quay số nhanh yêu thích" - "Bạn chưa có bất kỳ liên hệ nào" - "Thêm liên hệ" "Chạm vào hình ảnh để xem tất cả các số hoặc chạm và giữ để sắp xếp lại" "Xóa" + "Chọn tất cả" "Cuộc gọi điện video" "Gửi tin nhắn" "Chi tiết cuộc gọi" @@ -213,11 +217,9 @@ "Số bị chặn" "%1$s đã bị chặn." "Tài khoản gọi" - "Bật" "Đặt quyền" "Để bật quay số nhanh, bật quyền đối với Danh bạ." "Để xem nhật ký cuộc gọi của bạn, bật quyền đối với Điện thoại." - "Để xem danh bạ của bạn, bật quyền đối với Danh bạ." "Để truy cập thư thoại của bạn, bật quyền đối với Điện thoại." "Để tìm kiếm liên hệ của bạn, hãy bật quyền đối với Danh bạ." "Để thực hiện cuộc gọi, bật quyền đối với Điện thoại." diff --git a/java/com/android/dialer/app/res/values-zh-rCN/strings.xml b/java/com/android/dialer/app/res/values-zh-rCN/strings.xml index 98abc396a68868b5dd449317917a474597852bf5..672614e484db7ebc333234be8fdd2b2595a39a36 100644 --- a/java/com/android/dialer/app/res/values-zh-rCN/strings.xml +++ b/java/com/android/dialer/app/res/values-zh-rCN/strings.xml @@ -85,6 +85,10 @@ "返回正在进行的通话" "添加通话" "来电" + "正在进入批量操作模式" + "已退出批量操作模式" + "已选择 %1$s" + "已取消选择 %1$s" "播放语音邮件" "查看联系人%1$s" "呼叫%1$s" @@ -99,11 +103,13 @@ "语音信箱" "%s 秒" "%s 分钟 %s 秒" + "取消批量操作模式" "语音邮件" "语音邮件" "是" "否" "要删除所选的%1$s吗?" + "已选择 %1$s 封" @string/call_log_header_today "%1$s%2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "正从 SIM 卡中加载..." "SIM卡联系人" - "没有可用的通讯录应用" "无法使用语音搜索" "“电话”应用已被停用,因此无法拨打电话。" "搜索联系人" @@ -145,10 +150,9 @@ "%s个新的未接电话" "尚未给任何联系人设定快速拨号" "添加常用联系人" - "您还没有任何联系人" - "添加联系人" "触摸图片可查看所有号码,触摸并按住可重新排序" "移除" + "全选" "视频通话" "发送短信" "通话详情" @@ -213,11 +217,9 @@ "已屏蔽的号码" "%1$s 已被屏蔽。" "通话帐号" - "开启" "设置权限" "要启用快速拨号功能,请开启“通讯录”权限。" "要查看您的通话记录,请开启“电话”权限。" - "要查看您的联系人,请开启“通讯录”权限。" "要使用您的语音信箱,请开启“电话”权限。" "要搜索您的联系人,请开启“通讯录”权限。" "要拨打电话,请开启“电话”权限。" diff --git a/java/com/android/dialer/app/res/values-zh-rHK/strings.xml b/java/com/android/dialer/app/res/values-zh-rHK/strings.xml index 2a96ce045dcec9ef6a5e57816be4bcfa233aed75..f3dc44baf9f2986d91a82513f47f4112e9a5fa06 100644 --- a/java/com/android/dialer/app/res/values-zh-rHK/strings.xml +++ b/java/com/android/dialer/app/res/values-zh-rHK/strings.xml @@ -85,6 +85,10 @@ "返回進行中的通話" "新增通話" "來電" + "正在進入大量操作模式" + "已離開大量操作模式" + "已選取%1$s" + "已取消選取%1$s" "播放語音留言" "查看聯絡人%1$s" "打電話給%1$s" @@ -99,11 +103,13 @@ "留言" "%s 秒" "%s%s 秒" + "取消批量操作模式" "留言" "留言" "是" "否" "要刪除所選的%1$s嗎?" + "已選取 %1$s 個" @string/call_log_header_today "%1$s%2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "正在從 SIM 卡載入..." "SIM 卡聯絡人" - "沒有可用的聯絡人應用程式" "無法使用語音搜尋" "由於「電話」應用程式已停用,因此無法打電話。" "搜尋聯絡人" @@ -145,10 +150,9 @@ "%s 個新的未接來電" "快速撥號名單中沒有聯絡人" "新增常用聯絡人" - "暫時沒有聯絡人" - "新增聯絡人" "輕觸圖片以查看所有電話號碼,或輕觸並按住圖片以重新排序" "移除" + "全選" "視像通話" "傳送訊息" "通話詳情" @@ -213,11 +217,9 @@ "已封鎖的號碼" "已封鎖 %1$s。" "通話帳戶" - "開放權限" "設定權限" "如要啟用快速撥號功能,請開放「通訊錄」權限。" "如要查看通話記錄,請開放「手機」權限。" - "如要查看聯絡人,請開放「通訊錄」權限。" "如要存取留言信箱,請開放「手機」權限。" "如要搜尋聯絡人,請開啟「通訊錄」權限。" "如要撥打電話,請開放「手機」權限。" diff --git a/java/com/android/dialer/app/res/values-zh-rTW/strings.xml b/java/com/android/dialer/app/res/values-zh-rTW/strings.xml index 91745213390eb8a22e79956833b5499b99e6034c..473955c5d9f1d926b12d881eca579894a72d6679 100644 --- a/java/com/android/dialer/app/res/values-zh-rTW/strings.xml +++ b/java/com/android/dialer/app/res/values-zh-rTW/strings.xml @@ -85,6 +85,10 @@ "返回進行中的通話" "新增通話" "來電" + "已進入大量操作模式" + "已離開大量操作模式" + "已選取:%1$s" + "已取消選取:%1$s" "播放語音留言" "查看聯絡人%1$s" "撥電話給%1$s" @@ -99,11 +103,13 @@ "語音留言" "%s 秒" "%s%s 秒" + "取消批次操作模式" "語音留言" "語音留言" "是" "否" "要刪除選取的%1$s嗎?" + "已選取 %1$s 個" @string/call_log_header_today "%1$s%2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "MEID" "從 SIM 卡讀取中…" "SIM 卡聯絡人" - "沒有可用的聯絡人應用程式" "無法使用語音搜尋" "「電話」應用程式已遭停用,因此無法撥打電話。" "搜尋聯絡人" @@ -145,10 +150,9 @@ "%s 通新的未接來電" "您的快速撥號功能尚未設定任何聯絡人" "新增常用聯絡人" - "您尚未加入任何聯絡人" - "新增聯絡人" "輕觸圖片即可查看所有號碼,按住則可重新排序" "移除" + "全選" "視訊通話" "傳送簡訊" "通話詳細資料" @@ -213,11 +217,9 @@ "已封鎖的號碼" "%1$s 已在封鎖清單中。" "通話帳戶" - "開啟" "設定權限" "如要啟用快速撥號,請開啟「聯絡人」存取權限。" "如要查看您的通話紀錄,請開啟「電話」存取權限。" - "如要查看您的聯絡人,請開啟「聯絡人」存取權限。" "如要存取您的語音信箱,請開啟「電話」存取權限。" "如要搜尋您的聯絡人,請開啟「聯絡人」存取權限。" "如要撥打電話,請開啟「電話」存取權限。" diff --git a/java/com/android/dialer/app/res/values-zu/strings.xml b/java/com/android/dialer/app/res/values-zu/strings.xml index 9c8a6b8e10271ed1051a00878b3546d508a3e4a3..93843aa2cad485f44307ab15e20847c1352cdb28 100644 --- a/java/com/android/dialer/app/res/values-zu/strings.xml +++ b/java/com/android/dialer/app/res/values-zu/strings.xml @@ -85,6 +85,10 @@ "Buyela kukholi eqhubekayo" "Yengeza ikholi" "Amakholi angenayo" + "Kungenwa kumodi yesenzo senqwaba" + "Ishiye imodi yesenzo senqwaba" + "Kukhethwe i-%1$s" + "Akukhethiwe i-%1$s" "Dlala i-imeyli yezwi" "Bheka oxhumana naye %1$s" "Shayela %1$s" @@ -99,11 +103,13 @@ "Ivoyisimeyili" "%s isekhondi" "%s amaminithi %s amasekhondi" + "Khansela imodi lezenzo zeqoqo" "ivoyisimeyili" "ama-meyli ezwi" "Yebo" "Cha" "Susa okukhethiwe %1$s?" + "Engu-%1$s ekhethiwe" @string/call_log_header_today "%1$s ngo-%2$s" "%1$02d:%2$02d" @@ -116,7 +122,6 @@ "I-MEID" "Ilayisha kusuka ekhadini le-SIM..." "Othintana nabo bekhadi le-SIM" - "Alukho uhlelo lokusebenza loxhumana nabo olutholakalayo" "Usesho lwezwi alutholakali" "Ayikwazi ukwenza ikholi yefoni ngoba uhlelo lokusebenza lwefoni likhutshaziwe." "Sesha othintana nabo" @@ -145,10 +150,9 @@ "%s amakholi amasha owaphuthelwe" "Akekho umuntu osekudayeleni kwakho okusheshayo okwamanje" "Engeza intandokazi" - "Awunabo oxhumana nabo okwamanje" - "Engeza oxhumana naye" "Thinta isithombe ukuze ubone zonke izinombolo noma thinta bese ubambe ukuze uhlele kabusha" "Susa" + "Khetha konke" "Ikholi yevidiyo" "Thumela umlayezo" "Imininingwane yekholi" @@ -213,11 +217,9 @@ "Izinombolo ezivinjiwe" "%1$s isivinjiwe kakade." "Ama-akhawunti wokushaya" - "Vula" "Setha izimvume" "Nika amandla ukudayela okusheshayo, vula imvume yoxhumana nabo." "Ukuze ubone irekhodi lakho lamakholi, vuma imvume yefoni." - "Ukuze ubone oxhumana nabo, vula imvume yoxhumana nabo." "Ukuze ufinyelele ivoyisimeyili, vula imvume yefoni." "Ukuze useshe oxhumana nabo, vula izimvume zoxhumana nabo." "Ukuze ubeke ikholi, vula imvume yefoni." diff --git a/java/com/android/dialer/app/res/values/colors.xml b/java/com/android/dialer/app/res/values/colors.xml index cf6b926be606629fcac82e3cdf8876e1bb7a330d..2f6d87b498bab2f07f3796c1961b3095522e5d3a 100644 --- a/java/com/android/dialer/app/res/values/colors.xml +++ b/java/com/android/dialer/app/res/values/colors.xml @@ -52,8 +52,6 @@ @color/dialer_theme_color - - #fafafa #f9f9f9 @color/background_dialer_light @@ -69,8 +67,6 @@ #4d4d4d - #b2b2b2 - #ffffff diff --git a/java/com/android/dialer/app/res/values/dimens.xml b/java/com/android/dialer/app/res/values/dimens.xml index 7da29c7a323607957359cf1293d90024f0fd7374..57c43ebbd47662fc895dae79e14ff841ece0fdbe 100644 --- a/java/com/android/dialer/app/res/values/dimens.xml +++ b/java/com/android/dialer/app/res/values/dimens.xml @@ -105,9 +105,6 @@ 10dp - 20dp - 16sp - 16dp 16dp diff --git a/java/com/android/dialer/app/res/values/strings.xml b/java/com/android/dialer/app/res/values/strings.xml index 9e1fdeb5a57a03bf7536db4cf69ca7155f4325d5..6110601d81322fd5895258bba9f0a5355124db0e 100644 --- a/java/com/android/dialer/app/res/values/strings.xml +++ b/java/com/android/dialer/app/res/values/strings.xml @@ -279,6 +279,34 @@ Incoming calls + + Entering bulk action mode + + + Left bulk action mode + + + Selected %1$s + + + Unselected %1$s + %s min %s sec + + Cancel batch actions mode + voicemail voicemails Yes No Delete selected %1$s? + %1$s selected + @@ -411,9 +446,6 @@ SIM card contacts - - No contacts app available - Voice search not available @@ -514,12 +546,6 @@ Add a favorite - - You don\'t have any contacts yet - - - Add a contact - Remove + + Select all + @@ -554,7 +583,7 @@ Call ^1 - Missed call from ^1, ^2, ^3, ^4. @@ -841,9 +870,6 @@ button_dtmf_settings - - Turn on - Set permissions @@ -853,9 +879,6 @@ To see your call log, turn on the Phone permission. - - To see your contacts, turn on the Contacts permission. - To access your voicemail, turn on the Phone permission. diff --git a/java/com/android/dialer/app/res/values/styles.xml b/java/com/android/dialer/app/res/values/styles.xml index 7adf7ca2c5f32b52dae2d61618f9690f6f1dbae5..592f06d29fe835d1c681611f9faeeb568a774024 100644 --- a/java/com/android/dialer/app/res/values/styles.xml +++ b/java/com/android/dialer/app/res/values/styles.xml @@ -25,13 +25,15 @@ true @style/DialtactsActionBarStyle @style/DialtactsActionBarStyle + @style/ActionModeStyle + @style/ActionModeStyle + @null true - @drawable/ic_back_arrow + @drawable/quantum_ic_arrow_back_vd_theme_24 @style/ListViewStyle - @drawable/list_title_holo 32dip 7dp 24dp @@ -66,7 +68,7 @@ @style/DialerButtonTextStyle - 32dip + 48dip 8dip @style/Dialpad.Light @@ -129,6 +131,12 @@ @dimen/actionbar_contentInsetStart + + - - - - - + + + + + + + diff --git a/java/com/android/dialer/util/CallUtil.java b/java/com/android/dialer/util/CallUtil.java index 81a4bb21e1a8691575798dfc0de2e925a6961470..b6ab3b30e0843cd60ed05aea78e9d0239f98b5a0 100644 --- a/java/com/android/dialer/util/CallUtil.java +++ b/java/com/android/dialer/util/CallUtil.java @@ -21,6 +21,7 @@ import android.net.Uri; import android.telecom.PhoneAccount; import android.telecom.PhoneAccountHandle; import android.telecom.TelecomManager; +import com.android.dialer.common.LogUtil; import com.android.dialer.compat.CompatUtils; import com.android.dialer.phonenumberutil.PhoneNumberHelper; import java.util.List; @@ -40,6 +41,9 @@ public class CallUtil { */ public static final int VIDEO_CALLING_PRESENCE = 2; + private static boolean hasInitializedIsVideoEnabledState; + private static boolean cachedIsVideoEnabledState; + /** Return Uri with an appropriate scheme, accepting both SIP and usual phone call numbers. */ public static Uri getCallUri(String number) { if (PhoneNumberHelper.isUriNumber(number)) { @@ -102,7 +106,23 @@ public class CallUtil { * false} otherwise. */ public static boolean isVideoEnabled(Context context) { - return (getVideoCallingAvailability(context) & VIDEO_CALLING_ENABLED) != 0; + boolean isVideoEnabled = (getVideoCallingAvailability(context) & VIDEO_CALLING_ENABLED) != 0; + + // Log everytime the video enabled state changes. + if (!hasInitializedIsVideoEnabledState) { + LogUtil.i("CallUtil.isVideoEnabled", "isVideoEnabled: " + isVideoEnabled); + hasInitializedIsVideoEnabledState = true; + cachedIsVideoEnabledState = isVideoEnabled; + } else if (cachedIsVideoEnabledState != isVideoEnabled) { + LogUtil.i( + "CallUtil.isVideoEnabled", + "isVideoEnabled changed from %b to %b", + cachedIsVideoEnabledState, + isVideoEnabled); + cachedIsVideoEnabledState = isVideoEnabled; + } + + return true; } /** diff --git a/java/com/android/dialer/util/PermissionsUtil.java b/java/com/android/dialer/util/PermissionsUtil.java index 466e862043398e018877f412421a11b180cd81cc..72a59eaefea0d0494c06398193ded3ac1796a3ce 100644 --- a/java/com/android/dialer/util/PermissionsUtil.java +++ b/java/com/android/dialer/util/PermissionsUtil.java @@ -72,15 +72,15 @@ public class PermissionsUtil { return hasPermission(context, permission.WRITE_VOICEMAIL); } - public static boolean hasAddVoicemailPermissions(Context context) { - return hasPermission(context, permission.ADD_VOICEMAIL); - } - public static boolean hasPermission(Context context, String permission) { return ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED; } + public static boolean hasAddVoicemailPermissions(Context context) { + return hasPermission(context, permission.ADD_VOICEMAIL); + } + /** * Checks {@link android.content.SharedPreferences} if a permission has been requested before. * diff --git a/java/com/android/dialer/widget/DialerToolbar.java b/java/com/android/dialer/widget/DialerToolbar.java index 9e1058383066fa35d753ce839e1eb49d592793fe..fe0e86110221afc55d09f450e5c1070237be9d51 100644 --- a/java/com/android/dialer/widget/DialerToolbar.java +++ b/java/com/android/dialer/widget/DialerToolbar.java @@ -41,6 +41,11 @@ public class DialerToolbar extends Toolbar { setNavigationIcon(R.drawable.quantum_ic_close_white_24); setNavigationContentDescription(R.string.toolbar_close); setNavigationOnClickListener(v -> ((Activity) context).finish()); + setPaddingRelative( + getPaddingStart(), + getPaddingTop(), + getResources().getDimensionPixelSize(R.dimen.toolbar_end_padding), + getPaddingBottom()); } @Override diff --git a/java/com/android/dialer/app/widget/EmptyContentView.java b/java/com/android/dialer/widget/EmptyContentView.java similarity index 87% rename from java/com/android/dialer/app/widget/EmptyContentView.java rename to java/com/android/dialer/widget/EmptyContentView.java index cfc8665a2163ab11d30add98a53cf0af1d7d279e..a76ab98d6a27c176f1d90fd2c2b0938650b0d01e 100644 --- a/java/com/android/dialer/app/widget/EmptyContentView.java +++ b/java/com/android/dialer/widget/EmptyContentView.java @@ -14,16 +14,16 @@ * limitations under the License. */ -package com.android.dialer.app.widget; +package com.android.dialer.widget; import android.content.Context; +import android.support.annotation.StringRes; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; -import com.android.dialer.app.R; public class EmptyContentView extends LinearLayout implements View.OnClickListener { @@ -40,6 +40,8 @@ public class EmptyContentView extends LinearLayout implements View.OnClickListen private TextView mActionView; private OnEmptyViewActionButtonClickedListener mOnActionButtonClickedListener; + private @StringRes int actionLabel; + public EmptyContentView(Context context) { this(context, null); } @@ -58,9 +60,9 @@ public class EmptyContentView extends LinearLayout implements View.OnClickListen // Don't let touches fall through the empty view. setClickable(true); - mImageView = (ImageView) findViewById(R.id.emptyListViewImage); - mDescriptionView = (TextView) findViewById(R.id.emptyListViewMessage); - mActionView = (TextView) findViewById(R.id.emptyListViewAction); + mImageView = (ImageView) findViewById(R.id.empty_list_view_image); + mDescriptionView = (TextView) findViewById(R.id.empty_list_view_message); + mActionView = (TextView) findViewById(R.id.empty_list_view_action); mActionView.setOnClickListener(this); } @@ -84,7 +86,8 @@ public class EmptyContentView extends LinearLayout implements View.OnClickListen } } - public void setActionLabel(int resourceId) { + public void setActionLabel(@StringRes int resourceId) { + actionLabel = resourceId; if (resourceId == NO_LABEL) { mActionView.setText(null); mActionView.setVisibility(View.GONE); @@ -94,6 +97,10 @@ public class EmptyContentView extends LinearLayout implements View.OnClickListen } } + public @StringRes int getActionLabel() { + return actionLabel; + } + public boolean isShowingContent() { return mImageView.getVisibility() == View.VISIBLE || mDescriptionView.getVisibility() == View.VISIBLE @@ -117,5 +124,4 @@ public class EmptyContentView extends LinearLayout implements View.OnClickListen (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); inflater.inflate(R.layout.empty_content_view, this); } - } diff --git a/java/com/android/dialer/widget/MessageFragment.java b/java/com/android/dialer/widget/MessageFragment.java index b136f47eb4712ea5bb914ff61a0b325434422ecb..615ad3b776f38411eead636e958bf2f25e70f403 100644 --- a/java/com/android/dialer/widget/MessageFragment.java +++ b/java/com/android/dialer/widget/MessageFragment.java @@ -23,6 +23,7 @@ import android.text.Editable; import android.text.InputFilter; import android.text.TextUtils; import android.text.TextWatcher; +import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; @@ -31,11 +32,13 @@ import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; +import android.widget.TextView.OnEditorActionListener; import com.android.dialer.common.Assert; import com.android.dialer.common.FragmentUtils; /** Fragment used to compose call with message fragment. */ -public class MessageFragment extends Fragment implements OnClickListener, TextWatcher { +public class MessageFragment extends Fragment + implements OnClickListener, TextWatcher, OnEditorActionListener { private static final String CHAR_LIMIT_KEY = "char_limit"; private static final String SHOW_SEND_ICON_KEY = "show_send_icon"; private static final String MESSAGE_LIST_KEY = "message_list"; @@ -69,7 +72,7 @@ public class MessageFragment extends Fragment implements OnClickListener, TextWa LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_message, container, false); - sendMessage = (ImageView) view.findViewById(R.id.send_message); + sendMessage = view.findViewById(R.id.send_message); sendMessageContainer = view.findViewById(R.id.count_and_send_container); if (getArguments().getBoolean(SHOW_SEND_ICON_KEY, false)) { sendMessage.setVisibility(View.VISIBLE); @@ -77,18 +80,19 @@ public class MessageFragment extends Fragment implements OnClickListener, TextWa sendMessageContainer.setOnClickListener(this); } - customMessage = (EditText) view.findViewById(R.id.custom_message); + customMessage = view.findViewById(R.id.custom_message); customMessage.addTextChangedListener(this); + customMessage.setOnEditorActionListener(this); charLimit = getArguments().getInt(CHAR_LIMIT_KEY, NO_CHAR_LIMIT); if (charLimit != NO_CHAR_LIMIT) { - remainingChar = (TextView) view.findViewById(R.id.remaining_characters); + remainingChar = view.findViewById(R.id.remaining_characters); remainingChar.setVisibility(View.VISIBLE); - remainingChar = (TextView) view.findViewById(R.id.remaining_characters); - remainingChar.setText("" + charLimit); + remainingChar = view.findViewById(R.id.remaining_characters); + remainingChar.setText(Integer.toString(charLimit)); customMessage.setFilters(new InputFilter[] {new InputFilter.LengthFilter(charLimit)}); } - LinearLayout messageContainer = (LinearLayout) view.findViewById(R.id.message_container); + LinearLayout messageContainer = view.findViewById(R.id.message_container); for (String message : getArguments().getStringArray(MESSAGE_LIST_KEY)) { TextView textView = (TextView) inflater.inflate(R.layout.selectable_text_view, null); textView.setOnClickListener(this); @@ -123,11 +127,20 @@ public class MessageFragment extends Fragment implements OnClickListener, TextWa @Override public void afterTextChanged(Editable s) { if (charLimit != NO_CHAR_LIMIT) { - remainingChar.setText("" + (charLimit - s.length())); + remainingChar.setText(Integer.toString(charLimit - s.length())); } getListener().onMessageFragmentAfterTextChange(s.toString()); } + @Override + public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { + if (getMessage() == null) { + return false; + } + getListener().onMessageFragmentSendMessage(getMessage()); + return true; + } + private Listener getListener() { return FragmentUtils.getParentUnsafe(this, Listener.class); } diff --git a/java/com/android/dialer/app/res/drawable-hdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-hdpi/empty_contacts.png similarity index 100% rename from java/com/android/dialer/app/res/drawable-hdpi/empty_contacts.png rename to java/com/android/dialer/widget/res/drawable-hdpi/empty_contacts.png diff --git a/java/com/android/dialer/app/res/drawable-mdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-mdpi/empty_contacts.png similarity index 100% rename from java/com/android/dialer/app/res/drawable-mdpi/empty_contacts.png rename to java/com/android/dialer/widget/res/drawable-mdpi/empty_contacts.png diff --git a/java/com/android/dialer/app/res/drawable-xhdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-xhdpi/empty_contacts.png similarity index 100% rename from java/com/android/dialer/app/res/drawable-xhdpi/empty_contacts.png rename to java/com/android/dialer/widget/res/drawable-xhdpi/empty_contacts.png diff --git a/java/com/android/dialer/app/res/drawable-xxhdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-xxhdpi/empty_contacts.png similarity index 100% rename from java/com/android/dialer/app/res/drawable-xxhdpi/empty_contacts.png rename to java/com/android/dialer/widget/res/drawable-xxhdpi/empty_contacts.png diff --git a/java/com/android/dialer/app/res/drawable-xxxhdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-xxxhdpi/empty_contacts.png similarity index 100% rename from java/com/android/dialer/app/res/drawable-xxxhdpi/empty_contacts.png rename to java/com/android/dialer/widget/res/drawable-xxxhdpi/empty_contacts.png diff --git a/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml b/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml index c4aac65fb3117a68618c5e371b3655576bf6ab9c..023b0ffe2eb67a5d1c6b69c923c169ae1e9b46b9 100644 --- a/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml +++ b/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml @@ -29,7 +29,9 @@ android:gravity="top" android:textSize="@dimen/toolbar_title_text_size" android:textColor="@color/background_dialer_white" - android:fontFamily="sans-serif-medium"/> + android:fontFamily="sans-serif-medium" + android:maxLines="1" + android:ellipsize="end"/> + android:visibility="gone" + android:maxLines="1" + android:ellipsize="end"/> \ No newline at end of file diff --git a/java/com/android/dialer/app/res/layout/empty_content_view.xml b/java/com/android/dialer/widget/res/layout/empty_content_view.xml similarity index 92% rename from java/com/android/dialer/app/res/layout/empty_content_view.xml rename to java/com/android/dialer/widget/res/layout/empty_content_view.xml index 96a6a0262172fe8f5c80d73123c90bf284c6a731..1777443853b5bf7f0e3fbf0c4a410f32286d1c21 100644 --- a/java/com/android/dialer/app/res/layout/empty_content_view.xml +++ b/java/com/android/dialer/widget/res/layout/empty_content_view.xml @@ -16,13 +16,13 @@ + android:layout_toStartOf="@+id/count_and_send_container" + android:inputType="textShortMessage|textCapSentences" + android:imeOptions="actionSend"/> "Skryf \'n gepasmaakte boodskap" "Maak toe" + "Jy het nog nie enige kontakte nie" + "Voeg \'n kontak by" + "Skakel aan" + "Skakel die kontaktetoestemming aan om jou kontakte te sien." + "Geen kontakte-program beskikbaar nie" diff --git a/java/com/android/dialer/widget/res/values-am/strings.xml b/java/com/android/dialer/widget/res/values-am/strings.xml index f11b4683502fd67b47974288f0634b7103ef12ef..8a5353e18b50d2b384dc8510df270a95aa84d0d9 100644 --- a/java/com/android/dialer/widget/res/values-am/strings.xml +++ b/java/com/android/dialer/widget/res/values-am/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "ብጁ መልዕክት ይጻፉ" "ዝጋ" + "ገና ምንም እውቂያዎች የሉዎትም" + "እውቂያ ያክሉ" + "አብራ" + "የእርስዎን እውቂያዎች ለማየት፣ የእውቂያዎች ፍቃዱን ያብሩ።" + "ምንም የእውቂያዎች መተግበሪያ አይገኝም" diff --git a/java/com/android/dialer/widget/res/values-ar/strings.xml b/java/com/android/dialer/widget/res/values-ar/strings.xml index cb2e733787cd53f957525723a68a07ce836bb79e..7947903ce76b33bd9a43a9cfb6c84fb8f0fa6c4d 100644 --- a/java/com/android/dialer/widget/res/values-ar/strings.xml +++ b/java/com/android/dialer/widget/res/values-ar/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "كتابة رسالة مخصصة" "إغلاق" + "ليست لديك أية جهات اتصال حتى الآن" + "إضافة جهة اتصال" + "تشغيل" + "للاطلاع على جهات الاتصال، شغِّل إذن جهات الاتصال." + "لا يتوفر تطبيق لجهات الاتصال" diff --git a/java/com/android/dialer/widget/res/values-az/strings.xml b/java/com/android/dialer/widget/res/values-az/strings.xml index 3860a58467ed78083b77e2b326293b8f403580b6..7a1389a1a4780fa6ac528cc107da2069063ce58e 100644 --- a/java/com/android/dialer/widget/res/values-az/strings.xml +++ b/java/com/android/dialer/widget/res/values-az/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Fərdi mesaj yazın" "Bağlayın" + "Hələ heç bir kontakt yoxdur" + "Kontakt əlavə edin" + "Aktiv edin" + "Kontaktları görmək üçün Kontakt icazəsini aktiv edin." + "Kontakt tətbiqi əlçatan deyil" diff --git a/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml index daefd90202169eabcb4d33ba230a8d69d48e7481..46b29d27cf817ec5ab35cac92a7da5435d0349a7 100644 --- a/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml +++ b/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Napišite prilagođenu poruku" "Zatvorite" + "Još uvek nemate nijedan kontakt" + "Dodaj kontakt" + "Uključi" + "Da biste videli kontakte, uključite dozvolu za Kontakte." + "Nema dostupne aplikacije za kontakte" diff --git a/java/com/android/dialer/widget/res/values-be/strings.xml b/java/com/android/dialer/widget/res/values-be/strings.xml index 87861321fcde91f1e25090e1cf59c9724b0e799c..38c8a80ca83eb831a1d46e28664d256cecabb72a 100644 --- a/java/com/android/dialer/widget/res/values-be/strings.xml +++ b/java/com/android/dialer/widget/res/values-be/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Напісаць карыстальніцкае паведамленне" "Закрыць" + "У вас пакуль няма ніякіх кантактаў" + "Дадаць кантакт" + "Уключыць" + "Каб бачыць свае кантакты, уключыце дазвол для Кантактаў." + "Праграмы для аперацый з кантактамі няма" diff --git a/java/com/android/dialer/widget/res/values-bg/strings.xml b/java/com/android/dialer/widget/res/values-bg/strings.xml index 35e980c5fc9e82a6897fedfb6819ffaccd789f29..00ce56454d5ee93ff36cf2f25b70e4f1c6fddf78 100644 --- a/java/com/android/dialer/widget/res/values-bg/strings.xml +++ b/java/com/android/dialer/widget/res/values-bg/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Напишете свое съобщение" "Затваряне" + "Още нямате контакти" + "Добавяне на контакт" + "Включване" + "За да видите контактите си, включете разрешението за Контакти." + "Няма налично приложение за контакти" diff --git a/java/com/android/dialer/widget/res/values-bn/strings.xml b/java/com/android/dialer/widget/res/values-bn/strings.xml index 9e170711479b58100c3b7ebca0e6bdc9228445f0..96b75db59a1775d6a2c82cc207db8d716f991a4f 100644 --- a/java/com/android/dialer/widget/res/values-bn/strings.xml +++ b/java/com/android/dialer/widget/res/values-bn/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "একটি কাস্টম বার্তা লিখুন" "বন্ধ করুন" + "আপনার এখনও পর্যন্ত কোনো পরিচিতি নেই" + "একটি পরিচিতি যোগ করুন" + "চালু করুন" + "আপনার পরিচিতিগুলি দেখতে, পরিচিতিগুলির অনুমতি চালু করুন।" + "কোনো পরিচিতি অ্যাপ্লিকেশান উপলব্ধ নয়" diff --git a/java/com/android/dialer/widget/res/values-bs/strings.xml b/java/com/android/dialer/widget/res/values-bs/strings.xml index 0bc1a9c15e8346ecdd5b8a866042a4c5a58bad95..df24ee16b7870b2a04262188d4a4d51ce4a963aa 100644 --- a/java/com/android/dialer/widget/res/values-bs/strings.xml +++ b/java/com/android/dialer/widget/res/values-bs/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Napišite prilagođenu poruku" "Zatvori" + "Još nemate nijedan kontakt" + "Dodajte kontakt" + "Uključi" + "Da vidite kontakte, uključite dozvolu za Kontakte." + "Nije dostupna nijedna aplikacija za kontakte" diff --git a/java/com/android/dialer/widget/res/values-ca/strings.xml b/java/com/android/dialer/widget/res/values-ca/strings.xml index 8639300394fe8967ed1f2ffa1ad113fd6783b8bf..f7bbaa746113bb1e944c0b7af4051d6537795690 100644 --- a/java/com/android/dialer/widget/res/values-ca/strings.xml +++ b/java/com/android/dialer/widget/res/values-ca/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Escriu un miss. personalitzat" "Tanca" + "Encara no tens cap contacte" + "Afegeix un contacte" + "Activa" + "Activa el permís Contactes per veure els teus contactes." + "No hi ha cap contacte disponible" diff --git a/java/com/android/dialer/widget/res/values-cs/strings.xml b/java/com/android/dialer/widget/res/values-cs/strings.xml index 829aab8ddbd830b9727b3a9af045409f70e2d35c..19e5d17dace475c36d5fb0540dd59ba81d3745e4 100644 --- a/java/com/android/dialer/widget/res/values-cs/strings.xml +++ b/java/com/android/dialer/widget/res/values-cs/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Napište vlastní zprávu" "Zavřít" + "Zatím nemáte žádné kontakty" + "Přidat kontakt" + "Povolit" + "Pokud chcete zobrazit kontakty, povolte aplikaci přístup ke Kontaktům." + "Není k dispozici žádná aplikace pro práci s kontakty" diff --git a/java/com/android/dialer/widget/res/values-da/strings.xml b/java/com/android/dialer/widget/res/values-da/strings.xml index 9381f36f52b91e61b206c1dd530b29635e1c6122..67fb244c4aa7964ffb5ca79bf60b05a6128b564b 100644 --- a/java/com/android/dialer/widget/res/values-da/strings.xml +++ b/java/com/android/dialer/widget/res/values-da/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Skriv en tilpasset besked" "Luk" + "Du har endnu ikke nogen kontaktpersoner" + "Tilføj en kontaktperson" + "Slå til" + "Slå tilladelsen Kontaktpersoner til for at se dine kontaktpersoner." + "Der er ingen tilgængelig app til kontaktpersoner" diff --git a/java/com/android/dialer/widget/res/values-de/strings.xml b/java/com/android/dialer/widget/res/values-de/strings.xml index 949fe9e493b9db2782e0d1c61e7aff823b1f1fea..14146d65f4243290e57cb6b4ecf35a0fbc1d371a 100644 --- a/java/com/android/dialer/widget/res/values-de/strings.xml +++ b/java/com/android/dialer/widget/res/values-de/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Eigene Nachricht schreiben" "Schließen" + "Du hast noch keine Kontakte" + "Kontakt hinzufügen" + "Aktivieren" + "Aktiviere die Berechtigung \"Kontakte\", um deine Kontakte abzurufen." + "Keine Kontakte-App verfügbar" diff --git a/java/com/android/dialer/widget/res/values-el/strings.xml b/java/com/android/dialer/widget/res/values-el/strings.xml index 21e049bf71344743b2ed8421426e128399448d37..0db6b269454286e4bf9cb6779faed31112d01fd2 100644 --- a/java/com/android/dialer/widget/res/values-el/strings.xml +++ b/java/com/android/dialer/widget/res/values-el/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Γράψτε ένα προσαρμ. μήνυμα" "Κλείσιμο" + "Δεν έχετε επαφές ακόμη" + "Προσθήκη επαφής" + "Ενεργοποίηση" + "Για να δείτε τις επαφές σας, ενεργοποιήστε την άδεια πρόσβασης στις Επαφές." + "Δεν υπάρχει διαθέσιμη εφαρμογή επαφών" diff --git a/java/com/android/dialer/widget/res/values-en-rAU/strings.xml b/java/com/android/dialer/widget/res/values-en-rAU/strings.xml index 7f22b46da2e29eef3bf7c357c529db092c70657d..a87cd28ffbe807b5626afa0d58310e0d4a76117f 100644 --- a/java/com/android/dialer/widget/res/values-en-rAU/strings.xml +++ b/java/com/android/dialer/widget/res/values-en-rAU/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Write a custom message" "Close" + "You don\'t have any contacts yet" + "Add a contact" + "Turn on" + "To see your contacts, turn on the Contacts permission." + "No contacts app available" diff --git a/java/com/android/dialer/widget/res/values-en-rGB/strings.xml b/java/com/android/dialer/widget/res/values-en-rGB/strings.xml index 7f22b46da2e29eef3bf7c357c529db092c70657d..a87cd28ffbe807b5626afa0d58310e0d4a76117f 100644 --- a/java/com/android/dialer/widget/res/values-en-rGB/strings.xml +++ b/java/com/android/dialer/widget/res/values-en-rGB/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Write a custom message" "Close" + "You don\'t have any contacts yet" + "Add a contact" + "Turn on" + "To see your contacts, turn on the Contacts permission." + "No contacts app available" diff --git a/java/com/android/dialer/widget/res/values-en-rIN/strings.xml b/java/com/android/dialer/widget/res/values-en-rIN/strings.xml index 7f22b46da2e29eef3bf7c357c529db092c70657d..a87cd28ffbe807b5626afa0d58310e0d4a76117f 100644 --- a/java/com/android/dialer/widget/res/values-en-rIN/strings.xml +++ b/java/com/android/dialer/widget/res/values-en-rIN/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Write a custom message" "Close" + "You don\'t have any contacts yet" + "Add a contact" + "Turn on" + "To see your contacts, turn on the Contacts permission." + "No contacts app available" diff --git a/java/com/android/dialer/widget/res/values-es-rUS/strings.xml b/java/com/android/dialer/widget/res/values-es-rUS/strings.xml index c7fbdaa58c4fddf82603cadf95eeb265035d99da..5ecc22b3da5f5b055af71625199452a6820b17f0 100644 --- a/java/com/android/dialer/widget/res/values-es-rUS/strings.xml +++ b/java/com/android/dialer/widget/res/values-es-rUS/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Escribe tu propio mensaje" "Cerrar" + "Aún no tienes contactos" + "Agregar un contacto" + "Activar" + "Para ver los contactos, activa el permiso Contactos." + "No hay ninguna app de contactos disponible" diff --git a/java/com/android/dialer/widget/res/values-es/strings.xml b/java/com/android/dialer/widget/res/values-es/strings.xml index 507e8af0dc3b5cdb6df7efaf2da38e2447a487e4..e561d06f7f89112b7c0142b99061e88244997df7 100644 --- a/java/com/android/dialer/widget/res/values-es/strings.xml +++ b/java/com/android/dialer/widget/res/values-es/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Mensaje personalizado" "Cerrar" + "Aún no tienes contactos" + "Añadir un contacto" + "Activar" + "Para ver tus contactos, activa el permiso de Contactos." + "No hay aplicaciones de contactos disponibles" diff --git a/java/com/android/dialer/widget/res/values-et/strings.xml b/java/com/android/dialer/widget/res/values-et/strings.xml index 71dab4276a2e9395e4be54e0494b8de0cd580055..054b42281df22feb6682c7e798cb643799861a61 100644 --- a/java/com/android/dialer/widget/res/values-et/strings.xml +++ b/java/com/android/dialer/widget/res/values-et/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Kirjutage kohandatud sõnum" "Sule" + "Teil pole veel kontakte" + "Kontakti lisamine" + "Lülita sisse" + "Kontaktide vaatamiseks lülitage sisse kontaktide luba." + "Kontaktide rakendus pole saadaval" diff --git a/java/com/android/dialer/widget/res/values-eu/strings.xml b/java/com/android/dialer/widget/res/values-eu/strings.xml index b8e4085a06553a3e104a505dea66ecbe10197267..7d191925e5cbda980cb930ce76fcce7b1550cf29 100644 --- a/java/com/android/dialer/widget/res/values-eu/strings.xml +++ b/java/com/android/dialer/widget/res/values-eu/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Idatzi mezu bat" "Itxi" + "Oraindik ez duzu kontakturik" + "Gehitu kontaktu bat" + "Aktibatu" + "Kontaktuak ikusteko, aktibatu Kontaktuak atzitzeko baimena." + "Ez dago kontaktu-aplikaziorik erabilgarri" diff --git a/java/com/android/dialer/widget/res/values-fa/strings.xml b/java/com/android/dialer/widget/res/values-fa/strings.xml index 0c3b1d4f5f505402569bfba7452a96803c76b43e..5ed23131ab95c92f9c99098864f8958c596b50d9 100644 --- a/java/com/android/dialer/widget/res/values-fa/strings.xml +++ b/java/com/android/dialer/widget/res/values-fa/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "پیام سفارشی بنویسید" "بستن" + "هنوز هیچ مخاطبی ندارید" + "افزودن مخاطب" + "فعال‌سازی" + "برای دیدن مخاطبینتان، مجوز «مخاطبین» را روشن کنید." + "هیچ برنامه مخاطبی در دسترس نیست" diff --git a/java/com/android/dialer/widget/res/values-fi/strings.xml b/java/com/android/dialer/widget/res/values-fi/strings.xml index e0e971cd873e2d0a32af53c4f4081f7ba92a285a..1a153072c8455e5b3f7b5bdc18d983f60c2ee469 100644 --- a/java/com/android/dialer/widget/res/values-fi/strings.xml +++ b/java/com/android/dialer/widget/res/values-fi/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Kirjoita oma viesti" "Sulje" + "Sinulla ei ole vielä yhteystietoja." + "Lisää yhteystieto." + "Ota käyttöön" + "Jos haluat katsella yhteystietojasi, ota Yhteystiedot-käyttöoikeus käyttöön." + "Yhteystietosovellusta ei ole käytettävissä." diff --git a/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml b/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml index 9776385b4d8f8d22f1e021dd274a1fe261ac45a6..62e1f37fbbc2f837df6574524710a2bdd4aea7c1 100644 --- a/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml +++ b/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Rédiger message personnalisé" "Fermer" + "Vous n\'avez pas encore de contacts" + "Ajouter un contact" + "Activer" + "Pour consulter vos contacts, activez l\'autorisation Contacts." + "Aucune application Contacts n\'est disponible" diff --git a/java/com/android/dialer/widget/res/values-fr/strings.xml b/java/com/android/dialer/widget/res/values-fr/strings.xml index fececd84aa0d57ee485ab25502281fe31e58b99c..85a32b8752a0df921a0394876873ccb51474f104 100644 --- a/java/com/android/dialer/widget/res/values-fr/strings.xml +++ b/java/com/android/dialer/widget/res/values-fr/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Écrire mon propre message" "Fermer" + "Vous n\'avez pas encore de contacts." + "Ajouter un contact" + "Activer" + "Pour consulter vos contacts, activez l\'autorisation Contacts." + "Aucune application de gestion des contacts n\'est disponible" diff --git a/java/com/android/dialer/widget/res/values-gl/strings.xml b/java/com/android/dialer/widget/res/values-gl/strings.xml index 6a756810ba6eb7f0c330905bb8986e41d591c4e1..8a9089fdb8f63a326afd357706d70be764c0df41 100644 --- a/java/com/android/dialer/widget/res/values-gl/strings.xml +++ b/java/com/android/dialer/widget/res/values-gl/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Escribe unha mensaxe personalizada" "Pechar" + "Aínda non tes ningún contacto" + "Engadir un contacto" + "Activar" + "Para ver os teus contactos, activa o permiso de Contactos." + "Non hai ningunha aplicación de contactos dispoñible" diff --git a/java/com/android/dialer/widget/res/values-gu/strings.xml b/java/com/android/dialer/widget/res/values-gu/strings.xml index c2f8cf0e190e9fdd502d3fce2894cb643c7b16d5..794245d3db0a244c05e43c746f232ecf028d3ba3 100644 --- a/java/com/android/dialer/widget/res/values-gu/strings.xml +++ b/java/com/android/dialer/widget/res/values-gu/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "એક કસ્ટમ સંદેશ લખો" "બંધ કરો" + "તમે હજી સુધી કોઇપણ સંપર્કો ધરાવતાં નથી" + "સંપર્ક ઉમેરો" + "ચાલુ કરો" + "તમારા સંપર્કો જોવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો." + "કોઈ સંપર્કો ઍપ્લિકેશન ઉપલબ્ધ નથી" diff --git a/java/com/android/dialer/widget/res/values-hi/strings.xml b/java/com/android/dialer/widget/res/values-hi/strings.xml index 63c94e7f697a0018aad191920d54c3e9cfd83825..5cdb8bbfc345791e0f653ae9524660a0ed3bde31 100644 --- a/java/com/android/dialer/widget/res/values-hi/strings.xml +++ b/java/com/android/dialer/widget/res/values-hi/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "कोई कस्टम संदेश लिखें" "बंद करें" + "आपके पास अभी कोई भी संपर्क नहीं है" + "कोई संपर्क जोड़ें" + "चालू करें" + "अपने संपर्क देखने के लिए, संपर्क अनुमति चालू करें." + "कोई भी संपर्क ऐप उपलब्‍ध नहीं है" diff --git a/java/com/android/dialer/widget/res/values-hr/strings.xml b/java/com/android/dialer/widget/res/values-hr/strings.xml index 28a58d4537724fab29e4bd6215dd4d77a9b6ea9d..9ded4d4a79fc1ec04e8eabf6e6f044559ed2546f 100644 --- a/java/com/android/dialer/widget/res/values-hr/strings.xml +++ b/java/com/android/dialer/widget/res/values-hr/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Napišite prilagođenu poruku" "Zatvaranje" + "Još nemate nijedan kontakt" + "Dodavanje kontakta" + "Uključi" + "Da biste vidjeli svoje kontakte, uključite dopuštenje za kontakte." + "Nije dostupna nijedna aplikacija za kontakte" diff --git a/java/com/android/dialer/widget/res/values-hu/strings.xml b/java/com/android/dialer/widget/res/values-hu/strings.xml index dcd2b36ea54f3e96399def7738109b721d6199ed..92ae71de8fb857ccd6fff04156a5a112c177e064 100644 --- a/java/com/android/dialer/widget/res/values-hu/strings.xml +++ b/java/com/android/dialer/widget/res/values-hu/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Egyéni üzenet írása" "Bezárás" + "Még nem rendelkezik egyetlen névjeggyel sem" + "Névjegy hozzáadása" + "Bekapcsolás" + "A névjegyek megtekintéséhez kapcsolja be a Névjegyek engedélyt." + "Nincs elérhető névjegykezelő alkalmazás" diff --git a/java/com/android/dialer/widget/res/values-hy/strings.xml b/java/com/android/dialer/widget/res/values-hy/strings.xml index 7b78bb23e1df395aa11beef8c9f934ee1008645e..ffa7132c5c43a353ef90c1e0f8054375ba9b4c75 100644 --- a/java/com/android/dialer/widget/res/values-hy/strings.xml +++ b/java/com/android/dialer/widget/res/values-hy/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Գրել տեքստն ինքնուրույն" "Փակել" + "Դեռ կոնտակտներ չունեք" + "Ավելացնել կոնտակտ" + "Միացնել" + "Ձեր կոնտակտները տեսնելու համար միացրեք Կոնտակտների թույլտվությունը:" + "Կոնտակտների հավելված չկա" diff --git a/java/com/android/dialer/widget/res/values-in/strings.xml b/java/com/android/dialer/widget/res/values-in/strings.xml index b4b65504b70d81963d7d18b6d5157fa5bf3b8983..69849ae023e5be90c626c65c5b5bfdcd960d5ba2 100644 --- a/java/com/android/dialer/widget/res/values-in/strings.xml +++ b/java/com/android/dialer/widget/res/values-in/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Tulis pesan khusus" "Tutup" + "Anda belum memiliki kontak" + "Tambahkan kontak" + "Aktifkan" + "Untuk melihat kontak, aktifkan izin Kontak." + "Aplikasi kontak tidak tersedia" diff --git a/java/com/android/dialer/widget/res/values-is/strings.xml b/java/com/android/dialer/widget/res/values-is/strings.xml index fd844197e4190cfae7009c384994aaa9a316eabc..98a172904d7a77a497a3a4621046dbb63c400282 100644 --- a/java/com/android/dialer/widget/res/values-is/strings.xml +++ b/java/com/android/dialer/widget/res/values-is/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Skrifa sérsniðin skilaboð" "Loka" + "Þú ert ekki með neina tengiliði enn sem komið er" + "Bæta tengilið við" + "Kveikja" + "Kveiktu á tengiliðaheimildinni til að sjá tengiliðina þína." + "Ekkert tengiliðaforrit í boði" diff --git a/java/com/android/dialer/widget/res/values-it/strings.xml b/java/com/android/dialer/widget/res/values-it/strings.xml index 0af3fd2eb9fecc069c6425651f88ab5dfaf85b1a..1a6e6c13521ee6643cb5e48bbe9f3f08be6caf3b 100644 --- a/java/com/android/dialer/widget/res/values-it/strings.xml +++ b/java/com/android/dialer/widget/res/values-it/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Scrivi un messaggio personalizzato" "Chiudi" + "Nessun contatto disponibile" + "Aggiungi un contatto" + "Attiva" + "Per accedere ai tuoi contatti, attiva l\'autorizzazione Contatti." + "Nessuna app di contatti disponibile" diff --git a/java/com/android/dialer/widget/res/values-iw/strings.xml b/java/com/android/dialer/widget/res/values-iw/strings.xml index a485888ae027f5ece085b5abda01061d7e85c1c8..f2a732a67c05ff3439b83699626cf72ad59e0f87 100644 --- a/java/com/android/dialer/widget/res/values-iw/strings.xml +++ b/java/com/android/dialer/widget/res/values-iw/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "כתוב הודעה מותאמת אישית" "סגירה" + "עדיין אין לך אנשי קשר" + "הוספה של איש קשר" + "הפעלה" + "עליך להפעיל את ההרשאה \'אנשי קשר\' כדי להציג את אנשי הקשר שלך." + "אין אף אפליקציה לניהול אנשי קשר" diff --git a/java/com/android/dialer/widget/res/values-ja/strings.xml b/java/com/android/dialer/widget/res/values-ja/strings.xml index 9fd65a80622658c84eec9576d99ee8d9a8e9b68c..7994c62623c85aff6e0a084abef76d29d16a5b6a 100644 --- a/java/com/android/dialer/widget/res/values-ja/strings.xml +++ b/java/com/android/dialer/widget/res/values-ja/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "カスタム メッセージを入力" "閉じる" + "連絡先はまだありません" + "連絡先を追加" + "ON にする" + "連絡先を表示するには、連絡先へのアクセスを許可する設定を ON にしてください。" + "利用できる連絡先アプリがありません" diff --git a/java/com/android/dialer/widget/res/values-ka/strings.xml b/java/com/android/dialer/widget/res/values-ka/strings.xml index 6dde0443073eb6a69b41a462f70b52afa4d7f5dc..865a66b453430998ef557f9d089fb67ee6fce5cc 100644 --- a/java/com/android/dialer/widget/res/values-ka/strings.xml +++ b/java/com/android/dialer/widget/res/values-ka/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "დაწერეთ მორგებ. შეტყობინება" "დახურვა" + "კონტაქტები ჯერ არ გაქვთ" + "კონტაქტის დამატება" + "ჩართვა" + "კონტაქტების სანახავად ჩართეთ კონტაქტების ნებართვა." + "კონტაქტების აპი მიუწვდომელია" diff --git a/java/com/android/dialer/widget/res/values-kk/strings.xml b/java/com/android/dialer/widget/res/values-kk/strings.xml index 334d915e25a44156262a7e3b9e2145e61fe34582..08856aaecaef5fb8a5214a7f02bce463e47cebf8 100644 --- a/java/com/android/dialer/widget/res/values-kk/strings.xml +++ b/java/com/android/dialer/widget/res/values-kk/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Арнаулы хабар жазу" "Жабу" + "Әлі ешқандай контактілер жоқ" + "Контакт қосу" + "Қосу" + "Контактілерді көру үшін \"Контактілер\" рұқсатын қосыңыз." + "Контактілер қолданбасы қолжетімді емес" diff --git a/java/com/android/dialer/widget/res/values-km/strings.xml b/java/com/android/dialer/widget/res/values-km/strings.xml index d0f5633e4a0b1995c79d30b1b22818fa08664c1b..c0923325345d4c708aca256af4d4eae81a2d669d 100644 --- a/java/com/android/dialer/widget/res/values-km/strings.xml +++ b/java/com/android/dialer/widget/res/values-km/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "សរសេរ​សារ​ផ្ទាល់ខ្លួន" "បិទ" + "អ្នកមិនទាន់មានទំនាក់ទំនងនៅឡើយទេ" + "បញ្ចូល​ទំនាក់ទំនង" + "បើក" + "ដើម្បីមើលទំនាក់ទំនងរបស់អ្នក សូមបើកការ​អនុញ្ញាតកម្មវិធីទំនាក់ទំនង។" + "មិនមានកម្មវិធីទំនាក់ទំនងទេ" diff --git a/java/com/android/dialer/widget/res/values-kn/strings.xml b/java/com/android/dialer/widget/res/values-kn/strings.xml index 3535bfcb76f7822091a44e95823f5965ee17f546..a502d087ecfd74ed59224be8ba36fc79b2e88f71 100644 --- a/java/com/android/dialer/widget/res/values-kn/strings.xml +++ b/java/com/android/dialer/widget/res/values-kn/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "ಕಸ್ಟಮ್ ಸಂದೇಶವನ್ನು ಬರೆಯಿರಿ" "ಮುಚ್ಚಿ" + "ನಿಮ್ಮ ಬಳಿ ಇನ್ನೂ ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ" + "ಸಂಪರ್ಕ ಸೇರಿಸಿ" + "ಆನ್ ಮಾಡಿ" + "ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ವೀಕ್ಷಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ." + "ಯಾವುದೇ ಸಂಪರ್ಕಗಳ ಅಪ್ಲಿಕೇಶನ್‌ ಲಭ್ಯವಿಲ್ಲ" diff --git a/java/com/android/dialer/widget/res/values-ko/strings.xml b/java/com/android/dialer/widget/res/values-ko/strings.xml index 8c00cea8b1f808302ef5f6013dd8d2b51f6340fb..045dc54dce42f15ffa29c5df24e0d4dde59afd1d 100644 --- a/java/com/android/dialer/widget/res/values-ko/strings.xml +++ b/java/com/android/dialer/widget/res/values-ko/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "맞춤 메시지를 작성하세요." "닫기" + "아직 연락처가 없습니다." + "연락처 추가" + "사용" + "연락처를 보려면 연락처에 액세스할 권한을 부여하세요." + "사용할 수 있는 연락처 앱이 없습니다." diff --git a/java/com/android/dialer/widget/res/values-ky/strings.xml b/java/com/android/dialer/widget/res/values-ky/strings.xml index 46ea8514cc4a7814effab81ad5795408ee15c0fe..7ef10e707a48af3041bc7d46a0d107d4faa0a339 100644 --- a/java/com/android/dialer/widget/res/values-ky/strings.xml +++ b/java/com/android/dialer/widget/res/values-ky/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Башка билдирүүнү жазыңыз" "Жабуу" + "Азырынча эч байланышыңыз жок" + "Байланыш кошуу" + "Күйгүзүү" + "Байланыштарыңызды көрүү үчүн, \"Байланыштар\" уруксатын күйгүзүңүз." + "Жеткиликтүү байланыштар колдонмосу жок" diff --git a/java/com/android/dialer/widget/res/values-lo/strings.xml b/java/com/android/dialer/widget/res/values-lo/strings.xml index 0db64a78a4f2b3a064bb19ea87be93278633d706..dc7ba44c1f5545bd10474c290ddd902ceb11406f 100644 --- a/java/com/android/dialer/widget/res/values-lo/strings.xml +++ b/java/com/android/dialer/widget/res/values-lo/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "ຂຽນຂໍ້ຄວາມດ້ວຍຕົນເອງ" "ປິດ" + "ທ່ານຍັງບໍ່ມີລາຍຊື່ຜູ້ຕິດຕໍ່ເທື່ອ" + "ເພີ່ມລາຍຊື່" + "ເປີດໃຊ້" + "ເພື່ອເບິ່ງລາຍຊື່ຜູ້ຕິດຕໍ່ຂອງທ່ານ, ໃຫ້ເປີດການອະນຸຍາດລາຍຊື່ຜູ້ຕິດຕໍ່ກ່ອນ" + "ບໍ່ມີແອັບລາຍຊື່ຜູ້ຕິດຕໍ່ທີ່ສາມາດໃຊ້ໄດ້" diff --git a/java/com/android/dialer/widget/res/values-lt/strings.xml b/java/com/android/dialer/widget/res/values-lt/strings.xml index a10b91ef694405fa2b37d11d259d836fab9e4817..be12520f801c16992682837aef5c92556d729b84 100644 --- a/java/com/android/dialer/widget/res/values-lt/strings.xml +++ b/java/com/android/dialer/widget/res/values-lt/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Parašykite tinkintą praneš." "Uždaryti" + "Dar neturite jokių kontaktų" + "Pridėkite kontaktą" + "Įjungti" + "Jei norite peržiūrėti kontaktus, įjunkite Kontaktų leidimą." + "Nepasiekiama jokia kontaktų programa" diff --git a/java/com/android/dialer/widget/res/values-lv/strings.xml b/java/com/android/dialer/widget/res/values-lv/strings.xml index 8ff079390d26a64998513227e862eeae778aaa12..acefbaea42b2cad8306ab5a40ab9f5fadb79305c 100644 --- a/java/com/android/dialer/widget/res/values-lv/strings.xml +++ b/java/com/android/dialer/widget/res/values-lv/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Rakstīt pielāgotu ziņojumu" "Aizvērt" + "Jums vēl nav nevienas kontaktpersonas." + "Pievienot kontaktpersonu" + "Ieslēgt" + "Lai skatītu savas kontaktpersonas, ieslēdziet atļauju Kontaktpersonas." + "Nav pieejama neviena kontaktpersonu lietotne." diff --git a/java/com/android/dialer/widget/res/values-mk/strings.xml b/java/com/android/dialer/widget/res/values-mk/strings.xml index aa9be305524395066fea15190bad5041b23f1bfa..20b18e8d99655ee8930daeed4701ffc95686e6ac 100644 --- a/java/com/android/dialer/widget/res/values-mk/strings.xml +++ b/java/com/android/dialer/widget/res/values-mk/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Напиши приспособена порака" "Затвори" + "Сè уште немате контакти" + "Додајте контакт" + "Вклучи" + "За да ги видите контактите, вклучете ја дозволата за контакти." + "Нема достапна апликација за контакти" diff --git a/java/com/android/dialer/widget/res/values-ml/strings.xml b/java/com/android/dialer/widget/res/values-ml/strings.xml index b52ee401cf67d1650da6dc26af0fbbb7efe38b6e..a97a7d862746e79dc3a44a9fcf9da6bf26d3dbd0 100644 --- a/java/com/android/dialer/widget/res/values-ml/strings.xml +++ b/java/com/android/dialer/widget/res/values-ml/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "ഒരു ഇ‌ഷ്‌ടാനുസൃത സന്ദേശം രചിക്കൂ" "അടയ്‌ക്കുക" + "നിങ്ങൾക്ക് ഇതുവരെയും കോൺടാക്റ്റുകൾ ഒന്നുമില്ല." + "ഒരു കോണ്‍ടാക്റ്റ് ചേര്‍ക്കുക" + "ഓൺ ചെയ്യുക" + "നിങ്ങളുടെ കോൺടാക്റ്റുകൾ കാണുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക." + "കോൺടാക്റ്റ് അപ്ലിക്കേഷനൊന്നും ലഭ്യമല്ല" diff --git a/java/com/android/dialer/widget/res/values-mn/strings.xml b/java/com/android/dialer/widget/res/values-mn/strings.xml index 6bdad8983d30a7486a71c449a124dba1623f080c..bbcfc7cf65f45f6f7d384a76cde0e9d9ef027829 100644 --- a/java/com/android/dialer/widget/res/values-mn/strings.xml +++ b/java/com/android/dialer/widget/res/values-mn/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Тусгай зурвас бичих" "Хаах" + "Танд одоогоор харилцагч байхгүй байна" + "Харилцагч нэмэх" + "Асаах" + "Харилцагчдаа харахын тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү." + "Ямар ч харилцагчдын апликейшн байхгүй байна" diff --git a/java/com/android/dialer/widget/res/values-mr/strings.xml b/java/com/android/dialer/widget/res/values-mr/strings.xml index 5661fa8b9b6d47e17a5d872882cd6dc1cb144a54..38d913a85d55e591390de4af326994fb5643dbac 100644 --- a/java/com/android/dialer/widget/res/values-mr/strings.xml +++ b/java/com/android/dialer/widget/res/values-mr/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "एक सानुकूल संदेश लिहा" "बंद करा" + "आपल्‍याकडे अद्याप कोणतेही संपर्क नाहीत" + "एक संपर्क जोडा" + "चालू करा" + "आपले संपर्क पाहण्‍यासाठी, संपर्क परवानगी चालू करा." + "कोणताही संपर्क अॅप उपलब्ध नाही" diff --git a/java/com/android/dialer/widget/res/values-ms/strings.xml b/java/com/android/dialer/widget/res/values-ms/strings.xml index 8889ccc8de2f4f30abfbbb737b2fcedbcab591f6..bc67c676480f3a5265786aff4c668a2d746e1d1b 100644 --- a/java/com/android/dialer/widget/res/values-ms/strings.xml +++ b/java/com/android/dialer/widget/res/values-ms/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Tulis mesej tersuai" "Tutup" + "Anda belum mempunyai sebarang kenalan" + "Tambahkan kenalan" + "Hidupkan" + "Untuk melihat kenalan anda, hidupkan kebenaran Kenalan." + "Tiada apl kenalan yang tersedia" diff --git a/java/com/android/dialer/widget/res/values-my/strings.xml b/java/com/android/dialer/widget/res/values-my/strings.xml index 9a69f29ebfebd7051826dc3974b8276e3ecefca9..c8e783bf4af8f9d81ca809e08bc6752b682cf829 100644 --- a/java/com/android/dialer/widget/res/values-my/strings.xml +++ b/java/com/android/dialer/widget/res/values-my/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "စိတ်ကြိုက် မက်ဆေ့ဂျ်တစ်ခု ရေးပါ" "ပိတ်ရန်" + "သင့်တွင် မည်သည့်အဆက်အသွယ်မျှ မရှိသေးပါ" + "အဆက်အသွယ်တစ်ယောက် ထည့်မည်" + "ဖွင့်ရန်" + "အဆက်အသွယ်များကိုကြည့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။" + "အဆက်အသွယ်များ app မရှိပါ" diff --git a/java/com/android/dialer/widget/res/values-nb/strings.xml b/java/com/android/dialer/widget/res/values-nb/strings.xml index 100156bd14ea96a3c8371112f2d8e492ae8612ff..822f07ed17688ead1f49d4d12a30a793304f0d23 100644 --- a/java/com/android/dialer/widget/res/values-nb/strings.xml +++ b/java/com/android/dialer/widget/res/values-nb/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Skriv egendefinert melding" "Lukk" + "Du har ingen kontakter ennå" + "Legg til en kontakt" + "Slå på" + "For å se kontaktene dine må du slå på Kontakter-tillatelsen." + "Ingen kontaktapper er tilgjengelige" diff --git a/java/com/android/dialer/widget/res/values-ne/strings.xml b/java/com/android/dialer/widget/res/values-ne/strings.xml index abb8bb04b4368155572819f4c3091761fcc032b3..ebb31d57911cb5f76d2e43ad0dd835da305a7189 100644 --- a/java/com/android/dialer/widget/res/values-ne/strings.xml +++ b/java/com/android/dialer/widget/res/values-ne/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "आफू अनुकूल सन्देश लेख्‍ने" "बन्द गर्नुहोस्" + "अहिलेसम्म तपाईंसँग कुनै सम्पर्कहरू छैनन्" + "कुनै सम्पर्क थप्नुहोस्" + "सक्रिय गर्नुहोस्" + "आफ्ना सम्पर्कहरू हेर्न सम्पर्क सम्बन्धी अनुमतिलाई सक्रिय गर्नुहोस्।" + "सम्पर्क सम्बन्धी कुनै अनुप्रयोग उपलब्ध छैन" diff --git a/java/com/android/dialer/widget/res/values-nl/strings.xml b/java/com/android/dialer/widget/res/values-nl/strings.xml index 55602889370d521a95bd474137288d25af5f071b..cbc286ba36c969c1dc7fd606c0445109b0558fdf 100644 --- a/java/com/android/dialer/widget/res/values-nl/strings.xml +++ b/java/com/android/dialer/widget/res/values-nl/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Schrijf zelf een bericht" "Sluiten" + "Je hebt nog geen contacten" + "Een contact toevoegen" + "Inschakelen" + "Als je je contacten wilt bekijken, schakel je de machtiging voor Contacten in." + "Geen app voor contacten beschikbaar" diff --git a/java/com/android/dialer/widget/res/values-no/strings.xml b/java/com/android/dialer/widget/res/values-no/strings.xml index 100156bd14ea96a3c8371112f2d8e492ae8612ff..822f07ed17688ead1f49d4d12a30a793304f0d23 100644 --- a/java/com/android/dialer/widget/res/values-no/strings.xml +++ b/java/com/android/dialer/widget/res/values-no/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Skriv egendefinert melding" "Lukk" + "Du har ingen kontakter ennå" + "Legg til en kontakt" + "Slå på" + "For å se kontaktene dine må du slå på Kontakter-tillatelsen." + "Ingen kontaktapper er tilgjengelige" diff --git a/java/com/android/dialer/widget/res/values-pa/strings.xml b/java/com/android/dialer/widget/res/values-pa/strings.xml index 4c69c2c6e4d55d089ba0ede673c468a94c80e53a..06f191e50d60e369c00ee6e6bcb792c9e1b1fc61 100644 --- a/java/com/android/dialer/widget/res/values-pa/strings.xml +++ b/java/com/android/dialer/widget/res/values-pa/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ ਸੰਦੇਸ਼ ਲਿਖੋ" "ਬੰਦ ਕਰੋ" + "ਤੁਹਾਡੇ ਕੋਲ ਹਾਲੇ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ ਹਨ" + "ਕੋਈ ਸੰਪਰਕ ਸ਼ਾਮਲ ਕਰੋ" + "ਚਾਲੂ ਕਰੋ" + "ਆਪਣੇ ਸੰਪਰਕਾਂ ਨੂੰ ਵੇਖਣ ਲਈ, ਸੰਪਰਕ ਇਜਾਜ਼ਤ ਚਾਲੂ ਕਰੋ।" + "ਕੋਈ ਸੰਪਰਕ ਐਪ ਉਪਲਬਧ ਨਹੀਂ ਹੈ" diff --git a/java/com/android/dialer/widget/res/values-pl/strings.xml b/java/com/android/dialer/widget/res/values-pl/strings.xml index cec7a4045212fcb9ef6477f7b2e50863d699cf5b..5d62a07f157d812619262a00a63cdb3cb04f3ddd 100644 --- a/java/com/android/dialer/widget/res/values-pl/strings.xml +++ b/java/com/android/dialer/widget/res/values-pl/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Wpisz wiadomość" "Zamknij" + "Nie masz jeszcze żadnych kontaktów" + "Dodaj kontakt" + "Włącz" + "Aby zobaczyć swoje kontakty, włącz uprawnienia Kontakty." + "Nie jest dostępna żadna aplikacja do obsługi kontaktów" diff --git a/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml b/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml index b15bfac8df8c0e6d7c9b5010fc8ed0bd679eb0d4..0afc0f1d658066195ccec6b7db19c72dd96bf80f 100644 --- a/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml +++ b/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Escreva sua mensagem" "Fechar" + "Você ainda não tem contatos" + "Adicionar um contato" + "Ativar" + "Para ver seus contatos, ative a permissão para o app Contatos." + "Nenhum app de contatos disponível" diff --git a/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml b/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml index ece2ef2c32569d9ac666e0c2cee5859d5b342b8b..35f71a37145bf1907c5a0885fd0be679243fd90d 100644 --- a/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml +++ b/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Escreva uma mensagem" "Fechar" + "Ainda não tem nenhum contacto" + "Adicionar um contacto" + "Ativar" + "Para ver os seus contactos, ative a autorização Contactos." + "Não existe nenhuma aplicação de contactos disponível" diff --git a/java/com/android/dialer/widget/res/values-pt/strings.xml b/java/com/android/dialer/widget/res/values-pt/strings.xml index b15bfac8df8c0e6d7c9b5010fc8ed0bd679eb0d4..0afc0f1d658066195ccec6b7db19c72dd96bf80f 100644 --- a/java/com/android/dialer/widget/res/values-pt/strings.xml +++ b/java/com/android/dialer/widget/res/values-pt/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Escreva sua mensagem" "Fechar" + "Você ainda não tem contatos" + "Adicionar um contato" + "Ativar" + "Para ver seus contatos, ative a permissão para o app Contatos." + "Nenhum app de contatos disponível" diff --git a/java/com/android/dialer/widget/res/values-ro/strings.xml b/java/com/android/dialer/widget/res/values-ro/strings.xml index 753b920b47e4a5863a0e6b2a84751e752dfc62f7..6c51d23ac75094ef6ffa5e2ce7af338acc57baaf 100644 --- a/java/com/android/dialer/widget/res/values-ro/strings.xml +++ b/java/com/android/dialer/widget/res/values-ro/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Scrieți mesaj personalizat" "Închideți" + "Nu aveți încă persoane de contact." + "Adăugați o persoană de contact" + "Activați" + "Pentru a vedea persoanele de contact, activați permisiunea pentru Agendă." + "Nu este disponibilă nicio aplicație pentru agendă" diff --git a/java/com/android/dialer/widget/res/values-ru/strings.xml b/java/com/android/dialer/widget/res/values-ru/strings.xml index bdebd3ce4e4141728288ec111abfd2fcd3fa0710..c36874de567489d374dc6d43c0301a67fe3b402a 100644 --- a/java/com/android/dialer/widget/res/values-ru/strings.xml +++ b/java/com/android/dialer/widget/res/values-ru/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Добавьте свой текст" "Закрыть" + "Контактов нет" + "Добавить контакт" + "Предоставить разрешение" + "Чтобы открыть список контактов, предоставьте приложению разрешение \"Контакты\"." + "Нет приложения для работы с контактами" diff --git a/java/com/android/dialer/widget/res/values-si/strings.xml b/java/com/android/dialer/widget/res/values-si/strings.xml index 4988259d4c981b56aba40346d97fae551b911eb3..10eb7b5b5506b80f27a91aae555bffeb4f7732cb 100644 --- a/java/com/android/dialer/widget/res/values-si/strings.xml +++ b/java/com/android/dialer/widget/res/values-si/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "අභිරුචි පණිවිඩයක් ලියන්න" "වසන්න" + "ඔබට තවම කිසිදු සම්බන්ධතාවක් නැත" + "සම්බන්ධතාවක් එක් කරන්න" + "ක්‍රියාත්මක කරන්න" + "ඔබේ සම්බන්ධතා බැලීමට, සම්බන්ධතා අවසරය ක්‍රියාත්මක කරන්න." + "සබඳතා යෙදුම ලබා ගැනීමට නොහැකිය" diff --git a/java/com/android/dialer/widget/res/values-sk/strings.xml b/java/com/android/dialer/widget/res/values-sk/strings.xml index 5dc1bd505389c5609fbe9a4678acf6efd3f77e7e..56f7ceb97df63ebfd2b2182da0b616ef65e2d9b9 100644 --- a/java/com/android/dialer/widget/res/values-sk/strings.xml +++ b/java/com/android/dialer/widget/res/values-sk/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Napíšte vlastnú správu" "Zavrieť" + "Zatiaľ nemáte žiadne kontakty" + "Pridať kontakt" + "Zapnúť" + "Ak si chcete zobraziť kontakty, zapnite povolenie Kontakty." + "Nie je k dispozícii žiadna aplikácia na prácu s kontaktmi" diff --git a/java/com/android/dialer/widget/res/values-sl/strings.xml b/java/com/android/dialer/widget/res/values-sl/strings.xml index 0ba965b2edc2370fb431636fd8ce5dc426a1aa5e..52f02937736688553670a31ba5ea4a5e78675735 100644 --- a/java/com/android/dialer/widget/res/values-sl/strings.xml +++ b/java/com/android/dialer/widget/res/values-sl/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Napišite sporočilo po meri" "Zapri" + "Nimate še nobenega stika" + "Dodaj stik" + "Vklopi" + "Če si želite ogledati stike, vklopite dovoljenje za stike." + "Na voljo ni nobene aplikacije za stike" diff --git a/java/com/android/dialer/widget/res/values-sq/strings.xml b/java/com/android/dialer/widget/res/values-sq/strings.xml index 7f5e0f2857840e7512f32c2689422f6266fc6167..c7943dfd381a9d1c79f920b19797648af975da98 100644 --- a/java/com/android/dialer/widget/res/values-sq/strings.xml +++ b/java/com/android/dialer/widget/res/values-sq/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Shkruaj mesazh të person." "Mbyll" + "Nuk ke ende kontakte" + "Shto një kontakt" + "Aktivizo" + "Për të parë kontaktet, aktivizo lejen e Kontakteve." + "Nuk ka asnjë aplikacion për kontaktet" diff --git a/java/com/android/dialer/widget/res/values-sr/strings.xml b/java/com/android/dialer/widget/res/values-sr/strings.xml index 446c273639947c0e34e797ce78163a62eb37d1ae..00b9b4f6cf23e747bd521f0f1331b0cb943123b8 100644 --- a/java/com/android/dialer/widget/res/values-sr/strings.xml +++ b/java/com/android/dialer/widget/res/values-sr/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Напишите прилагођену поруку" "Затворите" + "Још увек немате ниједан контакт" + "Додај контакт" + "Укључи" + "Да бисте видели контакте, укључите дозволу за Контакте." + "Нема доступне апликације за контакте" diff --git a/java/com/android/dialer/widget/res/values-sv/strings.xml b/java/com/android/dialer/widget/res/values-sv/strings.xml index 7d2f44c454f05609b6e6ebd53973ef34b892924c..3593970268dabdc92f82dea2da9f5ca67e82473a 100644 --- a/java/com/android/dialer/widget/res/values-sv/strings.xml +++ b/java/com/android/dialer/widget/res/values-sv/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Skriv anpassat meddelande" "Stäng" + "Du har inga kontakter ännu" + "Lägg till en kontakt" + "Aktivera" + "Du måste aktivera behörigheten Kontakter för att visa kontakterna." + "Det finns inga appar för kontakter" diff --git a/java/com/android/dialer/widget/res/values-sw/strings.xml b/java/com/android/dialer/widget/res/values-sw/strings.xml index d2c2a97212b4c53ca0db1ae0c88ad3cadfa2a5ff..b0892108b2bab4b5c75c778004d0ffbb931063d8 100644 --- a/java/com/android/dialer/widget/res/values-sw/strings.xml +++ b/java/com/android/dialer/widget/res/values-sw/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Andika ujumbe maalum" "Funga" + "Bado huna anwani zozote" + "Ongeza anwani" + "Washa" + "Ili uone anwani zako, washa ruhusa ya Anwani." + "Hakuna programu ya anwani iliyopatikana" diff --git a/java/com/android/dialer/widget/res/values-ta/strings.xml b/java/com/android/dialer/widget/res/values-ta/strings.xml index 4061c169f88abcf5a3d8b7891f1beb7220e1c7fb..83ca080e5c34db7d289e6c6ac1ca561195083546 100644 --- a/java/com/android/dialer/widget/res/values-ta/strings.xml +++ b/java/com/android/dialer/widget/res/values-ta/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "தனிப்பயன் செய்தியை எழுதவும்" "மூடு" + "இதுவரை தொடர்புகள் எதுவுமில்லை" + "தொடர்பைச் சேர்" + "இயக்கு" + "தொடர்புகளைப் பார்க்க, தொடர்புகள் அனுமதியை இயக்கவும்." + "தொடர்புகள் பயன்பாடு எதுவுமில்லை" diff --git a/java/com/android/dialer/widget/res/values-te/strings.xml b/java/com/android/dialer/widget/res/values-te/strings.xml index c2474b7ce27fb285864e4bdcb315160e3ffe510a..418cc3d0b28bbed998b38d619c6b18dd2255cc06 100644 --- a/java/com/android/dialer/widget/res/values-te/strings.xml +++ b/java/com/android/dialer/widget/res/values-te/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "అనుకూల సందేశాన్ని వ్రాయండి" "మూసివేయి" + "మీకు ఇప్పటికీ పరిచయాలేవీ లేవు" + "పరిచయాన్ని జోడించండి" + "ఆన్ చేయి" + "మీ పరిచయాలను చూడటానికి, పరిచయాల అనుమతిని ఆన్ చేయండి." + "పరిచయాల అనువర్తనం ఏదీ అందుబాటులో లేదు" diff --git a/java/com/android/dialer/widget/res/values-th/strings.xml b/java/com/android/dialer/widget/res/values-th/strings.xml index d450b4b1318290b3511737d6d4bf54ec0dd13831..c556d1c37ab12aa09dcaacf3eff780c1fbac1f81 100644 --- a/java/com/android/dialer/widget/res/values-th/strings.xml +++ b/java/com/android/dialer/widget/res/values-th/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "เขียนข้อความที่กำหนดเอง" "ปิด" + "คุณยังไม่มีรายชื่อติดต่อ" + "เพิ่มรายชื่อติดต่อ" + "เปิด" + "หากต้องการดูรายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ" + "ไม่มีแอปรายชื่อติดต่อที่พร้อมใช้งาน" diff --git a/java/com/android/dialer/widget/res/values-tl/strings.xml b/java/com/android/dialer/widget/res/values-tl/strings.xml index ee7c52f7b3958fd354d316d0fa89d2085525a87c..be02d1989ce4645197d0d3cb423af55c05d05b06 100644 --- a/java/com/android/dialer/widget/res/values-tl/strings.xml +++ b/java/com/android/dialer/widget/res/values-tl/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Sumulat ng custom na mensahe" "Isara" + "Wala ka pang sinumang contact" + "Magdagdag ng contact" + "I-on" + "Upang makita ang iyong mga contact, i-on ang pahintulot ng Mga Contact." + "Walang available na app ng mga contact" diff --git a/java/com/android/dialer/widget/res/values-tr/strings.xml b/java/com/android/dialer/widget/res/values-tr/strings.xml index 64e2ea535b8d946177d911df2b42a42fa5ca4f62..90d5db64907d061910a52797d7dbba2fce5b7258 100644 --- a/java/com/android/dialer/widget/res/values-tr/strings.xml +++ b/java/com/android/dialer/widget/res/values-tr/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Özel bir mesaj yazın" "Kapat" + "Henüz hiç kişiniz yok" + "Kişi ekleyin" + "Etkinleştir" + "Kişilerinizi görmek için Kişiler iznini etkinleştirin." + "Kullanılabilir kişi uygulaması yok" diff --git a/java/com/android/dialer/widget/res/values-uk/strings.xml b/java/com/android/dialer/widget/res/values-uk/strings.xml index f8d9bb8715d2e4e0cbb0ab82ed2ea9e8646f0f74..cf5a7d1db17a3a50274e74e8887d8f1302665fa5 100644 --- a/java/com/android/dialer/widget/res/values-uk/strings.xml +++ b/java/com/android/dialer/widget/res/values-uk/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Ваше власне повідомлення" "Закрити" + "Ще немає контактів" + "Додати контакт" + "Увімкнути" + "Щоб переглянути контакти, увімкніть дозвіл \"Контакти\"." + "Немає додатка з контактами" diff --git a/java/com/android/dialer/widget/res/values-ur/strings.xml b/java/com/android/dialer/widget/res/values-ur/strings.xml index 6edeb5c95ea4c079a641170974bea8ebe5775270..e5199afe4808e9194d8f30beb951a97c2287ecbc 100644 --- a/java/com/android/dialer/widget/res/values-ur/strings.xml +++ b/java/com/android/dialer/widget/res/values-ur/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "ایک حسب ضرورت پیغام لکھیں" "بند کریں" + "آپ کے پاس ابھی تک کوئی رابطے نہیں ہیں" + "ایک رابطہ شامل کریں" + "آن کریں" + "اپنے رابطے دیکھنے کیلئے رابطوں کی اجازت آن کریں۔" + "رابطوں کی کوئی ایپ دستیاب نہیں ہے" diff --git a/java/com/android/dialer/widget/res/values-uz/strings.xml b/java/com/android/dialer/widget/res/values-uz/strings.xml index 434464aef55db07659a4694ad75dd07e2379538b..eb0e0adaef476032c4d9fc65d8c1eb799abb551e 100644 --- a/java/com/android/dialer/widget/res/values-uz/strings.xml +++ b/java/com/android/dialer/widget/res/values-uz/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Boshqa xabar yozing" "Yopish" + "Kontaktlar yo‘q" + "Kontakt qo‘shish" + "Ruxsat berish" + "Kontaktlar ro‘yxatini ko‘rish uchun ilovaga Kontaktlarga kirishga ruxsat bering." + "Kontaktlarni ochadigan ilova yo‘q" diff --git a/java/com/android/dialer/widget/res/values-vi/strings.xml b/java/com/android/dialer/widget/res/values-vi/strings.xml index 1a30f7c966fbe55f1880ecb6718ed68359c6890b..62e94b82e67c8a880b2b548db2f0b5f32c93c921 100644 --- a/java/com/android/dialer/widget/res/values-vi/strings.xml +++ b/java/com/android/dialer/widget/res/values-vi/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Viết tin nhắn tùy chỉnh" "Đóng" + "Bạn chưa có bất kỳ liên hệ nào" + "Thêm liên hệ" + "Bật" + "Để xem danh bạ của bạn, bật quyền đối với Danh bạ." + "Không có ứng dụng danh bạ" diff --git a/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml b/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml index 7999723938bd8c41aeaca21ab25f541ac4007531..063301ae05b565c3fcd4b65d130576497fe04dbc 100644 --- a/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml +++ b/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "自行撰写信息" "关闭" + "您还没有任何联系人" + "添加联系人" + "开启" + "要查看您的联系人,请开启“通讯录”权限。" + "没有可用的通讯录应用" diff --git a/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml b/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml index b0bfcc8d962efbcd31c5472dff86fce965a1cfae..e2e69b75b0b1c81e37470bdbe1b7c16ed4b1c2ac 100644 --- a/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml +++ b/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "撰寫自訂訊息" "關閉" + "您尚無任何聯絡人" + "新增聯絡人" + "開放" + "如要查看聯絡人,請開放「通訊錄」權限。" + "沒有可用的聯絡人應用程式" diff --git a/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml b/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml index b0bfcc8d962efbcd31c5472dff86fce965a1cfae..85768af8fba00cbd474f40b600ceebd2bf04ef8a 100644 --- a/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml +++ b/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "撰寫自訂訊息" "關閉" + "你還沒有任何聯絡人" + "新增聯絡人" + "開啟" + "如要查看你的聯絡人,請開啟「聯絡人」存取權限。" + "沒有可用的聯絡人應用程式" diff --git a/java/com/android/dialer/widget/res/values-zu/strings.xml b/java/com/android/dialer/widget/res/values-zu/strings.xml index 074aa582265329bc732d49e64d30b510be67443c..a3ba84a9a7deaba406a6a43a2986348143fa8420 100644 --- a/java/com/android/dialer/widget/res/values-zu/strings.xml +++ b/java/com/android/dialer/widget/res/values-zu/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Bhala umlayezo wangokwezifiso" "Vala" + "Awunabo oxhumana nabo okwamanje" + "Engeza oxhumana naye" + "Vula" + "Ukuze ubone oxhumana nabo, vula imvume yoxhumana nabo." + "Alukho uhlelo lokusebenza loxhumana nabo olutholakalayo" diff --git a/java/com/android/dialer/widget/res/values/colors.xml b/java/com/android/dialer/widget/res/values/colors.xml new file mode 100644 index 0000000000000000000000000000000000000000..c974609ef404f48bcacd9ce1831c5f0228e8787a --- /dev/null +++ b/java/com/android/dialer/widget/res/values/colors.xml @@ -0,0 +1,4 @@ + + + #b2b2b2 + \ No newline at end of file diff --git a/java/com/android/dialer/widget/res/values/dimens.xml b/java/com/android/dialer/widget/res/values/dimens.xml index 20393a8425d69e75c602ed1a2e87d9fe9d72e3ea..537ad7bd774d3fe5b2a1be7ef4276682cabd36f6 100644 --- a/java/com/android/dialer/widget/res/values/dimens.xml +++ b/java/com/android/dialer/widget/res/values/dimens.xml @@ -26,4 +26,9 @@ 14sp 12sp 4dp + 4dp + + + 20dp + 16sp \ No newline at end of file diff --git a/java/com/android/dialer/widget/res/values/strings.xml b/java/com/android/dialer/widget/res/values/strings.xml index a5829bb0b891069640662eaae360f60795c0f40b..d6ea2e7cd628b56736648b96475f439f8d20dc21 100644 --- a/java/com/android/dialer/widget/res/values/strings.xml +++ b/java/com/android/dialer/widget/res/values/strings.xml @@ -5,4 +5,19 @@ Close + + + You don\'t have any contacts yet + + + Add a contact + + + Turn on + + + To see your contacts, turn on the Contacts permission. + + + No contacts app available \ No newline at end of file diff --git a/java/com/android/dialershared/bubble/AndroidManifest.xml b/java/com/android/dialershared/bubble/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..1a94aafc1eb4ac99fa1d7de1efcaf7282fd999d9 --- /dev/null +++ b/java/com/android/dialershared/bubble/AndroidManifest.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/java/com/android/dialershared/bubble/Bubble.java b/java/com/android/dialershared/bubble/Bubble.java new file mode 100644 index 0000000000000000000000000000000000000000..3eb88aa22883b32514f0aab1f1571a7a1c70fb50 --- /dev/null +++ b/java/com/android/dialershared/bubble/Bubble.java @@ -0,0 +1,667 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.dialershared.bubble; + +import android.animation.Animator; +import android.animation.AnimatorSet; +import android.animation.ObjectAnimator; +import android.animation.PropertyValuesHolder; +import android.annotation.SuppressLint; +import android.app.PendingIntent.CanceledException; +import android.content.Context; +import android.content.Intent; +import android.content.res.ColorStateList; +import android.graphics.PixelFormat; +import android.graphics.drawable.RippleDrawable; +import android.net.Uri; +import android.os.Handler; +import android.provider.Settings; +import android.support.annotation.ColorInt; +import android.support.annotation.IntDef; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.annotation.VisibleForTesting; +import android.support.v4.graphics.ColorUtils; +import android.support.v4.os.BuildCompat; +import android.support.v4.view.animation.FastOutLinearInInterpolator; +import android.support.v4.view.animation.LinearOutSlowInInterpolator; +import android.transition.TransitionManager; +import android.transition.TransitionValues; +import android.view.ContextThemeWrapper; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewPropertyAnimator; +import android.view.ViewTreeObserver.OnPreDrawListener; +import android.view.WindowManager; +import android.view.WindowManager.LayoutParams; +import android.view.animation.AnticipateInterpolator; +import android.view.animation.OvershootInterpolator; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.ViewAnimator; +import com.android.dialershared.bubble.BubbleInfo.Action; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.util.List; + +/** + * Creates and manages a bubble window from information in a {@link BubbleInfo}. Before creating, be + * sure to check whether bubbles may be shown using {@link #canShowBubbles(Context)} and request + * permission if necessary ({@link #getRequestPermissionIntent(Context)} is provided for + * convenience) + */ +public class Bubble { + + // How long text should show after showText(CharSequence) is called + private static final int SHOW_TEXT_DURATION_MILLIS = 3000; + // How long the new window should show before destroying the old one during resize operations. + // This ensures the new window has had time to draw first. + private static final int WINDOW_REDRAW_DELAY_MILLIS = 50; + + private static Boolean canShowBubblesForTesting = null; + + private final Context context; + private final WindowManager windowManager; + + private LayoutParams windowParams; + + // Initialized in factory method + @SuppressWarnings("NullableProblems") + @NonNull + private BubbleInfo currentInfo; + + private boolean isShowing; + private boolean expanded; + private boolean textShowing; + private boolean hideAfterText; + + private final Handler handler = new Handler(); + + private ViewHolder viewHolder; + + @Retention(RetentionPolicy.SOURCE) + @IntDef({CollapseEnd.NOTHING, CollapseEnd.HIDE}) + private @interface CollapseEnd { + int NOTHING = 0; + int HIDE = 1; + } + + /** + * Determines whether bubbles can be shown based on permissions obtained. This should be checked + * before attempting to create a Bubble. + * + * @return true iff bubbles are able to be shown. + * @see Settings#canDrawOverlays(Context) + */ + public static boolean canShowBubbles(@NonNull Context context) { + return canShowBubblesForTesting != null + ? canShowBubblesForTesting + : Settings.canDrawOverlays(context); + } + + @VisibleForTesting(otherwise = VisibleForTesting.NONE) + public static void setCanShowBubblesForTesting(boolean canShowBubbles) { + canShowBubblesForTesting = canShowBubbles; + } + + /** Returns an Intent to request permission to show overlays */ + @NonNull + public static Intent getRequestPermissionIntent(@NonNull Context context) { + return new Intent( + Settings.ACTION_MANAGE_OVERLAY_PERMISSION, + new Uri.Builder().scheme("package").fragment(context.getPackageName()).build()); + } + + /** Creates instances of Bubble. The default implementation just calls the constructor. */ + @VisibleForTesting + public interface BubbleFactory { + Bubble createBubble(@NonNull Context context); + } + + private static BubbleFactory bubbleFactory = Bubble::new; + + public static Bubble createBubble(@NonNull Context context, @NonNull BubbleInfo info) { + Bubble bubble = bubbleFactory.createBubble(context); + bubble.setBubbleInfo(info); + return bubble; + } + + @VisibleForTesting + public static void setBubbleFactory(@NonNull BubbleFactory bubbleFactory) { + Bubble.bubbleFactory = bubbleFactory; + } + + @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) + Bubble(@NonNull Context context) { + context = new ContextThemeWrapper(context, R.style.Theme_AppCompat); + this.context = context; + windowManager = context.getSystemService(WindowManager.class); + + viewHolder = new ViewHolder(context); + } + + /** + * Make the bubble visible. Will show a short entrance animation as it enters. If the bubble is + * already showing this method does nothing. + */ + public void show() { + if (isShowing) { + return; + } + + hideAfterText = false; + + if (windowParams == null) { + // Apps targeting O+ must use TYPE_APPLICATION_OVERLAY, which is not available prior to O. + @SuppressWarnings("deprecation") + @SuppressLint("InlinedApi") + int type = + BuildCompat.isAtLeastO() + ? LayoutParams.TYPE_APPLICATION_OVERLAY + : LayoutParams.TYPE_PHONE; + + windowParams = + new LayoutParams( + type, + LayoutParams.FLAG_NOT_TOUCH_MODAL + | LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH + | LayoutParams.FLAG_NOT_FOCUSABLE, + PixelFormat.TRANSLUCENT); + windowParams.gravity = Gravity.TOP | Gravity.LEFT; + windowParams.x = + context.getResources().getDimensionPixelOffset(R.dimen.bubble_initial_offset_x); + windowParams.y = + context.getResources().getDimensionPixelOffset(R.dimen.bubble_initial_offset_y); + windowParams.height = LayoutParams.WRAP_CONTENT; + windowParams.width = LayoutParams.WRAP_CONTENT; + } + + windowManager.addView(viewHolder.getRoot(), windowParams); + ObjectAnimator showAnimator = + ObjectAnimator.ofPropertyValuesHolder( + viewHolder.getPrimaryButton(), + PropertyValuesHolder.ofFloat(View.SCALE_X, 0, 1), + PropertyValuesHolder.ofFloat(View.SCALE_Y, 0, 1)); + showAnimator.setInterpolator(new OvershootInterpolator()); + showAnimator.start(); + isShowing = true; + } + + /** + * Hide the button if visible. Will run a short exit animation before hiding. If the bubble is + * currently showing text, will hide after the text is done displaying. If the bubble is not + * visible this method does nothing. + */ + public void hide() { + if (!isShowing) { + return; + } + + if (textShowing) { + hideAfterText = true; + return; + } + + if (expanded) { + startCollapse(CollapseEnd.HIDE); + return; + } + + viewHolder + .getPrimaryButton() + .animate() + .setInterpolator(new AnticipateInterpolator()) + .scaleX(0) + .scaleY(0) + .withEndAction( + () -> { + windowManager.removeView(viewHolder.getRoot()); + isShowing = false; + }) + .start(); + } + + /** Returns whether the bubble is currently visible */ + public boolean isShowing() { + return isShowing; + } + + /** + * Set the info for this Bubble to display + * + * @param bubbleInfo the BubbleInfo to display in this Bubble. + */ + public void setBubbleInfo(@NonNull BubbleInfo bubbleInfo) { + currentInfo = bubbleInfo; + update(); + } + + /** + * Update the state and behavior of actions. + * + * @param actions the new state of the bubble's actions + */ + public void updateActions(@NonNull List actions) { + currentInfo = BubbleInfo.from(currentInfo).setActions(actions).build(); + updateButtonStates(); + } + + /** Returns the currently displayed BubbleInfo */ + public BubbleInfo getBubbleInfo() { + return currentInfo; + } + + /** + * Display text in the main bubble. The bubble's drawer is not expandable while text is showing, + * and the drawer will be closed if already open. + * + * @param text the text to display to the user + */ + public void showText(@NonNull CharSequence text) { + textShowing = true; + if (expanded) { + startCollapse(CollapseEnd.NOTHING); + doShowText(text); + } else { + // Need to transition from old bounds to new bounds manually + ChangeOnScreenBounds transition = new ChangeOnScreenBounds(); + // Prepare and capture start values + TransitionValues startValues = new TransitionValues(); + startValues.view = viewHolder.getPrimaryButton(); + transition.addTarget(startValues.view); + transition.captureStartValues(startValues); + + doResize( + () -> { + doShowText(text); + // Hide the text so we can animate it in + viewHolder.getPrimaryText().setAlpha(0); + + ViewAnimator primaryButton = viewHolder.getPrimaryButton(); + // Cancel the automatic transition scheduled in doShowText + TransitionManager.endTransitions((ViewGroup) primaryButton.getParent()); + primaryButton + .getViewTreeObserver() + .addOnPreDrawListener( + new OnPreDrawListener() { + @Override + public boolean onPreDraw() { + primaryButton.getViewTreeObserver().removeOnPreDrawListener(this); + + // Prepare and capture end values + TransitionValues endValues = new TransitionValues(); + endValues.view = primaryButton; + transition.addTarget(endValues.view); + transition.captureEndValues(endValues); + + // animate the primary button bounds change + Animator bounds = + transition.createAnimator(primaryButton, startValues, endValues); + + // Animate the text in + Animator alpha = + ObjectAnimator.ofFloat(viewHolder.getPrimaryText(), View.ALPHA, 1f); + + AnimatorSet set = new AnimatorSet(); + set.play(bounds).before(alpha); + set.start(); + return false; + } + }); + }); + } + handler.removeCallbacks(null); + handler.postDelayed( + () -> { + textShowing = false; + if (hideAfterText) { + hide(); + } else { + doResize( + () -> viewHolder.getPrimaryButton().setDisplayedChild(ViewHolder.CHILD_INDEX_ICON)); + } + }, + SHOW_TEXT_DURATION_MILLIS); + } + + void onMoveStart() { + startCollapse(CollapseEnd.NOTHING); + viewHolder + .getPrimaryButton() + .animate() + .translationZ( + context.getResources().getDimensionPixelOffset(R.dimen.bubble_move_elevation_change)); + } + + void onMoveFinish() { + viewHolder.getPrimaryButton().animate().translationZ(0); + } + + void primaryButtonClick() { + if (expanded || textShowing || currentInfo.getActions().isEmpty()) { + try { + currentInfo.getPrimaryAction().send(); + } catch (CanceledException e) { + throw new RuntimeException(e); + } + return; + } + + boolean onRight = (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT; + doResize( + () -> { + onLeftRightSwitch(onRight); + viewHolder.getExpandedView().setVisibility(View.VISIBLE); + }); + View expandedView = viewHolder.getExpandedView(); + expandedView + .getViewTreeObserver() + .addOnPreDrawListener( + new OnPreDrawListener() { + @Override + public boolean onPreDraw() { + expandedView.getViewTreeObserver().removeOnPreDrawListener(this); + expandedView.setTranslationX( + onRight ? expandedView.getWidth() : -expandedView.getWidth()); + expandedView + .animate() + .setInterpolator(new LinearOutSlowInInterpolator()) + .translationX(0); + return false; + } + }); + setFocused(true); + expanded = true; + } + + void onLeftRightSwitch(boolean onRight) { + viewHolder + .getRoot() + .setLayoutDirection(onRight ? View.LAYOUT_DIRECTION_RTL : View.LAYOUT_DIRECTION_LTR); + View primaryContainer = viewHolder.getRoot().findViewById(R.id.bubble_primary_container); + ViewGroup.LayoutParams layoutParams = primaryContainer.getLayoutParams(); + ((FrameLayout.LayoutParams) layoutParams).gravity = onRight ? Gravity.RIGHT : Gravity.LEFT; + primaryContainer.setLayoutParams(layoutParams); + + viewHolder + .getExpandedView() + .setBackgroundResource( + onRight + ? R.drawable.bubble_background_pill_rtl + : R.drawable.bubble_background_pill_ltr); + } + + LayoutParams getWindowParams() { + return windowParams; + } + + View getRootView() { + return viewHolder.getRoot(); + } + + private void update() { + RippleDrawable backgroundRipple = + (RippleDrawable) + context.getResources().getDrawable(R.drawable.bubble_ripple_circle, context.getTheme()); + int primaryTint = + ColorUtils.compositeColors( + context.getColor(R.color.bubble_primary_background_darken), + currentInfo.getPrimaryColor()); + backgroundRipple.getDrawable(0).setTint(primaryTint); + viewHolder.getPrimaryButton().setBackground(backgroundRipple); + + setBackgroundDrawable(viewHolder.getFirstButton(), primaryTint); + setBackgroundDrawable(viewHolder.getSecondButton(), primaryTint); + setBackgroundDrawable(viewHolder.getThirdButton(), primaryTint); + + int numButtons = currentInfo.getActions().size(); + viewHolder.getThirdButton().setVisibility(numButtons < 3 ? View.GONE : View.VISIBLE); + viewHolder.getSecondButton().setVisibility(numButtons < 2 ? View.GONE : View.VISIBLE); + + viewHolder.getPrimaryIcon().setImageIcon(currentInfo.getPrimaryIcon()); + + viewHolder + .getExpandedView() + .setBackgroundTintList(ColorStateList.valueOf(currentInfo.getPrimaryColor())); + + updateButtonStates(); + } + + private void setBackgroundDrawable(CheckableImageButton view, @ColorInt int color) { + RippleDrawable itemRipple = + (RippleDrawable) + context + .getResources() + .getDrawable(R.drawable.bubble_ripple_checkable_circle, context.getTheme()); + itemRipple.getDrawable(0).setTint(color); + view.setBackground(itemRipple); + } + + private void updateButtonStates() { + int numButtons = currentInfo.getActions().size(); + + if (numButtons >= 1) { + configureButton(currentInfo.getActions().get(0), viewHolder.getFirstButton()); + if (numButtons >= 2) { + configureButton(currentInfo.getActions().get(1), viewHolder.getSecondButton()); + if (numButtons >= 3) { + configureButton(currentInfo.getActions().get(2), viewHolder.getThirdButton()); + } + } + } + } + + private void doShowText(@NonNull CharSequence text) { + TransitionManager.beginDelayedTransition((ViewGroup) viewHolder.getPrimaryButton().getParent()); + viewHolder.getPrimaryText().setText(text); + viewHolder.getPrimaryButton().setDisplayedChild(ViewHolder.CHILD_INDEX_TEXT); + } + + private void configureButton(Action action, CheckableImageButton button) { + action + .getIcon() + .loadDrawableAsync( + context, + d -> { + button.setImageIcon(action.getIcon()); + button.setContentDescription(action.getName()); + button.setChecked(action.isChecked()); + button.setEnabled(action.isEnabled()); + }, + handler); + button.setOnClickListener(v -> doAction(action)); + } + + private void doAction(Action action) { + try { + action.getAction().send(); + } catch (CanceledException e) { + throw new RuntimeException(e); + } + } + + private void doResize(@Nullable Runnable operation) { + // If we're resizing on the right side of the screen, there is an implicit move operation + // necessary. The WindowManager does not sync the move and resize operations, so serious jank + // would occur. To fix this, instead of resizing the window, we create a new one and destroy + // the old one. There is a short delay before destroying the old view to ensure the new one has + // had time to draw. + boolean onRight = (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT; + ViewHolder oldViewHolder = viewHolder; + if (onRight) { + viewHolder = new ViewHolder(oldViewHolder.getRoot().getContext()); + update(); + viewHolder + .getPrimaryButton() + .setDisplayedChild(oldViewHolder.getPrimaryButton().getDisplayedChild()); + viewHolder.getPrimaryText().setText(oldViewHolder.getPrimaryText().getText()); + } + + if (operation != null) { + operation.run(); + } + + if (onRight) { + swapViewHolders(oldViewHolder); + } + } + + private void swapViewHolders(ViewHolder oldViewHolder) { + ViewGroup root = viewHolder.getRoot(); + windowManager.addView(root, windowParams); + root.getViewTreeObserver() + .addOnPreDrawListener( + new OnPreDrawListener() { + @Override + public boolean onPreDraw() { + root.getViewTreeObserver().removeOnPreDrawListener(this); + // Wait a bit before removing the old view; make sure the new one has drawn over it. + handler.postDelayed( + () -> windowManager.removeView(oldViewHolder.getRoot()), + WINDOW_REDRAW_DELAY_MILLIS); + return true; + } + }); + } + + private ViewPropertyAnimator startCollapse(@CollapseEnd int collapseEndAction) { + setFocused(false); + boolean onRight = (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT; + View expandedView = viewHolder.getExpandedView(); + return expandedView + .animate() + .translationX(onRight ? expandedView.getWidth() : -expandedView.getWidth()) + .setInterpolator(new FastOutLinearInInterpolator()) + .withEndAction( + () -> { + expanded = false; + if (collapseEndAction == CollapseEnd.HIDE) { + hide(); + } else if (!textShowing) { + // Don't swap the window while the user is moving it, even if we're on the right. + // The movement will help hide the jank of the resize. + boolean swapWindow = onRight && !viewHolder.isMoving(); + if (swapWindow) { + // We don't actually need to set the drawer to GONE since in the new window it + // will already be GONE. Just do the resize operation. + doResize(null); + } else { + expandedView.setVisibility(View.GONE); + } + } + }); + } + + private void setFocused(boolean focused) { + if (focused) { + windowParams.flags &= ~LayoutParams.FLAG_NOT_FOCUSABLE; + } else { + windowParams.flags |= LayoutParams.FLAG_NOT_FOCUSABLE; + } + windowManager.updateViewLayout(getRootView(), windowParams); + } + + private class ViewHolder { + + public static final int CHILD_INDEX_ICON = 0; + public static final int CHILD_INDEX_TEXT = 1; + + private final MoveHandler moveHandler; + private final WindowRoot root; + private final ViewAnimator primaryButton; + private final ImageView primaryIcon; + private final TextView primaryText; + + private final CheckableImageButton firstButton; + private final CheckableImageButton secondButton; + private final CheckableImageButton thirdButton; + private final View expandedView; + + public ViewHolder(Context context) { + // Window root is not in the layout file so that the inflater has a view to inflate into + this.root = new WindowRoot(context); + LayoutInflater inflater = LayoutInflater.from(root.getContext()); + View contentView = inflater.inflate(R.layout.bubble_base, root, true); + expandedView = contentView.findViewById(R.id.bubble_expanded_layout); + primaryButton = contentView.findViewById(R.id.bubble_button_primary); + primaryIcon = contentView.findViewById(R.id.bubble_icon_primary); + primaryText = contentView.findViewById(R.id.bubble_text); + + firstButton = contentView.findViewById(R.id.bubble_icon_first); + secondButton = contentView.findViewById(R.id.bubble_icon_second); + thirdButton = contentView.findViewById(R.id.bubble_icon_third); + + root.setOnBackPressedListener( + () -> { + if (isShowing && expanded) { + startCollapse(CollapseEnd.NOTHING); + return true; + } + return false; + }); + root.setOnTouchListener( + (v, event) -> { + if (expanded && event.getActionMasked() == MotionEvent.ACTION_OUTSIDE) { + startCollapse(CollapseEnd.NOTHING); + return true; + } + return false; + }); + moveHandler = new MoveHandler(primaryButton, Bubble.this); + } + + public ViewGroup getRoot() { + return root; + } + + public ViewAnimator getPrimaryButton() { + return primaryButton; + } + + public ImageView getPrimaryIcon() { + return primaryIcon; + } + + public TextView getPrimaryText() { + return primaryText; + } + + public CheckableImageButton getFirstButton() { + return firstButton; + } + + public CheckableImageButton getSecondButton() { + return secondButton; + } + + public CheckableImageButton getThirdButton() { + return thirdButton; + } + + public View getExpandedView() { + return expandedView; + } + + public boolean isMoving() { + return moveHandler.isMoving(); + } + } +} diff --git a/java/com/android/dialershared/bubble/BubbleInfo.java b/java/com/android/dialershared/bubble/BubbleInfo.java new file mode 100644 index 0000000000000000000000000000000000000000..52417ae7b1d02d52da495cc479a9fa63e7698ae5 --- /dev/null +++ b/java/com/android/dialershared/bubble/BubbleInfo.java @@ -0,0 +1,116 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.dialershared.bubble; + +import android.app.PendingIntent; +import android.graphics.drawable.Icon; +import android.support.annotation.ColorInt; +import android.support.annotation.NonNull; +import com.google.auto.value.AutoValue; +import java.util.Collections; +import java.util.List; + +/** Info for displaying a {@link Bubble} */ +@AutoValue +public abstract class BubbleInfo { + @ColorInt + public abstract int getPrimaryColor(); + + @NonNull + public abstract Icon getPrimaryIcon(); + + @NonNull + public abstract PendingIntent getPrimaryAction(); + + @NonNull + public abstract List getActions(); + + public static Builder builder() { + return new AutoValue_BubbleInfo.Builder().setActions(Collections.emptyList()); + } + + public static Builder from(@NonNull BubbleInfo bubbleInfo) { + return builder() + .setPrimaryAction(bubbleInfo.getPrimaryAction()) + .setPrimaryColor(bubbleInfo.getPrimaryColor()) + .setPrimaryIcon(bubbleInfo.getPrimaryIcon()) + .setActions(bubbleInfo.getActions()); + } + + /** Builder for {@link BubbleInfo} */ + @AutoValue.Builder + public abstract static class Builder { + + public abstract Builder setPrimaryColor(@ColorInt int primaryColor); + + public abstract Builder setPrimaryIcon(@NonNull Icon primaryIcon); + + public abstract Builder setPrimaryAction(@NonNull PendingIntent primaryAction); + + public abstract Builder setActions(List actions); + + public abstract BubbleInfo build(); + } + + /** Represents actions to be shown in the bubble when expanded */ + @AutoValue + public abstract static class Action { + + @NonNull + public abstract Icon getIcon(); + + @NonNull + public abstract CharSequence getName(); + + @NonNull + public abstract PendingIntent getAction(); + + public abstract boolean isEnabled(); + + public abstract boolean isChecked(); + + public static Builder builder() { + return new AutoValue_BubbleInfo_Action.Builder().setEnabled(true).setChecked(false); + } + + public static Builder from(@NonNull Action action) { + return builder() + .setAction(action.getAction()) + .setChecked(action.isChecked()) + .setEnabled(action.isEnabled()) + .setName(action.getName()) + .setIcon(action.getIcon()); + } + + /** Builder for {@link Action} */ + @AutoValue.Builder + public abstract static class Builder { + + public abstract Builder setIcon(@NonNull Icon icon); + + public abstract Builder setName(@NonNull CharSequence name); + + public abstract Builder setAction(@NonNull PendingIntent action); + + public abstract Builder setEnabled(boolean enabled); + + public abstract Builder setChecked(boolean checked); + + public abstract Action build(); + } + } +} diff --git a/java/com/android/dialershared/bubble/ChangeOnScreenBounds.java b/java/com/android/dialershared/bubble/ChangeOnScreenBounds.java new file mode 100644 index 0000000000000000000000000000000000000000..4da6a3561b39b96a634ccbf254761a5f00a604ae --- /dev/null +++ b/java/com/android/dialershared/bubble/ChangeOnScreenBounds.java @@ -0,0 +1,166 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.dialershared.bubble; + +import android.animation.Animator; +import android.animation.AnimatorSet; +import android.animation.ObjectAnimator; +import android.graphics.Path; +import android.graphics.PointF; +import android.graphics.Rect; +import android.transition.Transition; +import android.transition.TransitionValues; +import android.util.Property; +import android.view.View; +import android.view.ViewGroup; + +/** Similar to {@link android.transition.ChangeBounds ChangeBounds} but works across windows */ +public class ChangeOnScreenBounds extends Transition { + + private static final String PROPNAME_BOUNDS = "bubble:changeScreenBounds:bounds"; + private static final String PROPNAME_SCREEN_X = "bubble:changeScreenBounds:screenX"; + private static final String PROPNAME_SCREEN_Y = "bubble:changeScreenBounds:screenY"; + + private static final Property TOP_LEFT_PROPERTY = + new Property(PointF.class, "topLeft") { + @Override + public void set(ViewBounds viewBounds, PointF topLeft) { + viewBounds.setTopLeft(topLeft); + } + + @Override + public PointF get(ViewBounds viewBounds) { + return null; + } + }; + + private static final Property BOTTOM_RIGHT_PROPERTY = + new Property(PointF.class, "bottomRight") { + @Override + public void set(ViewBounds viewBounds, PointF bottomRight) { + viewBounds.setBottomRight(bottomRight); + } + + @Override + public PointF get(ViewBounds viewBounds) { + return null; + } + }; + private final int[] tempLocation = new int[2]; + + @Override + public void captureStartValues(TransitionValues transitionValues) { + captureValues(transitionValues); + } + + @Override + public void captureEndValues(TransitionValues transitionValues) { + captureValues(transitionValues); + } + + private void captureValues(TransitionValues values) { + View view = values.view; + + if (view.isLaidOut() || view.getWidth() != 0 || view.getHeight() != 0) { + values.values.put( + PROPNAME_BOUNDS, + new Rect(view.getLeft(), view.getTop(), view.getRight(), view.getBottom())); + values.view.getLocationOnScreen(tempLocation); + values.values.put(PROPNAME_SCREEN_X, tempLocation[0]); + values.values.put(PROPNAME_SCREEN_Y, tempLocation[1]); + } + } + + @Override + public Animator createAnimator( + ViewGroup sceneRoot, TransitionValues startValues, TransitionValues endValues) { + Rect startBounds = (Rect) startValues.values.get(PROPNAME_BOUNDS); + + // Offset the startBounds by the difference in screen position + int startScreenX = (Integer) startValues.values.get(PROPNAME_SCREEN_X); + int startScreenY = (Integer) startValues.values.get(PROPNAME_SCREEN_Y); + int endScreenX = (Integer) endValues.values.get(PROPNAME_SCREEN_X); + int endScreenY = (Integer) endValues.values.get(PROPNAME_SCREEN_Y); + startBounds.offset(startScreenX - endScreenX, startScreenY - endScreenY); + + Rect endBounds = (Rect) endValues.values.get(PROPNAME_BOUNDS); + final int startLeft = startBounds.left; + final int endLeft = endBounds.left; + final int startTop = startBounds.top; + final int endTop = endBounds.top; + final int startRight = startBounds.right; + final int endRight = endBounds.right; + final int startBottom = startBounds.bottom; + final int endBottom = endBounds.bottom; + ViewBounds viewBounds = new ViewBounds(endValues.view); + viewBounds.setTopLeft(new PointF(startLeft, startTop)); + viewBounds.setBottomRight(new PointF(startRight, startBottom)); + + // Animate the top left and bottom right corners along a path + Path topLeftPath = getPathMotion().getPath(startLeft, startTop, endLeft, endTop); + ObjectAnimator topLeftAnimator = + ObjectAnimator.ofObject(viewBounds, TOP_LEFT_PROPERTY, null, topLeftPath); + + Path bottomRightPath = getPathMotion().getPath(startRight, startBottom, endRight, endBottom); + ObjectAnimator bottomRightAnimator = + ObjectAnimator.ofObject(viewBounds, BOTTOM_RIGHT_PROPERTY, null, bottomRightPath); + AnimatorSet set = new AnimatorSet(); + set.playTogether(topLeftAnimator, bottomRightAnimator); + return set; + } + + private static class ViewBounds { + private int left; + private int top; + private int right; + private int bottom; + private final View view; + private int topLeftCalls; + private int bottomRightCalls; + + public ViewBounds(View view) { + this.view = view; + } + + public void setTopLeft(PointF topLeft) { + left = Math.round(topLeft.x); + top = Math.round(topLeft.y); + topLeftCalls++; + if (topLeftCalls == bottomRightCalls) { + updateLeftTopRightBottom(); + } + } + + public void setBottomRight(PointF bottomRight) { + right = Math.round(bottomRight.x); + bottom = Math.round(bottomRight.y); + bottomRightCalls++; + if (topLeftCalls == bottomRightCalls) { + updateLeftTopRightBottom(); + } + } + + private void updateLeftTopRightBottom() { + view.setLeft(left); + view.setTop(top); + view.setRight(right); + view.setBottom(bottom); + topLeftCalls = 0; + bottomRightCalls = 0; + } + } +} diff --git a/java/com/android/dialershared/bubble/CheckableImageButton.java b/java/com/android/dialershared/bubble/CheckableImageButton.java new file mode 100644 index 0000000000000000000000000000000000000000..7a5a432a6d5ee70af593b30cdad905bd3368c42b --- /dev/null +++ b/java/com/android/dialershared/bubble/CheckableImageButton.java @@ -0,0 +1,101 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.dialershared.bubble; + +import android.content.Context; +import android.support.v4.view.AccessibilityDelegateCompat; +import android.support.v4.view.ViewCompat; +import android.support.v4.view.accessibility.AccessibilityEventCompat; +import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat; +import android.support.v7.widget.AppCompatImageButton; +import android.util.AttributeSet; +import android.view.View; +import android.view.accessibility.AccessibilityEvent; +import android.widget.Checkable; + +/** + * An {@link android.widget.ImageButton ImageButton} that implements {@link Checkable} and + * propagates the checkable state + */ +public class CheckableImageButton extends AppCompatImageButton implements Checkable { + + // Copied without modification from AppCompat library + + private static final int[] DRAWABLE_STATE_CHECKED = new int[] {android.R.attr.state_checked}; + + private boolean mChecked; + + public CheckableImageButton(Context context) { + this(context, null); + } + + public CheckableImageButton(Context context, AttributeSet attrs) { + this(context, attrs, android.R.attr.imageButtonStyle); + } + + public CheckableImageButton(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + + ViewCompat.setAccessibilityDelegate( + this, + new AccessibilityDelegateCompat() { + @Override + public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) { + super.onInitializeAccessibilityEvent(host, event); + event.setChecked(isChecked()); + } + + @Override + public void onInitializeAccessibilityNodeInfo( + View host, AccessibilityNodeInfoCompat info) { + super.onInitializeAccessibilityNodeInfo(host, info); + info.setCheckable(true); + info.setChecked(isChecked()); + } + }); + } + + @Override + public void setChecked(boolean checked) { + if (mChecked != checked) { + mChecked = checked; + refreshDrawableState(); + sendAccessibilityEvent(AccessibilityEventCompat.TYPE_WINDOW_CONTENT_CHANGED); + } + } + + @Override + public boolean isChecked() { + return mChecked; + } + + @Override + public void toggle() { + setChecked(!mChecked); + } + + @Override + public int[] onCreateDrawableState(int extraSpace) { + if (mChecked) { + return mergeDrawableStates( + super.onCreateDrawableState(extraSpace + DRAWABLE_STATE_CHECKED.length), + DRAWABLE_STATE_CHECKED); + } else { + return super.onCreateDrawableState(extraSpace); + } + } +} diff --git a/java/com/android/dialershared/bubble/MoveHandler.java b/java/com/android/dialershared/bubble/MoveHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..8a21cd7e1f0c50a5702b26e808b8dbb4a1f3e6f1 --- /dev/null +++ b/java/com/android/dialershared/bubble/MoveHandler.java @@ -0,0 +1,250 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.dialershared.bubble; + +import android.content.Context; +import android.graphics.Point; +import android.support.animation.FloatPropertyCompat; +import android.support.animation.SpringAnimation; +import android.support.animation.SpringForce; +import android.support.annotation.NonNull; +import android.support.v4.math.MathUtils; +import android.view.Gravity; +import android.view.MotionEvent; +import android.view.VelocityTracker; +import android.view.View; +import android.view.View.OnTouchListener; +import android.view.ViewConfiguration; +import android.view.WindowManager; +import android.view.WindowManager.LayoutParams; +import android.widget.Scroller; + +/** Handles touches and manages moving the bubble in response */ +class MoveHandler implements OnTouchListener { + + // Amount the ViewConfiguration's minFlingVelocity will be scaled by for our own minVelocity + private static final int MIN_FLING_VELOCITY_FACTOR = 8; + // The friction multiplier to control how slippery the bubble is when flung + private static final float SCROLL_FRICTION_MULTIPLIER = 8f; + + private final Context context; + private final WindowManager windowManager; + private final Bubble bubble; + private final int minX; + private final int minY; + private final int maxX; + private final int maxY; + private final int bubbleSize; + private final int shadowPaddingSize; + private final float touchSlopSquared; + + private boolean isMoving; + private float firstX; + private float firstY; + + private SpringAnimation moveXAnimation; + private SpringAnimation moveYAnimation; + private VelocityTracker velocityTracker; + private Scroller scroller; + + // Handles the left/right gravity conversion and centering + private final FloatPropertyCompat xProperty = + new FloatPropertyCompat("xProperty") { + @Override + public float getValue(LayoutParams windowParams) { + int realX = windowParams.x; + realX = realX + bubbleSize / 2; + realX = realX + shadowPaddingSize; + if (relativeToRight(windowParams)) { + int displayWidth = context.getResources().getDisplayMetrics().widthPixels; + realX = displayWidth - realX; + } + return MathUtils.clamp(realX, minX, maxX); + } + + @Override + public void setValue(LayoutParams windowParams, float value) { + int displayWidth = context.getResources().getDisplayMetrics().widthPixels; + boolean onRight = value > displayWidth / 2; + int centeringOffset = bubbleSize / 2 + shadowPaddingSize; + windowParams.x = + (int) (onRight ? (displayWidth - value - centeringOffset) : value - centeringOffset); + windowParams.gravity = Gravity.TOP | (onRight ? Gravity.RIGHT : Gravity.LEFT); + if (bubble.isShowing()) { + windowManager.updateViewLayout(bubble.getRootView(), windowParams); + } + } + }; + + private final FloatPropertyCompat yProperty = + new FloatPropertyCompat("yProperty") { + @Override + public float getValue(LayoutParams object) { + return MathUtils.clamp(object.y + bubbleSize + shadowPaddingSize, minY, maxY); + } + + @Override + public void setValue(LayoutParams object, float value) { + object.y = (int) value - bubbleSize - shadowPaddingSize; + if (bubble.isShowing()) { + windowManager.updateViewLayout(bubble.getRootView(), object); + } + } + }; + + public MoveHandler(@NonNull View targetView, @NonNull Bubble bubble) { + this.bubble = bubble; + context = targetView.getContext(); + windowManager = context.getSystemService(WindowManager.class); + + bubbleSize = context.getResources().getDimensionPixelSize(R.dimen.bubble_size); + shadowPaddingSize = + context.getResources().getDimensionPixelOffset(R.dimen.bubble_shadow_padding_size); + minX = + context.getResources().getDimensionPixelOffset(R.dimen.bubble_safe_margin_x) + + bubbleSize / 2; + minY = + context.getResources().getDimensionPixelOffset(R.dimen.bubble_safe_margin_y) + + bubbleSize / 2; + maxX = context.getResources().getDisplayMetrics().widthPixels - minX; + maxY = context.getResources().getDisplayMetrics().heightPixels - minY; + + // Squared because it will be compared against the square of the touch delta. This is more + // efficient than needing to take a square root. + touchSlopSquared = (float) Math.pow(ViewConfiguration.get(context).getScaledTouchSlop(), 2); + + targetView.setOnTouchListener(this); + } + + public boolean isMoving() { + return isMoving; + } + + @Override + public boolean onTouch(View v, MotionEvent event) { + float eventX = event.getRawX(); + float eventY = event.getRawY(); + switch (event.getActionMasked()) { + case MotionEvent.ACTION_DOWN: + firstX = eventX; + firstY = eventY; + velocityTracker = VelocityTracker.obtain(); + break; + case MotionEvent.ACTION_MOVE: + if (isMoving || hasExceededTouchSlop(event)) { + if (!isMoving) { + isMoving = true; + bubble.onMoveStart(); + } + + if (moveXAnimation == null) { + moveXAnimation = new SpringAnimation(bubble.getWindowParams(), xProperty); + moveXAnimation.setSpring(new SpringForce()); + moveXAnimation.getSpring().setDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY); + } + if (moveYAnimation == null) { + moveYAnimation = new SpringAnimation(bubble.getWindowParams(), yProperty); + moveYAnimation.setSpring(new SpringForce()); + moveYAnimation.getSpring().setDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY); + } + + moveXAnimation.animateToFinalPosition(MathUtils.clamp(eventX, minX, maxX)); + moveYAnimation.animateToFinalPosition(MathUtils.clamp(eventY, minY, maxY)); + } + + velocityTracker.addMovement(event); + break; + case MotionEvent.ACTION_UP: + if (isMoving) { + ViewConfiguration viewConfiguration = ViewConfiguration.get(context); + velocityTracker.computeCurrentVelocity( + 1000, viewConfiguration.getScaledMaximumFlingVelocity()); + float xVelocity = velocityTracker.getXVelocity(); + float yVelocity = velocityTracker.getYVelocity(); + boolean isFling = isFling(xVelocity, yVelocity); + + if (isFling) { + Point target = + findTarget( + xVelocity, + yVelocity, + (int) xProperty.getValue(bubble.getWindowParams()), + (int) yProperty.getValue(bubble.getWindowParams())); + + moveXAnimation.animateToFinalPosition(target.x); + moveYAnimation.animateToFinalPosition(target.y); + } else { + snapX(); + } + + bubble.onMoveFinish(); + } else { + v.performClick(); + bubble.primaryButtonClick(); + } + isMoving = false; + break; + } + return true; + } + + private Point findTarget(float xVelocity, float yVelocity, int startX, int startY) { + if (scroller == null) { + scroller = new Scroller(context); + scroller.setFriction(ViewConfiguration.getScrollFriction() * SCROLL_FRICTION_MULTIPLIER); + } + + // Find where a fling would end vertically + scroller.fling(startX, startY, (int) xVelocity, (int) yVelocity, minX, maxX, minY, maxY); + int targetY = scroller.getFinalY(); + scroller.abortAnimation(); + + // If the x component of the velocity is above the minimum fling velocity, use velocity to + // determine edge. Otherwise use its starting position + boolean pullRight = isFling(xVelocity, 0) ? xVelocity > 0 : isOnRightHalf(startX); + return new Point(pullRight ? maxX : minX, targetY); + } + + private boolean isFling(float xVelocity, float yVelocity) { + int minFlingVelocity = + ViewConfiguration.get(context).getScaledMinimumFlingVelocity() * MIN_FLING_VELOCITY_FACTOR; + return getMagnitudeSquared(xVelocity, yVelocity) > minFlingVelocity * minFlingVelocity; + } + + private boolean isOnRightHalf(float currentX) { + return currentX > (minX + maxX) / 2; + } + + private void snapX() { + // Check if x value is closer to min or max + boolean pullRight = isOnRightHalf(xProperty.getValue(bubble.getWindowParams())); + moveXAnimation.animateToFinalPosition(pullRight ? maxX : minX); + } + + private boolean relativeToRight(LayoutParams windowParams) { + return (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT; + } + + private boolean hasExceededTouchSlop(MotionEvent event) { + return getMagnitudeSquared(event.getRawX() - firstX, event.getRawY() - firstY) + > touchSlopSquared; + } + + private float getMagnitudeSquared(float deltaX, float deltaY) { + return deltaX * deltaX + deltaY * deltaY; + } +} diff --git a/java/com/android/dialershared/bubble/WindowRoot.java b/java/com/android/dialershared/bubble/WindowRoot.java new file mode 100644 index 0000000000000000000000000000000000000000..2c176662e4231a87e3156b2b97d404dd9820918f --- /dev/null +++ b/java/com/android/dialershared/bubble/WindowRoot.java @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.dialershared.bubble; + +import android.content.Context; +import android.support.annotation.NonNull; +import android.view.KeyEvent; +import android.widget.FrameLayout; + +/** + * ViewGroup that handles some overlay window concerns. Allows back button events to be listened for + * via an interface. + */ +public class WindowRoot extends FrameLayout { + + private OnBackPressedListener backPressedListener; + + /** Callback for when the back button is pressed while this window is in focus */ + public interface OnBackPressedListener { + boolean onBackPressed(); + } + + public WindowRoot(@NonNull Context context) { + super(context); + } + + public void setOnBackPressedListener(OnBackPressedListener listener) { + backPressedListener = listener; + } + + @Override + public boolean dispatchKeyEvent(KeyEvent event) { + if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && backPressedListener != null) { + if (event.getAction() == KeyEvent.ACTION_UP) { + return backPressedListener.onBackPressed(); + } + return true; + } + return super.dispatchKeyEvent(event); + } +} diff --git a/java/com/android/contacts/common/res/drawable/ic_call_and_share.xml b/java/com/android/dialershared/bubble/res/color/bubble_checkable_mask.xml similarity index 66% rename from java/com/android/contacts/common/res/drawable/ic_call_and_share.xml rename to java/com/android/dialershared/bubble/res/color/bubble_checkable_mask.xml index be0cdd3585353f27f2fc9275904212f63f34e746..f9416ab57622f312946806b22df9df12dacbfa54 100644 --- a/java/com/android/contacts/common/res/drawable/ic_call_and_share.xml +++ b/java/com/android/dialershared/bubble/res/color/bubble_checkable_mask.xml @@ -1,6 +1,6 @@ - \ No newline at end of file + + + + diff --git a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml b/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml similarity index 70% rename from java/com/android/contacts/common/res/drawable/ic_back_arrow.xml rename to java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml index ecf704e8ebb5269ced5b1c826a1666b8b9a266de..33ca1fdc5294e46661ad00f13310ad379206494e 100644 --- a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml +++ b/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml @@ -1,6 +1,6 @@ - \ No newline at end of file + + + + + diff --git a/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_ltr.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_ltr.xml new file mode 100644 index 0000000000000000000000000000000000000000..77c813a75eb1479c6878ed5c33efb0121390afa6 --- /dev/null +++ b/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_ltr.xml @@ -0,0 +1,23 @@ + + + + + + + diff --git a/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml new file mode 100644 index 0000000000000000000000000000000000000000..9e25421549dd6e419102ed32b8b20a1be64b219f --- /dev/null +++ b/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml @@ -0,0 +1,23 @@ + + + + + + + diff --git a/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml new file mode 100644 index 0000000000000000000000000000000000000000..85e0b24f3470be70efcc998d1036d5009337f686 --- /dev/null +++ b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + diff --git a/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_circle.xml similarity index 65% rename from java/com/android/contacts/common/res/drawable/ic_search_video_call.xml rename to java/com/android/dialershared/bubble/res/drawable/bubble_ripple_circle.xml index 0fe0367e1996672dc960be2f278453bb44d70c47..8d5cf0bb53fb26301caca9bd05e02b4cdc244515 100644 --- a/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml +++ b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_circle.xml @@ -1,6 +1,6 @@ - + + + + + + + + diff --git a/java/com/android/dialershared/bubble/res/layout/bubble_base.xml b/java/com/android/dialershared/bubble/res/layout/bubble_base.xml new file mode 100644 index 0000000000000000000000000000000000000000..3acd2af2e325fd7a6131694bf0d3c73fe938d43d --- /dev/null +++ b/java/com/android/dialershared/bubble/res/layout/bubble_base.xml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/java/com/android/incallui/res/drawable/img_conference_automirrored.xml b/java/com/android/dialershared/bubble/res/values/colors.xml similarity index 76% rename from java/com/android/incallui/res/drawable/img_conference_automirrored.xml rename to java/com/android/dialershared/bubble/res/values/colors.xml index 78b2876bcd652f8c9920a38a0151271200eef8d7..97545faf3993ab4a15b6bf6f18a8587f71dd3bb3 100644 --- a/java/com/android/incallui/res/drawable/img_conference_automirrored.xml +++ b/java/com/android/dialershared/bubble/res/values/colors.xml @@ -1,7 +1,6 @@ - - \ No newline at end of file + + #33000000 + diff --git a/java/com/android/dialershared/bubble/res/values/values.xml b/java/com/android/dialershared/bubble/res/values/values.xml new file mode 100644 index 0000000000000000000000000000000000000000..5b85e0d231dfc7b044988a7ab5f84c9bcbcd0264 --- /dev/null +++ b/java/com/android/dialershared/bubble/res/values/values.xml @@ -0,0 +1,27 @@ + + + + + 0dp + 0dp + 0dp + 120dp + 64dp + 20dp + 4dp + 16dp + diff --git a/java/com/android/incallui/AndroidManifest.xml b/java/com/android/incallui/AndroidManifest.xml index 8539bd0cf5f880f7e1fb0ba6d81adbafc36af07f..703e5b5091da51f5f61adcf07843f2e8c5dc4a0b 100644 --- a/java/com/android/incallui/AndroidManifest.xml +++ b/java/com/android/incallui/AndroidManifest.xml @@ -15,11 +15,11 @@ --> + package="com.android.incallui"> + android:minSdkVersion="23" + android:targetSdkVersion="26"/> + android:name="android.hardware.camera.any" + android:required="false"/> @@ -43,47 +43,49 @@ Set taskAffinity for application is not working because it will be merged and the result is that all activities here still have same taskAffinity as activities under dialer. --> - + + + android:directBootAware="true" + android:excludeFromRecents="true" + android:exported="false" + android:label="@string/phoneAppLabel" + android:launchMode="singleInstance" + android:name="com.android.incallui.InCallActivity" + android:resizeableActivity="true" + android:screenOrientation="nosensor" + android:taskAffinity="com.android.incallui" + android:theme="@style/Theme.InCallScreen"> + android:directBootAware="true" + android:excludeFromRecents="true" + android:exported="false" + android:label="@string/manageConferenceLabel" + android:launchMode="singleTask" + android:name="com.android.incallui.ManageConferenceActivity" + android:noHistory="true" + android:resizeableActivity="true" + android:taskAffinity="com.android.incallui" + android:theme="@style/Theme.InCallScreen.ManageConference"/> + android:directBootAware="true" + android:exported="true" + android:name="com.android.incallui.InCallServiceImpl" + android:permission="android.permission.BIND_INCALL_SERVICE"> + android:name="android.telecom.IN_CALL_SERVICE_UI" + android:value="true"/> + android:name="android.telecom.IN_CALL_SERVICE_RINGING" + android:value="false"/> + android:name="android.telecom.INCLUDE_EXTERNAL_CALLS" + android:value="true"/> @@ -97,23 +99,35 @@ excludeFromRecents="true" -> Don't show in "recent apps" screen --> + android:excludeFromRecents="true" + android:exported="false" + android:name="com.android.incallui.spam.SpamNotificationActivity" + android:noHistory="true" + android:taskAffinity="" + android:theme="@style/AfterCallNotificationTheme"> + + + android:exported="false" + android:name="com.android.incallui.spam.SpamNotificationService"/> + android:directBootAware="true" + android:exported="false" + android:name="com.android.incallui.NotificationBroadcastReceiver"/> + + diff --git a/java/com/android/incallui/AnswerScreenPresenter.java b/java/com/android/incallui/AnswerScreenPresenter.java index ca34aa6aa8b1096f62e20700f9dda9b3acabd6ab..ddbe6ccef514371b4103e54be8ab775996016e31 100644 --- a/java/com/android/incallui/AnswerScreenPresenter.java +++ b/java/com/android/incallui/AnswerScreenPresenter.java @@ -124,11 +124,28 @@ public class AnswerScreenPresenter LogUtil.i("AnswerScreenPresenter.onAnswerAndReleaseCall", "activeCall == null"); onAnswer(false); } else { + activeCall.setReleasedByAnsweringSecondCall(true); activeCall.addListener(new AnswerOnDisconnected(activeCall)); activeCall.disconnect(); } } + @Override + public void onAnswerAndReleaseButtonDisabled() { + DialerCall activeCall = CallList.getInstance().getActiveCall(); + if (activeCall != null) { + activeCall.increaseSecondCallWithoutAnswerAndReleasedButtonTimes(); + } + } + + @Override + public void onAnswerAndReleaseButtonEnabled() { + DialerCall activeCall = CallList.getInstance().getActiveCall(); + if (activeCall != null) { + activeCall.increaseAnswerAndReleaseButtonDisplayedTimes(); + } + } + @Override public void onCannedTextResponsesLoaded(DialerCall call) { if (isSmsResponseAllowed(call)) { @@ -183,6 +200,9 @@ public class AnswerScreenPresenter @Override public void onInternationalCallOnWifi() {} + + @Override + public void onEnrichedCallSessionUpdate() {} } private boolean isSmsResponseAllowed(DialerCall call) { diff --git a/java/com/android/incallui/AnswerScreenPresenterStub.java b/java/com/android/incallui/AnswerScreenPresenterStub.java index 7bff3299afd88aa7294bd6881224e78b2c68e007..d02a181c1aa8ff4655a2d73ca35db024b56f1c74 100644 --- a/java/com/android/incallui/AnswerScreenPresenterStub.java +++ b/java/com/android/incallui/AnswerScreenPresenterStub.java @@ -42,6 +42,12 @@ public class AnswerScreenPresenterStub implements AnswerScreenDelegate { @Override public void onAnswerAndReleaseCall() {} + @Override + public void onAnswerAndReleaseButtonEnabled() {} + + @Override + public void onAnswerAndReleaseButtonDisabled() {} + @Override public void updateWindowBackgroundColor(@FloatRange(from = -1f, to = 1.0f) float progress) {} } diff --git a/java/com/android/incallui/AudioRouteSelectorActivity.java b/java/com/android/incallui/AudioRouteSelectorActivity.java new file mode 100644 index 0000000000000000000000000000000000000000..dfd4d1abf1ecaef981bcd6fbb0aad248fce538d0 --- /dev/null +++ b/java/com/android/incallui/AudioRouteSelectorActivity.java @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.incallui; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.v4.app.FragmentActivity; +import com.android.incallui.audiomode.AudioModeProvider; +import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment; +import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment.AudioRouteSelectorPresenter; +import com.android.incallui.call.TelecomAdapter; + +/** Simple activity that just shows the audio route selector fragment */ +public class AudioRouteSelectorActivity extends FragmentActivity + implements AudioRouteSelectorPresenter { + + @Override + protected void onCreate(@Nullable Bundle bundle) { + super.onCreate(bundle); + AudioRouteSelectorDialogFragment.newInstance(AudioModeProvider.getInstance().getAudioState()) + .show(getSupportFragmentManager(), null); + } + + @Override + public void onAudioRouteSelected(int audioRoute) { + TelecomAdapter.getInstance().setAudioRoute(audioRoute); + } + + @Override + public void onAudioRouteSelectorDismiss() { + finish(); + } +} diff --git a/java/com/android/incallui/CallButtonPresenter.java b/java/com/android/incallui/CallButtonPresenter.java index b0c3a99eabcdeb5d3876d1aaf8c88476c309c972..f758a9655e1f69416e7268eb101a8a6ac48530a0 100644 --- a/java/com/android/incallui/CallButtonPresenter.java +++ b/java/com/android/incallui/CallButtonPresenter.java @@ -300,18 +300,7 @@ public class CallButtonPresenter */ @Override public void switchCameraClicked(boolean useFrontFacingCamera) { - InCallCameraManager cameraManager = InCallPresenter.getInstance().getInCallCameraManager(); - cameraManager.setUseFrontFacingCamera(useFrontFacingCamera); - - String cameraId = cameraManager.getActiveCameraId(); - if (cameraId != null) { - final int cameraDir = - cameraManager.isUsingFrontFacingCamera() - ? CameraDirection.CAMERA_DIRECTION_FRONT_FACING - : CameraDirection.CAMERA_DIRECTION_BACK_FACING; - mCall.setCameraDir(cameraDir); - mCall.getVideoTech().setCamera(cameraId); - } + updateCamera(useFrontFacingCamera); } @Override @@ -345,8 +334,11 @@ public class CallButtonPresenter mCall.getTimeAddedMs()); if (pause) { + mCall.getVideoTech().setCamera(null); mCall.getVideoTech().stopTransmission(); } else { + updateCamera( + InCallPresenter.getInstance().getInCallCameraManager().isUsingFrontFacingCamera()); mCall.getVideoTech().resumeTransmission(); } @@ -354,6 +346,21 @@ public class CallButtonPresenter mInCallButtonUi.enableButton(InCallButtonIds.BUTTON_PAUSE_VIDEO, false); } + private void updateCamera(boolean useFrontFacingCamera) { + InCallCameraManager cameraManager = InCallPresenter.getInstance().getInCallCameraManager(); + cameraManager.setUseFrontFacingCamera(useFrontFacingCamera); + + String cameraId = cameraManager.getActiveCameraId(); + if (cameraId != null) { + final int cameraDir = + cameraManager.isUsingFrontFacingCamera() + ? CameraDirection.CAMERA_DIRECTION_FRONT_FACING + : CameraDirection.CAMERA_DIRECTION_BACK_FACING; + mCall.setCameraDir(cameraDir); + mCall.getVideoTech().setCamera(cameraId); + } + } + private void updateUi(InCallState state, DialerCall call) { LogUtil.v("CallButtonPresenter", "updating call UI for call: ", call); diff --git a/java/com/android/incallui/CallCardPresenter.java b/java/com/android/incallui/CallCardPresenter.java index c2b99c1d1a6c69867cd5ea3340011c5a1a8f1687..cd06793ce41220d354d580268f5d4da08e3d734f 100644 --- a/java/com/android/incallui/CallCardPresenter.java +++ b/java/com/android/incallui/CallCardPresenter.java @@ -47,9 +47,6 @@ import com.android.dialer.common.Assert; import com.android.dialer.common.ConfigProviderBindings; import com.android.dialer.common.LogUtil; import com.android.dialer.compat.ActivityCompat; -import com.android.dialer.enrichedcall.EnrichedCallComponent; -import com.android.dialer.enrichedcall.EnrichedCallManager; -import com.android.dialer.enrichedcall.Session; import com.android.dialer.logging.DialerImpression; import com.android.dialer.logging.Logger; import com.android.dialer.multimedia.MultimediaData; @@ -85,8 +82,7 @@ public class CallCardPresenter InCallDetailsListener, InCallEventListener, InCallScreenDelegate, - DialerCallListener, - EnrichedCallManager.StateChangedListener { + DialerCallListener { /** * Amount of time to wait before sending an announcement via the accessibility manager. When the @@ -376,6 +372,11 @@ public class CallCardPresenter @Override public void onInternationalCallOnWifi() {} + @Override + public void onEnrichedCallSessionUpdate() { + updatePrimaryDisplayInfo(); + } + /** Handles a change to the child number by refreshing the primary call info. */ @Override public void onDialerCallChildNumberChange() { @@ -418,12 +419,6 @@ public class CallCardPresenter updatePrimaryCallState(); } - @Override - public void onEnrichedCallStateChanged() { - LogUtil.enterBlock("CallCardPresenter.onEnrichedCallStateChanged"); - updatePrimaryDisplayInfo(); - } - private boolean shouldRefreshPrimaryInfo(boolean primaryChanged) { if (mPrimary == null) { return false; @@ -475,7 +470,8 @@ public class CallCardPresenter mPrimary.getConnectTimeMillis(), CallerInfoUtils.isVoiceMailNumber(mContext, mPrimary), mPrimary.isRemotelyHeld(), - isBusiness)); + isBusiness, + supports2ndCallOnHold())); InCallActivity activity = (InCallActivity) (mInCallScreen.getInCallScreenFragment().getActivity()); @@ -505,6 +501,15 @@ public class CallCardPresenter && !mIsFullscreen; } + private boolean supports2ndCallOnHold() { + DialerCall firstCall = CallList.getInstance().getActiveOrBackgroundCall(); + DialerCall incomingCall = CallList.getInstance().getIncomingCall(); + if (firstCall != null && incomingCall != null && firstCall != incomingCall) { + return incomingCall.can(Details.CAPABILITY_HOLD); + } + return true; + } + @Override public void onCallStateButtonClicked() { Intent broadcastIntent = Bindings.get(mContext).getCallStateButtonBroadcastIntent(mContext); @@ -666,26 +671,8 @@ public class CallCardPresenter boolean hasWorkCallProperty = mPrimary.hasProperty(PROPERTY_ENTERPRISE_CALL); MultimediaData multimediaData = null; - if (mPrimary.getNumber() != null) { - EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager(); - - EnrichedCallManager.Filter filter; - if (mPrimary.isIncoming()) { - filter = manager.createIncomingCallComposerFilter(); - } else { - filter = manager.createOutgoingCallComposerFilter(); - } - - Session enrichedCallSession = - manager.getSession(mPrimary.getUniqueCallId(), mPrimary.getNumber(), filter); - - mPrimary.setEnrichedCallSession(enrichedCallSession); - mPrimary.setEnrichedCallCapabilities(manager.getCapabilities(mPrimary.getNumber())); - - if (enrichedCallSession != null) { - enrichedCallSession.setUniqueDialerCallId(mPrimary.getUniqueCallId()); - multimediaData = enrichedCallSession.getMultimediaData(); - } + if (mPrimary.getEnrichedCallSession() != null) { + multimediaData = mPrimary.getEnrichedCallSession().getMultimediaData(); } if (mPrimary.isConferenceCall()) { @@ -696,7 +683,8 @@ public class CallCardPresenter mInCallScreen.setPrimary( new PrimaryInfo( null /* number */, - getConferenceString(mPrimary), + CallerInfoUtils.getConferenceString( + mContext, mPrimary.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)), false /* nameIsNumber */, null /* location */, null /* label */, @@ -880,7 +868,8 @@ public class CallCardPresenter mInCallScreen.setSecondary( new SecondaryInfo( true /* show */, - getConferenceString(mSecondary), + CallerInfoUtils.getConferenceString( + mContext, mSecondary.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)), false /* nameIsNumber */, null /* label */, mSecondary.getCallProviderLabel(), @@ -972,7 +961,7 @@ public class CallCardPresenter } /** Gets the name to display for the call. */ - String getNameForCall(ContactCacheEntry contactInfo) { + private String getNameForCall(ContactCacheEntry contactInfo) { String preferredName = ContactDisplayUtils.getPreferredDisplayName( contactInfo.namePrimary, contactInfo.nameAlternative, mContactsPreferences); @@ -982,19 +971,6 @@ public class CallCardPresenter return preferredName; } - /** Gets the number to display for a call. */ - String getNumberForCall(ContactCacheEntry contactInfo) { - // If the name is empty, we use the number for the name...so don't show a second - // number in the number field - String preferredName = - ContactDisplayUtils.getPreferredDisplayName( - contactInfo.namePrimary, contactInfo.nameAlternative, mContactsPreferences); - if (TextUtils.isEmpty(preferredName)) { - return contactInfo.location; - } - return contactInfo.number; - } - @Override public void onSecondaryInfoClicked() { if (mSecondary == null) { @@ -1035,15 +1011,6 @@ public class CallCardPresenter return mPrimary != null && mPrimary.getState() == DialerCall.State.ACTIVE; } - private String getConferenceString(DialerCall call) { - boolean isGenericConference = call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE); - LogUtil.v("CallCardPresenter.getConferenceString", "" + isGenericConference); - - final int resId = - isGenericConference ? R.string.generic_conference_call_name : R.string.conference_call_name; - return mContext.getResources().getString(resId); - } - private boolean shouldShowEndCallButton(DialerCall primary, int callState) { if (primary == null) { return false; @@ -1063,7 +1030,6 @@ public class CallCardPresenter @Override public void onInCallScreenResumed() { - EnrichedCallComponent.get(mContext).getEnrichedCallManager().registerStateChangedListener(this); updatePrimaryDisplayInfo(); if (shouldSendAccessibilityEvent) { @@ -1072,11 +1038,7 @@ public class CallCardPresenter } @Override - public void onInCallScreenPaused() { - EnrichedCallComponent.get(mContext) - .getEnrichedCallManager() - .unregisterStateChangedListener(this); - } + public void onInCallScreenPaused() {} static boolean sendAccessibilityEvent(Context context, InCallScreen inCallScreen) { AccessibilityManager am = diff --git a/java/com/android/incallui/CallerInfoUtils.java b/java/com/android/incallui/CallerInfoUtils.java index 5644466470fddffdfb387ad56ad270a258975706..8f23107603c377a8bfe792aea172d3931903763f 100644 --- a/java/com/android/incallui/CallerInfoUtils.java +++ b/java/com/android/incallui/CallerInfoUtils.java @@ -282,4 +282,11 @@ public class CallerInfoUtils { }); loader.startLoading(); } + + /** @return conference name for conference call. */ + public static String getConferenceString(Context context, boolean isGenericConference) { + final int resId = + isGenericConference ? R.string.generic_conference_call_name : R.string.conference_call_name; + return context.getResources().getString(resId); + } } diff --git a/java/com/android/incallui/ContactInfoCache.java b/java/com/android/incallui/ContactInfoCache.java index e45eb9746b365aefe6566f5303ed4335871074b9..d7eea79bd3544c5c987f78e4bcf85ffb9ca6d2dd 100644 --- a/java/com/android/incallui/ContactInfoCache.java +++ b/java/com/android/incallui/ContactInfoCache.java @@ -406,7 +406,7 @@ public class ContactInfoCache implements OnImageLoadCompleteListener { } else { ContactCacheEntry initialCacheEntry = updateCallerInfoInCacheOnAnyThread( - callId, call.getNumberPresentation(), callerInfo, isIncoming, false, queryToken); + callId, call.getNumberPresentation(), callerInfo, false, queryToken); sendInfoNotifications(callId, initialCacheEntry); } } @@ -416,7 +416,6 @@ public class ContactInfoCache implements OnImageLoadCompleteListener { String callId, int numberPresentation, CallerInfo callerInfo, - boolean isIncoming, boolean didLocalLookup, CallerInfoQueryToken queryToken) { Log.d( @@ -443,16 +442,7 @@ public class ContactInfoCache implements OnImageLoadCompleteListener { Log.d(TAG, "Existing cacheEntry in hashMap " + existingCacheEntry); if (didLocalLookup) { - // Before issuing a request for more data from other services, we only check that the - // contact wasn't found in the local DB. We don't check the if the cache entry already - // has a name because we allow overriding cnap data with data from other services. - if (!callerInfo.contactExists && mPhoneNumberService != null) { - Log.d(TAG, "Contact lookup. Local contacts miss, checking remote"); - final PhoneNumberServiceListener listener = - new PhoneNumberServiceListener(callId, queryToken.mQueryId); - cacheEntry.hasPendingQuery = true; - mPhoneNumberService.getPhoneNumberInfo(cacheEntry.number, listener, listener, isIncoming); - } else if (cacheEntry.displayPhotoUri != null) { + if (cacheEntry.displayPhotoUri != null) { // When the difference between 2 numbers is only the prefix (e.g. + or IDD), // we will still trigger force query so that the number can be updated on // the calling screen. We need not query the image again if the previous @@ -789,7 +779,7 @@ public class ContactInfoCache implements OnImageLoadCompleteListener { maybeUpdateFromCequintCallerId(ci, cw.cnapName, mIsIncoming); long time = SystemClock.uptimeMillis() - start; Log.d(TAG, "Cequint Caller Id look up takes " + time + " ms."); - updateCallerInfoInCacheOnAnyThread(cw.callId, cw.numberPresentation, ci, mIsIncoming, true, mQueryToken); + updateCallerInfoInCacheOnAnyThread(cw.callId, cw.numberPresentation, ci, true, mQueryToken); } @Override @@ -807,6 +797,16 @@ public class ContactInfoCache implements OnImageLoadCompleteListener { clearCallbacks(callId); return; } + // Before issuing a request for more data from other services, we only check that the + // contact wasn't found in the local DB. We don't check the if the cache entry already + // has a name because we allow overriding cnap data with data from other services. + if (!callerInfo.contactExists && mPhoneNumberService != null) { + Log.d(TAG, "Contact lookup. Local contacts miss, checking remote"); + final PhoneNumberServiceListener listener = + new PhoneNumberServiceListener(callId, mQueryToken.mQueryId); + cacheEntry.hasPendingQuery = true; + mPhoneNumberService.getPhoneNumberInfo(cacheEntry.number, listener, listener, mIsIncoming); + } sendInfoNotifications(callId, cacheEntry); if (!cacheEntry.hasPendingQuery) { if (callerInfo.contactExists) { @@ -870,6 +870,7 @@ public class ContactInfoCache implements OnImageLoadCompleteListener { entry.shouldShowLocation = oldEntry.shouldShowLocation; // Contact specific ringtone is obtained from local lookup. entry.contactRingtoneUri = oldEntry.contactRingtoneUri; + entry.originalPhoneNumber = oldEntry.originalPhoneNumber; } // If no image and it's a business, switch to using the default business avatar. diff --git a/java/com/android/incallui/ExternalCallNotifier.java b/java/com/android/incallui/ExternalCallNotifier.java index 0c2493c600cdefe3f4adc7fd0feae0f5e355bfef..051392e2b24b44a73a883bbd008842e8a332b066 100644 --- a/java/com/android/incallui/ExternalCallNotifier.java +++ b/java/com/android/incallui/ExternalCallNotifier.java @@ -384,11 +384,10 @@ public class ExternalCallNotifier implements ExternalCallList.ExternalCallListen ContactInfoCache.ContactCacheEntry contactInfo, android.telecom.Call call) { - if (call.getDetails().hasProperty(android.telecom.Call.Details.PROPERTY_CONFERENCE) - && !call.getDetails() - .hasProperty(android.telecom.Call.Details.PROPERTY_GENERIC_CONFERENCE)) { - - return context.getResources().getString(R.string.conference_call_name); + if (call.getDetails().hasProperty(android.telecom.Call.Details.PROPERTY_CONFERENCE)) { + return CallerInfoUtils.getConferenceString( + context, + call.getDetails().hasProperty(android.telecom.Call.Details.PROPERTY_GENERIC_CONFERENCE)); } String preferredName = diff --git a/java/com/android/incallui/InCallActivity.java b/java/com/android/incallui/InCallActivity.java index cc9a8e4385427d0ad3e3894aa8dfa597f46d4f3b..bda003ccc64172b07204498f77964e1aaf51d95b 100644 --- a/java/com/android/incallui/InCallActivity.java +++ b/java/com/android/incallui/InCallActivity.java @@ -694,13 +694,8 @@ public class InCallActivity extends TransactionSafeFragmentActivity if (didShowInCallScreen) { return false; } - InCallScreen inCallScreen = getInCallScreen(); - if (inCallScreen == null) { - inCallScreen = InCallBindings.createInCallScreen(); - transaction.add(R.id.main, inCallScreen.getInCallScreenFragment(), TAG_IN_CALL_SCREEN); - } else { - transaction.show(inCallScreen.getInCallScreenFragment()); - } + InCallScreen inCallScreen = InCallBindings.createInCallScreen(); + transaction.add(R.id.main, inCallScreen.getInCallScreenFragment(), TAG_IN_CALL_SCREEN); Logger.get(this).logScreenView(ScreenEvent.Type.INCALL, this); didShowInCallScreen = true; return true; @@ -712,7 +707,7 @@ public class InCallActivity extends TransactionSafeFragmentActivity } InCallScreen inCallScreen = getInCallScreen(); if (inCallScreen != null) { - transaction.hide(inCallScreen.getInCallScreenFragment()); + transaction.remove(inCallScreen.getInCallScreenFragment()); } didShowInCallScreen = false; return true; diff --git a/java/com/android/incallui/InCallPresenter.java b/java/com/android/incallui/InCallPresenter.java index 2d6d83c3c8319a4ec8ebf958d2d7b66bfc05fcf9..7c3000144b444456640831c2131c03ac946d971f 100644 --- a/java/com/android/incallui/InCallPresenter.java +++ b/java/com/android/incallui/InCallPresenter.java @@ -695,7 +695,10 @@ public class InCallPresenter implements CallList.Listener { if (newState == InCallState.INCOMING && (waitingForAccountCall = callList.getWaitingForAccountCall()) != null) { waitingForAccountCall.disconnect(); - mInCallActivity.dismissPendingDialogs(); + // The InCallActivity might be destroyed or not started yet at this point. + if (isActivityStarted()) { + mInCallActivity.dismissPendingDialogs(); + } } newState = startOrFinishUi(newState); diff --git a/java/com/android/incallui/InCallServiceImpl.java b/java/com/android/incallui/InCallServiceImpl.java index 4ab92a797bf91c338e96b94d9f4e138242c01e49..1653334a19e4d902c3d12318b8b735b1df922fd6 100644 --- a/java/com/android/incallui/InCallServiceImpl.java +++ b/java/com/android/incallui/InCallServiceImpl.java @@ -23,6 +23,7 @@ import android.telecom.Call; import android.telecom.CallAudioState; import android.telecom.InCallService; import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler; +import com.android.dialer.common.ConfigProviderBindings; import com.android.incallui.audiomode.AudioModeProvider; import com.android.incallui.call.CallList; import com.android.incallui.call.ExternalCallList; @@ -36,6 +37,8 @@ import com.android.incallui.call.TelecomAdapter; */ public class InCallServiceImpl extends InCallService { + private ReturnToCallController returnToCallController; + @Override public void onCallAudioStateChanged(CallAudioState audioState) { AudioModeProvider.getInstance().onAudioStateChanged(audioState); @@ -79,6 +82,9 @@ public class InCallServiceImpl extends InCallService { InCallPresenter.getInstance().onServiceBind(); InCallPresenter.getInstance().maybeStartRevealAnimation(intent); TelecomAdapter.getInstance().setInCallService(this); + if (ConfigProviderBindings.get(this).getBoolean("enable_return_to_call_bubble", false)) { + returnToCallController = new ReturnToCallController(this); + } return super.onBind(intent); } @@ -98,5 +104,9 @@ public class InCallServiceImpl extends InCallService { // Tear down the InCall system TelecomAdapter.getInstance().clearInCallService(); InCallPresenter.getInstance().tearDown(); + if (returnToCallController != null) { + returnToCallController.tearDown(); + returnToCallController = null; + } } } diff --git a/java/com/android/incallui/ReturnToCallActionReceiver.java b/java/com/android/incallui/ReturnToCallActionReceiver.java new file mode 100644 index 0000000000000000000000000000000000000000..b645c155c5957e2c3e33e37ba29da0b448e654e1 --- /dev/null +++ b/java/com/android/incallui/ReturnToCallActionReceiver.java @@ -0,0 +1,132 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.incallui; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.telecom.CallAudioState; +import com.android.dialer.common.LogUtil; +import com.android.dialer.logging.DialerImpression; +import com.android.dialer.logging.Logger; +import com.android.incallui.audiomode.AudioModeProvider; +import com.android.incallui.call.CallList; +import com.android.incallui.call.DialerCall; +import com.android.incallui.call.TelecomAdapter; + +/** Handles clicks on the return-to-call bubble */ +public class ReturnToCallActionReceiver extends BroadcastReceiver { + + public static final String ACTION_TOGGLE_SPEAKER = "toggleSpeaker"; + public static final String ACTION_SHOW_AUDIO_ROUTE_SELECTOR = "showAudioRouteSelector"; + public static final String ACTION_TOGGLE_MUTE = "toggleMute"; + public static final String ACTION_END_CALL = "endCall"; + + @Override + public void onReceive(Context context, Intent intent) { + switch (intent.getAction()) { + case ACTION_TOGGLE_SPEAKER: + toggleSpeaker(context); + break; + case ACTION_SHOW_AUDIO_ROUTE_SELECTOR: + showAudioRouteSelector(context); + break; + case ACTION_TOGGLE_MUTE: + toggleMute(context); + break; + case ACTION_END_CALL: + endCall(context); + break; + } + } + + private void toggleSpeaker(Context context) { + CallAudioState audioState = AudioModeProvider.getInstance().getAudioState(); + + if ((audioState.getSupportedRouteMask() & CallAudioState.ROUTE_BLUETOOTH) + == CallAudioState.ROUTE_BLUETOOTH) { + LogUtil.w( + "ReturnToCallActionReceiver.toggleSpeaker", + "toggleSpeaker() called when bluetooth available." + + " Probably should have shown audio route selector"); + } + + DialerCall call = getCall(); + + int newRoute; + if (audioState.getRoute() == CallAudioState.ROUTE_SPEAKER) { + newRoute = CallAudioState.ROUTE_WIRED_OR_EARPIECE; + Logger.get(context) + .logCallImpression( + DialerImpression.Type.BUBBLE_TURN_ON_WIRED_OR_EARPIECE, + call != null ? call.getUniqueCallId() : "", + call != null ? call.getTimeAddedMs() : 0); + } else { + newRoute = CallAudioState.ROUTE_SPEAKER; + Logger.get(context) + .logCallImpression( + DialerImpression.Type.BUBBLE_TURN_ON_SPEAKERPHONE, + call != null ? call.getUniqueCallId() : "", + call != null ? call.getTimeAddedMs() : 0); + } + TelecomAdapter.getInstance().setAudioRoute(newRoute); + } + + public void showAudioRouteSelector(Context context) { + context.startActivity(new Intent(context, AudioRouteSelectorActivity.class)); + } + + private void toggleMute(Context context) { + DialerCall call = getCall(); + boolean shouldMute = !AudioModeProvider.getInstance().getAudioState().isMuted(); + Logger.get(context) + .logCallImpression( + shouldMute + ? DialerImpression.Type.BUBBLE_MUTE_CALL + : DialerImpression.Type.BUBBLE_UNMUTE_CALL, + call != null ? call.getUniqueCallId() : "", + call != null ? call.getTimeAddedMs() : 0); + TelecomAdapter.getInstance().mute(shouldMute); + } + + private void endCall(Context context) { + DialerCall call = getCall(); + + Logger.get(context) + .logCallImpression( + DialerImpression.Type.BUBBLE_END_CALL, + call != null ? call.getUniqueCallId() : "", + call != null ? call.getTimeAddedMs() : 0); + if (call != null) { + call.disconnect(); + } + } + + private DialerCall getCall() { + CallList callList = InCallPresenter.getInstance().getCallList(); + if (callList != null) { + DialerCall call = callList.getOutgoingCall(); + if (call == null) { + call = callList.getActiveOrBackgroundCall(); + } + if (call != null) { + return call; + } + } + return null; + } +} diff --git a/java/com/android/incallui/ReturnToCallController.java b/java/com/android/incallui/ReturnToCallController.java new file mode 100644 index 0000000000000000000000000000000000000000..4cb6aaf898371915aaf30688d46e818275f0d40b --- /dev/null +++ b/java/com/android/incallui/ReturnToCallController.java @@ -0,0 +1,204 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.incallui; + +import android.app.PendingIntent; +import android.content.Context; +import android.content.Intent; +import android.graphics.drawable.Icon; +import android.support.annotation.NonNull; +import android.support.annotation.VisibleForTesting; +import android.telecom.CallAudioState; +import com.android.dialer.common.LogUtil; +import com.android.dialer.telecom.TelecomUtil; +import com.android.dialershared.bubble.Bubble; +import com.android.dialershared.bubble.BubbleInfo; +import com.android.dialershared.bubble.BubbleInfo.Action; +import com.android.incallui.InCallPresenter.InCallUiListener; +import com.android.incallui.audiomode.AudioModeProvider; +import com.android.incallui.audiomode.AudioModeProvider.AudioModeListener; +import com.android.incallui.call.CallList; +import com.android.incallui.call.CallList.Listener; +import com.android.incallui.call.DialerCall; +import com.android.incallui.speakerbuttonlogic.SpeakerButtonInfo; +import com.android.incallui.speakerbuttonlogic.SpeakerButtonInfo.IconSize; +import java.util.ArrayList; +import java.util.List; + +/** + * Listens for events relevant to the return-to-call bubble and updates the bubble's state as + * necessary + */ +public class ReturnToCallController implements InCallUiListener, Listener, AudioModeListener { + + private final Context context; + + @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) + Bubble bubble; + + private CallAudioState audioState; + + private final PendingIntent toggleSpeaker; + private final PendingIntent showSpeakerSelect; + private final PendingIntent toggleMute; + private final PendingIntent endCall; + + public ReturnToCallController(Context context) { + this.context = context; + + toggleSpeaker = createActionIntent(ReturnToCallActionReceiver.ACTION_TOGGLE_SPEAKER); + showSpeakerSelect = + createActionIntent(ReturnToCallActionReceiver.ACTION_SHOW_AUDIO_ROUTE_SELECTOR); + toggleMute = createActionIntent(ReturnToCallActionReceiver.ACTION_TOGGLE_MUTE); + endCall = createActionIntent(ReturnToCallActionReceiver.ACTION_END_CALL); + + InCallPresenter.getInstance().addInCallUiListener(this); + CallList.getInstance().addListener(this); + AudioModeProvider.getInstance().addListener(this); + audioState = AudioModeProvider.getInstance().getAudioState(); + } + + public void tearDown() { + InCallPresenter.getInstance().removeInCallUiListener(this); + CallList.getInstance().removeListener(this); + AudioModeProvider.getInstance().removeListener(this); + } + + @Override + public void onUiShowing(boolean showing) { + if (showing) { + hide(); + } else { + if (TelecomUtil.isInCall(context)) { + show(); + } + } + } + + private void hide() { + if (bubble != null) { + bubble.hide(); + } else { + LogUtil.i("ReturnToCallController.hide", "hide() called without calling show()"); + } + } + + private void show() { + if (bubble == null) { + bubble = startNewBubble(); + } else { + bubble.show(); + } + } + + private Bubble startNewBubble() { + if (!Bubble.canShowBubbles(context)) { + LogUtil.i("ReturnToCallController.startNewBubble", "can't show bubble, no permission"); + return null; + } + Bubble returnToCallBubble = Bubble.createBubble(context, generateBubbleInfo()); + returnToCallBubble.show(); + return returnToCallBubble; + } + + @Override + public void onIncomingCall(DialerCall call) {} + + @Override + public void onUpgradeToVideo(DialerCall call) {} + + @Override + public void onSessionModificationStateChange(DialerCall call) {} + + @Override + public void onCallListChange(CallList callList) {} + + @Override + public void onDisconnect(DialerCall call) { + if (bubble != null && bubble.isShowing()) { + bubble.showText(context.getText(R.string.incall_call_ended)); + } + + if (!TelecomUtil.isInCall(context)) { + hide(); + } + } + + @Override + public void onWiFiToLteHandover(DialerCall call) {} + + @Override + public void onHandoverToWifiFailed(DialerCall call) {} + + @Override + public void onInternationalCallOnWifi(@NonNull DialerCall call) {} + + @Override + public void onAudioStateChanged(CallAudioState audioState) { + this.audioState = audioState; + if (bubble != null) { + bubble.updateActions(generateActions()); + } + } + + private BubbleInfo generateBubbleInfo() { + return BubbleInfo.builder() + .setPrimaryColor(context.getResources().getColor(R.color.dialer_theme_color, null)) + .setPrimaryIcon(Icon.createWithResource(context, R.drawable.quantum_ic_call_white_24)) + .setPrimaryAction( + PendingIntent.getActivity( + context, 0, InCallActivity.getIntent(context, false, false, false), 0)) + .setActions(generateActions()) + .build(); + } + + @NonNull + private List generateActions() { + List actions = new ArrayList<>(); + SpeakerButtonInfo speakerButtonInfo = new SpeakerButtonInfo(audioState, IconSize.SIZE_24_DP); + + actions.add( + Action.builder() + .setIcon(Icon.createWithResource(context, speakerButtonInfo.icon)) + .setName(context.getText(speakerButtonInfo.label)) + .setChecked(speakerButtonInfo.isChecked) + .setAction(speakerButtonInfo.checkable ? toggleSpeaker : showSpeakerSelect) + .build()); + + actions.add( + Action.builder() + .setIcon(Icon.createWithResource(context, R.drawable.quantum_ic_mic_off_white_24)) + .setName(context.getText(R.string.incall_label_mute)) + .setChecked(audioState.isMuted()) + .setAction(toggleMute) + .build()); + actions.add( + Action.builder() + .setIcon(Icon.createWithResource(context, R.drawable.quantum_ic_call_end_white_24)) + .setName(context.getText(R.string.incall_label_end_call)) + .setAction(endCall) + .build()); + return actions; + } + + @NonNull + private PendingIntent createActionIntent(String actionToggleSpeaker) { + Intent toggleSpeaker = new Intent(context, ReturnToCallActionReceiver.class); + toggleSpeaker.setAction(actionToggleSpeaker); + return PendingIntent.getBroadcast(context, 0, toggleSpeaker, 0); + } +} diff --git a/java/com/android/incallui/StatusBarNotifier.java b/java/com/android/incallui/StatusBarNotifier.java index 165b30b52b95c4498b9a4785ac50f1d425279df4..229f08c8e28eb33ced6c1a91f4ebec9d61e71007 100644 --- a/java/com/android/incallui/StatusBarNotifier.java +++ b/java/com/android/incallui/StatusBarNotifier.java @@ -62,11 +62,11 @@ import android.text.style.ForegroundColorSpan; import com.android.contacts.common.ContactsUtils; import com.android.contacts.common.ContactsUtils.UserType; import com.android.contacts.common.lettertiles.LetterTileDrawable; +import com.android.contacts.common.lettertiles.LetterTileDrawable.ContactType; import com.android.contacts.common.preference.ContactsPreferences; import com.android.contacts.common.util.BitmapUtil; import com.android.contacts.common.util.ContactDisplayUtils; import com.android.dialer.common.LogUtil; -import com.android.dialer.enrichedcall.EnrichedCallComponent; import com.android.dialer.enrichedcall.EnrichedCallManager; import com.android.dialer.enrichedcall.Session; import com.android.dialer.multimedia.MultimediaData; @@ -565,8 +565,9 @@ public class StatusBarNotifier @VisibleForTesting @Nullable String getContentTitle(ContactCacheEntry contactInfo, DialerCall call) { - if (call.isConferenceCall() && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)) { - return mContext.getResources().getString(R.string.conference_call_name); + if (call.isConferenceCall()) { + return CallerInfoUtils.getConferenceString( + mContext, call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)); } String preferredName = @@ -604,20 +605,16 @@ public class StatusBarNotifier if (contactInfo.photo == null) { int width = (int) resources.getDimension(android.R.dimen.notification_large_icon_width); int height = (int) resources.getDimension(android.R.dimen.notification_large_icon_height); - int contactType = LetterTileDrawable.TYPE_DEFAULT; + @ContactType + int contactType = + LetterTileDrawable.getContactTypeFromPrimitives( + CallerInfoUtils.isVoiceMailNumber(context, call), + call.isSpam(), + contactInfo.isBusiness, + call.getNumberPresentation(), + call.isConferenceCall() && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)); LetterTileDrawable lettertile = new LetterTileDrawable(resources); - // TODO: Deduplicate across Dialer. b/36195917 - if (CallerInfoUtils.isVoiceMailNumber(context, call)) { - contactType = LetterTileDrawable.TYPE_VOICEMAIL; - } else if (contactInfo.isBusiness) { - contactType = LetterTileDrawable.TYPE_BUSINESS; - } else if (call.getNumberPresentation() == TelecomManager.PRESENTATION_RESTRICTED) { - contactType = LetterTileDrawable.TYPE_GENERIC_AVATAR; - } else if (call.isConferenceCall() - && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)) { - contactType = LetterTileDrawable.TYPE_CONFERENCE; - } lettertile.setCanonicalDialerLetterTileDetails( contactInfo.namePrimary == null ? contactInfo.number : contactInfo.namePrimary, contactInfo.lookupKey, @@ -694,20 +691,10 @@ public class StatusBarNotifier } if (isIncomingOrWaiting) { - EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager(); - Session session = null; - if (call.getNumber() != null) { - session = - manager.getSession( - call.getUniqueCallId(), - call.getNumber(), - manager.createIncomingCallComposerFilter()); - } - if (call.isSpam()) { resId = R.string.notification_incoming_spam_call; - } else if (session != null) { - resId = getECIncomingCallText(session); + } else if (shouldShowEnrichedCallNotification(call.getEnrichedCallSession())) { + resId = getECIncomingCallText(call.getEnrichedCallSession()); } else if (call.hasProperty(Details.PROPERTY_WIFI)) { resId = R.string.notification_incoming_call_wifi; } else { @@ -731,6 +718,13 @@ public class StatusBarNotifier return mContext.getString(resId); } + private boolean shouldShowEnrichedCallNotification(Session session) { + if (session == null) { + return false; + } + return session.getMultimediaData().hasData() || session.getMultimediaData().isImportant(); + } + private int getECIncomingCallText(Session session) { int resId; MultimediaData data = session.getMultimediaData(); @@ -756,8 +750,10 @@ public class StatusBarNotifier } else { resId = R.string.important_notification_incoming_call_with_photo; } - } else { + } else if (hasSubject) { resId = R.string.important_notification_incoming_call_with_message; + } else { + resId = R.string.important_notification_incoming_call; } if (mContext.getString(resId).length() > 50) { resId = R.string.important_notification_incoming_call_attachments; @@ -1005,6 +1001,9 @@ public class StatusBarNotifier @Override public void onInternationalCallOnWifi() {} + @Override + public void onEnrichedCallSessionUpdate() {} + /** * Responds to changes in the session modification state for the call by dismissing the status * bar notification as required. diff --git a/java/com/android/incallui/answer/impl/AnswerFragment.java b/java/com/android/incallui/answer/impl/AnswerFragment.java index 1f0541c4bf19b25659459cf66c32bcd2c75fe5a5..6be79305d4339871fbb2113f73163f91cd8e5f2c 100644 --- a/java/com/android/incallui/answer/impl/AnswerFragment.java +++ b/java/com/android/incallui/answer/impl/AnswerFragment.java @@ -427,8 +427,10 @@ public class AnswerFragment extends Fragment if (allowAnswerAndRelease()) { answerAndReleaseButton.setVisibility(View.VISIBLE); + answerScreenDelegate.onAnswerAndReleaseButtonEnabled(); } else { answerAndReleaseButton.setVisibility(View.INVISIBLE); + answerScreenDelegate.onAnswerAndReleaseButtonDisabled(); } } @@ -930,7 +932,7 @@ public class AnswerFragment extends Fragment if (hasCallOnHold()) { getAnswerMethod() .setHintText(getText(R.string.call_incoming_default_label_answer_and_release_third)); - } else { + } else if (primaryCallState.supportsCallOnHold) { getAnswerMethod() .setHintText(getText(R.string.call_incoming_default_label_answer_and_release_second)); } diff --git a/java/com/android/incallui/answer/impl/PillDrawable.java b/java/com/android/incallui/answer/impl/PillDrawable.java deleted file mode 100644 index 57d84c45f3d2e5c3f009594fdccb08433ba6f0d0..0000000000000000000000000000000000000000 --- a/java/com/android/incallui/answer/impl/PillDrawable.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 2016 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.incallui.answer.impl; - -import android.graphics.Rect; -import android.graphics.drawable.GradientDrawable; - -/** Draws a pill-shaped background */ -public class PillDrawable extends GradientDrawable { - - public PillDrawable() { - super(); - setShape(RECTANGLE); - } - - @Override - protected void onBoundsChange(Rect r) { - super.onBoundsChange(r); - setCornerRadius(r.height() / 2); - } - - @Override - public void setShape(int shape) { - if (shape != GradientDrawable.RECTANGLE) { - throw new UnsupportedOperationException("PillDrawable must be a rectangle"); - } - super.setShape(shape); - } -} diff --git a/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml b/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml index 9a49075b8435d6453b7480ae8bcb679bd3c24258..600115e275b629ce70dcc56b586be1de530487ca 100644 --- a/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml +++ b/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml @@ -41,6 +41,7 @@ android:layout_marginBottom="116dp" android:layout_gravity="center_horizontal" android:alpha="0" + android:gravity="center_horizontal" android:text="@string/call_incoming_will_disconnect" android:textColor="@color/blue_grey_100" android:textSize="16sp" @@ -59,6 +60,7 @@ android:layout_marginBottom="18dp" android:layout_gravity="center_horizontal" android:focusable="false" + android:gravity="center_horizontal" android:text="@string/call_incoming_swipe_to_answer" android:textAlignment="center" android:textAppearance="@style/Dialer.Incall.TextAppearance.Hint"/> @@ -110,6 +112,7 @@ android:layout_gravity="center_horizontal" android:alpha="0" android:focusable="false" + android:gravity="center_horizontal" android:text="@string/call_incoming_swipe_to_reject" android:textAppearance="@style/Dialer.Incall.TextAppearance.Hint" tools:alpha="1"/> diff --git a/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java b/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java index 77b45ec71f4ae38caabf5f1e154d2bcdb8b9d53e..9c33b5de64094e6c6fbedd83c983fbc0a8f56fce 100644 --- a/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java +++ b/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java @@ -23,7 +23,6 @@ import android.os.Build; import android.support.annotation.NonNull; import android.support.annotation.VisibleForTesting; import com.android.dialer.common.Assert; -import com.android.dialer.common.ConfigProvider; import com.android.dialer.common.ConfigProviderBindings; import com.android.dialer.common.LogUtil; import com.android.dialer.util.DialerUtils; @@ -35,8 +34,9 @@ import com.android.incallui.util.AccessibilityUtil; */ public class AnswerHintFactory { - private static final String CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY = - "answer_hint_answered_threshold"; + @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) + static final String CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY = "answer_hint_answered_threshold"; + @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) static final String CONFIG_ANSWER_HINT_WHITELISTED_DEVICES_KEY = "answer_hint_whitelisted_devices"; @@ -58,12 +58,7 @@ public class AnswerHintFactory { @NonNull public AnswerHint create(Context context, long puckUpDuration, long puckUpDelay) { - - if (shouldShowAnswerHint( - context, - ConfigProviderBindings.get(context), - DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context), - Build.PRODUCT)) { + if (shouldShowAnswerHint(context, Build.PRODUCT)) { return new DotAnswerHint(context, puckUpDuration, puckUpDelay); } @@ -84,24 +79,23 @@ public class AnswerHintFactory { } @VisibleForTesting - static boolean shouldShowAnswerHint( - Context context, - ConfigProvider configProvider, - SharedPreferences sharedPreferences, - String device) { + static boolean shouldShowAnswerHint(Context context, String device) { if (AccessibilityUtil.isTouchExplorationEnabled(context)) { return false; } // Devices that has the legacy dialer installed are whitelisted as they are likely to go through // a UX change during updates. - if (!isDeviceWhitelisted(device, configProvider)) { + if (!isDeviceWhitelisted(context, device)) { return false; } // If the user has gone through the process a few times we can assume they have learnt the // method. - int answeredCount = sharedPreferences.getInt(ANSWERED_COUNT_PREFERENCE_KEY, 0); - long threshold = configProvider.getLong(CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY, 3); + int answeredCount = + DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context) + .getInt(ANSWERED_COUNT_PREFERENCE_KEY, 0); + long threshold = + ConfigProviderBindings.get(context).getLong(CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY, 3); LogUtil.i( "AnswerHintFactory.shouldShowAnswerHint", "answerCount: %d, threshold: %d", @@ -115,8 +109,8 @@ public class AnswerHintFactory { * @param configProvider should provide a list of devices quoted with '/' concatenated to a * string. */ - private static boolean isDeviceWhitelisted(String device, ConfigProvider configProvider) { - return configProvider + private static boolean isDeviceWhitelisted(Context context, String device) { + return ConfigProviderBindings.get(context) .getString(CONFIG_ANSWER_HINT_WHITELISTED_DEVICES_KEY, DEFAULT_WHITELISTED_DEVICES_CSV) .contains("/" + device + "/"); } diff --git a/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java b/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java index 21154cadeb138abf8fdce16b467924981cad5ef0..05358d8315511acd455a9828e838e6c22e6ec824 100644 --- a/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java +++ b/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java @@ -24,7 +24,9 @@ import android.os.Build.VERSION_CODES; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import com.android.dialer.common.Assert; +import com.android.dialer.common.LogUtil; import com.android.dialer.util.DialerUtils; +import com.android.incallui.answer.impl.hint.PawSecretCodeListener.PawType; /** Decrypt the event payload to be shown if in a specific time range and the key is received. */ @TargetApi(VERSION_CODES.M) @@ -40,10 +42,25 @@ public final class PawImageLoaderImpl implements PawImageLoader { if (!preferences.getBoolean(PawSecretCodeListener.PAW_ENABLED_WITH_SECRET_CODE_KEY, false)) { return null; } - int drawableId = preferences.getInt(PawSecretCodeListener.PAW_DRAWABLE_ID_KEY, 0); - if (drawableId == 0) { - return null; + @PawType + int pawType = + preferences.getInt(PawSecretCodeListener.PAW_TYPE, PawSecretCodeListener.PAW_TYPE_INVALID); + + if (pawType == PawSecretCodeListener.PAW_TYPE_INVALID) { + LogUtil.i("PawImageLoaderImpl.loadPayload", "paw type not found, rerolling"); + PawSecretCodeListener.selectPawType(preferences); + pawType = + preferences.getInt( + PawSecretCodeListener.PAW_TYPE, PawSecretCodeListener.PAW_TYPE_INVALID); + } + + switch (pawType) { + case PawSecretCodeListener.PAW_TYPE_CAT: + return context.getDrawable(R.drawable.cat_paw); + case PawSecretCodeListener.PAW_TYPE_DOG: + return context.getDrawable(R.drawable.dog_paw); + default: + throw Assert.createAssertionFailException("unknown paw type " + pawType); } - return context.getDrawable(drawableId); } } diff --git a/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java b/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java index a8737c3634b21ad0b9b532b92a9999f04c24c03e..3b4512c4fa29e1cb6f0854d5d166fda9a91e14ab 100644 --- a/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java +++ b/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java @@ -20,7 +20,7 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; -import android.preference.PreferenceManager; +import android.support.annotation.IntDef; import android.support.annotation.VisibleForTesting; import android.text.TextUtils; import android.widget.Toast; @@ -29,6 +29,7 @@ import com.android.dialer.common.ConfigProviderBindings; import com.android.dialer.common.LogUtil; import com.android.dialer.logging.DialerImpression.Type; import com.android.dialer.logging.Logger; +import com.android.dialer.util.DialerUtils; import java.util.Random; /** @@ -40,7 +41,20 @@ public class PawSecretCodeListener extends BroadcastReceiver { static final String CONFIG_PAW_SECRET_CODE = "paw_secret_code"; public static final String PAW_ENABLED_WITH_SECRET_CODE_KEY = "paw_enabled_with_secret_code"; - public static final String PAW_DRAWABLE_ID_KEY = "paw_drawable_id"; + + /** Which paw to show, must be {@link PawType} */ + public static final String PAW_TYPE = "paw_type"; + + /** Resource id is not stable across app versions. Use {@link #PAW_TYPE} instead. */ + @Deprecated public static final String PAW_DRAWABLE_ID_KEY = "paw_drawable_id"; + + /** Enum for all paws. */ + @IntDef({PAW_TYPE_INVALID, PAW_TYPE_CAT, PAW_TYPE_DOG}) + @interface PawType {} + + public static final int PAW_TYPE_INVALID = 0; + public static final int PAW_TYPE_CAT = 1; + public static final int PAW_TYPE_DOG = 2; @Override public void onReceive(Context context, Intent intent) { @@ -54,7 +68,8 @@ public class PawSecretCodeListener extends BroadcastReceiver { if (!TextUtils.equals(secretCode, host)) { return; } - SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); + SharedPreferences preferences = + DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context); boolean wasEnabled = preferences.getBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, false); if (wasEnabled) { preferences.edit().putBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, false).apply(); @@ -62,20 +77,24 @@ public class PawSecretCodeListener extends BroadcastReceiver { Logger.get(context).logImpression(Type.EVENT_ANSWER_HINT_DEACTIVATED); LogUtil.i("PawSecretCodeListener.onReceive", "PawAnswerHint disabled"); } else { - int drawableId; - if (new Random().nextBoolean()) { - drawableId = R.drawable.cat_paw; - } else { - drawableId = R.drawable.dog_paw; - } - preferences - .edit() - .putBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, true) - .putInt(PAW_DRAWABLE_ID_KEY, drawableId) - .apply(); + selectPawType(preferences); Toast.makeText(context, R.string.event_activated, Toast.LENGTH_SHORT).show(); Logger.get(context).logImpression(Type.EVENT_ANSWER_HINT_ACTIVATED); LogUtil.i("PawSecretCodeListener.onReceive", "PawAnswerHint enabled"); } } + + public static void selectPawType(SharedPreferences preferences) { + @PawType int pawType; + if (new Random().nextBoolean()) { + pawType = PAW_TYPE_CAT; + } else { + pawType = PAW_TYPE_DOG; + } + preferences + .edit() + .putBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, true) + .putInt(PAW_TYPE, pawType) + .apply(); + } } diff --git a/java/com/android/incallui/answer/impl/res/values-af/strings.xml b/java/com/android/incallui/answer/impl/res/values-af/strings.xml index 82a87963d7f82b6625a1023c846b9ab7b16ccc41..b155ee8745a00aa5c79f2757c5fecc6786d2726b 100644 --- a/java/com/android/incallui/answer/impl/res/values-af/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-af/strings.xml @@ -1,4 +1,20 @@ + + "Swiep vanaf ikoon om met boodskap af te wys" @@ -20,5 +36,5 @@ "Antwoord en beëindig die voortgesette oproep" "Video is af" "Swiep op met twee vingers om te antwoord. Swiep af met twee vingers om af te wys." - "Dringend" + "Belangrik" diff --git a/java/com/android/incallui/answer/impl/res/values-am/strings.xml b/java/com/android/incallui/answer/impl/res/values-am/strings.xml index 40869773ee71294b0bc3fbe47e9db6d64fc73996..c27705fd2db90c2307f461638d15dc561250ac42 100644 --- a/java/com/android/incallui/answer/impl/res/values-am/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-am/strings.xml @@ -1,4 +1,20 @@ + + "በመልዕክት ላለመቀበል ከአዶ ያንሸራቱ" @@ -20,5 +36,5 @@ "ይመልሱ እና በመካሄድ ላይ ያለ ጥሪን ይጨርሱ" "ቪዲዮ ጠፍቷል" "ለመመለስ በሁለት ጣት ወደ ላይ ያንሸራቱ። ላለመቀበል በሁለት ጣት ወደ ታች ያንሸራቱ።" - "አስቸኳይ" + "አስፈላጊ" diff --git a/java/com/android/incallui/answer/impl/res/values-ar/strings.xml b/java/com/android/incallui/answer/impl/res/values-ar/strings.xml index fc29c16fae7c8a889f2a657c73af85746797028a..e3f84fff5dab90e01f44d20fc135a5d3a4950b19 100644 --- a/java/com/android/incallui/answer/impl/res/values-ar/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ar/strings.xml @@ -1,4 +1,20 @@ + + "تمرير سريع من الرمز للرفض مع إرسال رسالة" @@ -20,5 +36,5 @@ "الرد وإنهاء مكالمة جارية" "الفيديو قيد إيقاف التشغيل" "مرر بأصبعين لأعلى للرد. مرر بأصبعين لأسفل للرفض." - "عاجل" + "مهم" diff --git a/java/com/android/incallui/answer/impl/res/values-az/strings.xml b/java/com/android/incallui/answer/impl/res/values-az/strings.xml index fff561de3c4cfab8e148e7c993b04c3817971e2d..5d113b48d106271c4e702bdeadc6ac15dd56163d 100644 --- a/java/com/android/incallui/answer/impl/res/values-az/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-az/strings.xml @@ -1,4 +1,20 @@ + + "Mesaj göndərərək imtina etmək üçün ikonadan sürüşdürün" @@ -20,5 +36,5 @@ "Cavab verin və gedən zəngi bitirin" "Videoları deaktivdir" "Cavab vermək üçün iki barmaq ilə yuxarı sürüşdürün. İmtina etmək üçün iki barmaq ilə aşağı sürüşdürün." - "Vacib" + "Önəmli" diff --git a/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml index 7b29bfa66a166bc77962ef7befade25ff865c83e..3acc576d995fcfa547854e92c1e175afc6343036 100644 --- a/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml @@ -1,4 +1,20 @@ + + "Prevucite od ikone da biste odbili porukom" @@ -20,5 +36,5 @@ "Javite se i završite poziv koji je u toku" "Kamera je isključena" "Prevucite nagore pomoću dva prsta da biste odgovorili. Prevucite nadole pomoću dva prsta da biste odbili." - "Hitno" + "Važno" diff --git a/java/com/android/incallui/answer/impl/res/values-be/strings.xml b/java/com/android/incallui/answer/impl/res/values-be/strings.xml index 228a80f7ffe5eb756f1e0850aa964c7ea3e3bcef..4f34150e6c830418ddf49d4d8bbfb3bfec7b0082 100644 --- a/java/com/android/incallui/answer/impl/res/values-be/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-be/strings.xml @@ -1,4 +1,20 @@ + + "Правядзіце ад значка, каб адхіліць, адправіўшы SMS" @@ -20,5 +36,5 @@ "Адказаць і скончыць бягучы выклік" "Відэа адключана" "Правядзіце двума пальцамі ўверх, каб адказаць; двума пальцамі ўніз – каб адхіліць." - "Тэрмінова" + "Важны" diff --git a/java/com/android/incallui/answer/impl/res/values-bg/strings.xml b/java/com/android/incallui/answer/impl/res/values-bg/strings.xml index 4e9422f00c7e302618a5c0712c5719d47d6695f1..54a5ab9467c9779ee5635285e61356c72e488856 100644 --- a/java/com/android/incallui/answer/impl/res/values-bg/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-bg/strings.xml @@ -1,4 +1,20 @@ + + "Прекарайте пръст от иконата, за да отхвърлите със съобщение" @@ -20,5 +36,5 @@ "Отговор и завършване на текущото обаждане" "Видеото е изключено" "Прекарайте два пръста нагоре за отговаряне, надолу за отхвърляне." - "Спешно" + "Важно" diff --git a/java/com/android/incallui/answer/impl/res/values-bn/strings.xml b/java/com/android/incallui/answer/impl/res/values-bn/strings.xml index 869f7b9ae6df80a1d4bcaa8a32cbfe6d9ec72b28..d2aa4c3f344b58b613af820278f44df0191757ab 100644 --- a/java/com/android/incallui/answer/impl/res/values-bn/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-bn/strings.xml @@ -1,4 +1,20 @@ + + "বার্তা সহ প্রত্যাখ্যান করতে আইকন থেকে সোয়াইপ করুন" @@ -20,5 +36,5 @@ "উত্তর দিন এবং চলছে এমন কল কেটে দিন" "ভিডিও বন্ধ আছে" "উত্তর দিতে উপরের দিকে, প্রত্যাখ্যান করতে নিচের দিকে দুই আঙুল দিয়ে সোয়াইপ করুন৷" - "জরুরি" + "গুরুত্বপূর্ণ" diff --git a/java/com/android/incallui/answer/impl/res/values-bs/strings.xml b/java/com/android/incallui/answer/impl/res/values-bs/strings.xml index b36e178f40789c4afadccc68b5e7de3ec291967a..e175887505c542d0b74207224d0aa77005e7ab84 100644 --- a/java/com/android/incallui/answer/impl/res/values-bs/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-bs/strings.xml @@ -1,4 +1,20 @@ + + "Prevucite preko ikone da odbijete porukom" @@ -20,5 +36,5 @@ "Odgovorite na poziv i završite ga" "Kamera je isključena" "Prevucite pomoću dva prsta prema gore da odgovorite. Prevucite pomoću dva prsta prema dolje da odbijete." - "Hitno" + "Važno" diff --git a/java/com/android/incallui/answer/impl/res/values-ca/strings.xml b/java/com/android/incallui/answer/impl/res/values-ca/strings.xml index 13b3b321a7e9a30a112ff14921bbb70a33a0a348..538e0d3e0db178674740abd363659032216d4d58 100644 --- a/java/com/android/incallui/answer/impl/res/values-ca/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ca/strings.xml @@ -1,4 +1,20 @@ + + "Llisca des de la icona per rebutjar la trucada amb un missatge" @@ -20,5 +36,5 @@ "Respon a la trucada i finalitza l\'actual" "El vídeo està desactivat" "Llisca amb dos dits cap amunt per respondre a la trucada i cap avall per rebutjar-la." - "Urgent" + "Important" diff --git a/java/com/android/incallui/answer/impl/res/values-cs/strings.xml b/java/com/android/incallui/answer/impl/res/values-cs/strings.xml index 6c6903041df797d97e8edaae6166696b69ce034f..626409ead5bdb2aee54405a79fc829e41ce116fe 100644 --- a/java/com/android/incallui/answer/impl/res/values-cs/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-cs/strings.xml @@ -1,4 +1,20 @@ + + "Přejetím prstem od ikony hovor odmítnete a pošlete zprávu" @@ -20,5 +36,5 @@ "Přijmout hovor a ukončit probíhající hovor" "Video je vypnuté" "Přejetím dvěma prsty nahoru hovor přijmete. Přejetím dvěma prsty dolů jej odmítnete." - "Naléhavé" + "Důležité" diff --git a/java/com/android/incallui/answer/impl/res/values-da/strings.xml b/java/com/android/incallui/answer/impl/res/values-da/strings.xml index 3a87d44fe9082e21829bb4e9198e1599d653fe79..3870891169e2d341b491b68769684d7b0603cec3 100644 --- a/java/com/android/incallui/answer/impl/res/values-da/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-da/strings.xml @@ -1,4 +1,20 @@ + + "Stryg fra ikonet for at afvise med en besked" @@ -20,5 +36,5 @@ "Besvar, og afslut det igangværende opkald" "Video er deaktiveret" "Stryg op med to fingre for at besvare. Stryg ned med to fingre for at afvise." - "Haster" + "Vigtigt" diff --git a/java/com/android/incallui/answer/impl/res/values-de/strings.xml b/java/com/android/incallui/answer/impl/res/values-de/strings.xml index f4356d29f765f5f140bcd7ba00ddc3fdd6491b5b..ab3c33cc52d0c21709568e138626d8302cde4e5e 100644 --- a/java/com/android/incallui/answer/impl/res/values-de/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-de/strings.xml @@ -1,4 +1,20 @@ + + "Zum Ablehnen mit Nachricht vom Symbol wegwischen" @@ -20,5 +36,5 @@ "Nimm den Anruf an und beende den aktuellen Anruf" "Video deaktiviert" "Zum Annehmen mit zwei Fingern nach oben wischen. Zum Ablehnen mit zwei Fingern nach unten wischen." - "Dringend" + "Wichtig" diff --git a/java/com/android/incallui/answer/impl/res/values-el/strings.xml b/java/com/android/incallui/answer/impl/res/values-el/strings.xml index 9c9a0f35f86b993b469f2b934187ba8509ddf85f..d847aac54cc9309531b03f2d58baa86d7fe00690 100644 --- a/java/com/android/incallui/answer/impl/res/values-el/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-el/strings.xml @@ -1,4 +1,20 @@ + + "Σύρετε από το εικονίδιο προς τα έξω για απόρριψη του μηνύματος" @@ -20,5 +36,5 @@ "Απάντηση και τερματισμός κλήσης σε εξέλιξη" "Το βίντεο είναι ανενεργό" "Σύρετε με δύο δάχτυλα, προς τα επάνω για απάντηση και προς τα κάτω για απόρριψη." - "Επείγον" + "Σημαντικό" diff --git a/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml b/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml index fb8d156822f92aabac560d91119672ccf03d72bb..fe6aa4607473102c21dc05eb0fa66288b4545973 100644 --- a/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml @@ -1,4 +1,20 @@ + + "Swipe from icon to decline with a message" @@ -20,5 +36,5 @@ "Answer and end ongoing call" "Video is off" "Swipe up with two fingers to answer. Swipe down with two fingers to decline." - "Urgent" + "Important" diff --git a/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml b/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml index fb8d156822f92aabac560d91119672ccf03d72bb..fe6aa4607473102c21dc05eb0fa66288b4545973 100644 --- a/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml @@ -1,4 +1,20 @@ + + "Swipe from icon to decline with a message" @@ -20,5 +36,5 @@ "Answer and end ongoing call" "Video is off" "Swipe up with two fingers to answer. Swipe down with two fingers to decline." - "Urgent" + "Important" diff --git a/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml b/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml index fb8d156822f92aabac560d91119672ccf03d72bb..fe6aa4607473102c21dc05eb0fa66288b4545973 100644 --- a/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml @@ -1,4 +1,20 @@ + + "Swipe from icon to decline with a message" @@ -20,5 +36,5 @@ "Answer and end ongoing call" "Video is off" "Swipe up with two fingers to answer. Swipe down with two fingers to decline." - "Urgent" + "Important" diff --git a/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml b/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml index 14928eeb69d6bd9a3a6c25e8e8817abfa2286a0f..60fcd014ed94de800e3857f8f86f998ef957115c 100644 --- a/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml @@ -1,4 +1,20 @@ + + "Desliza desde el ícono para rechazar la llamada con un mensaje" @@ -20,5 +36,5 @@ "Responder y finalizar la llamada en curso" "El video está desactivado" "Desliza dos dedos hacia arriba para responder la llamada o hacia abajo para rechazarla." - "Urgente" + "Importante" diff --git a/java/com/android/incallui/answer/impl/res/values-es/strings.xml b/java/com/android/incallui/answer/impl/res/values-es/strings.xml index 972bbc503f6ce6301cfbd242efdca3805e790013..7b2f19a812d37b567cfcd6c9780b6e7da05a4251 100644 --- a/java/com/android/incallui/answer/impl/res/values-es/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-es/strings.xml @@ -1,4 +1,20 @@ + + "Desliza desde el icono para rechazar con mensaje" @@ -20,5 +36,5 @@ "Responder a una llamada y finalizar otra en curso" "El vídeo está desconectado" "Desliza dos dedos hacia arriba para responder o hacia abajo para rechazar la llamada." - "Urgente" + "Importante" diff --git a/java/com/android/incallui/answer/impl/res/values-et/strings.xml b/java/com/android/incallui/answer/impl/res/values-et/strings.xml index 9e303bb16427c4215d15b2e777f874b97e0237f2..b4632d1844f8e924b6739e921478e835b2aea5d3 100644 --- a/java/com/android/incallui/answer/impl/res/values-et/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-et/strings.xml @@ -1,4 +1,20 @@ + + "Sõnumiga keeldumiseks pühkige ikoonilt eemale" @@ -20,5 +36,5 @@ "Vastake ja lõpetage käimasolev kõne" "Video on välja lülitatud" "Vastamiseks pühkige kahe sõrmega üles. Keeldumiseks pühkige kahe sõrmega alla." - "Kiireloomuline" + "Tähtis" diff --git a/java/com/android/incallui/answer/impl/res/values-eu/strings.xml b/java/com/android/incallui/answer/impl/res/values-eu/strings.xml index a1f6d717d7a2286513ccbe726ace59e4d89c4a42..118a2c74d33c70d6dc140722f4a0f98b2e6b66dd 100644 --- a/java/com/android/incallui/answer/impl/res/values-eu/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-eu/strings.xml @@ -1,4 +1,20 @@ + + "Pasatu hatza ikonotik baztertzeko eta mezu bat bidaltzeko" @@ -20,5 +36,5 @@ "Erantzun eta amaitu uneko deia" "Desaktibatuta dago kamera" "Pasatu bi hatz gora erantzuteko; eta behera, baztertzeko." - "Premiazkoa" + "Garrantzitsua" diff --git a/java/com/android/incallui/answer/impl/res/values-fa/strings.xml b/java/com/android/incallui/answer/impl/res/values-fa/strings.xml index 28cf826197b394b9134dbfbeb01bd0ef709252e4..971b172ef634c83a20435a40c34ef858ff653d71 100644 --- a/java/com/android/incallui/answer/impl/res/values-fa/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-fa/strings.xml @@ -1,4 +1,20 @@ + + "برای رد کردن با ارسال پیام، انگشتتان را تند از روی نماد بکشید" @@ -20,5 +36,5 @@ "پاسخ دادن به تماس درحال انجام و پایان دادن به آن" "ویدیو خاموش است" "برای پاسخ‌گویی، دو انگشتتان را تند به بالا بکشید و برای رد کردن به پایین بکشید." - "فوری" + "مهم" diff --git a/java/com/android/incallui/answer/impl/res/values-fi/strings.xml b/java/com/android/incallui/answer/impl/res/values-fi/strings.xml index 8b8eac942f20c7c6996d107ddef4151c261d63aa..7ae9a1f875772562c634c39eaf9bbd16b93c0c97 100644 --- a/java/com/android/incallui/answer/impl/res/values-fi/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-fi/strings.xml @@ -1,4 +1,20 @@ + + "Hylkää ja kirjoita viesti pyyhkäisemällä kuvaketta." @@ -20,5 +36,5 @@ "Vastaa puheluun ja lopeta nykyinen puhelu" "Videokuva ei ole käytössä." "Vastaa pyyhkäisemällä ylös kahdella sormella. Hylkää pyyhkäisemällä alas kahdella sormella." - "Kiireellinen" + "Tärkeä" diff --git a/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml b/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml index 9ea27b89cdbb67963b2a896364c888c7d31a395b..ce454b5ce045a56b887132378cece77e0b31f4ef 100644 --- a/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml @@ -1,4 +1,20 @@ + + "Balayez à partir de l\'icône pour refuser avec un message" @@ -20,5 +36,5 @@ "Répondre et mettre fin à l\'appel en cours" "La vidéo est désactivée" "Balayez vers le haut avec deux doigts pour répondre. Balayez vers le bas avec deux doigts pour refuser." - "Urgent" + "Important" diff --git a/java/com/android/incallui/answer/impl/res/values-fr/strings.xml b/java/com/android/incallui/answer/impl/res/values-fr/strings.xml index 3aa3c12c92ca304da5a54e656f110731a02612df..7f77ed0c812631774b419e02919689d72dd82626 100644 --- a/java/com/android/incallui/answer/impl/res/values-fr/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-fr/strings.xml @@ -1,4 +1,20 @@ + + "Appuyer sur l\'icône, puis balayer l\'écran pour refuser l\'appel en envoyant un message" @@ -20,5 +36,5 @@ "Répondre ou mettre fin à l\'appel en cours" "La vidéo est désactivée." "Balayez l\'écran avec deux doigts vers le haut pour répondre, ou vers le bas pour refuser l\'appel." - "Urgent" + "Importants" diff --git a/java/com/android/incallui/answer/impl/res/values-gl/strings.xml b/java/com/android/incallui/answer/impl/res/values-gl/strings.xml index 16c0f6969c5e6f34a127954b97fe186e843b6ff1..07e0c516de29c1023510b1f7a8cf1127429792d5 100644 --- a/java/com/android/incallui/answer/impl/res/values-gl/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-gl/strings.xml @@ -1,4 +1,20 @@ + + "Pasar o dedo desde a icona para rexeitar cunha mensaxe" @@ -20,5 +36,5 @@ "Responde á chamada entrante e finaliza a chamada en curso" "O vídeo está desactivado" "Pasa dous dedos cara arriba para responder a chamada ou cara abaixo para rexeitala." - "Urxente" + "Importante" diff --git a/java/com/android/incallui/answer/impl/res/values-gu/strings.xml b/java/com/android/incallui/answer/impl/res/values-gu/strings.xml index 3f99c7108a0cc8b121753a144a6a095d9e08464a..845e9def8a95752300c61c52bf9d4aa71146d974 100644 --- a/java/com/android/incallui/answer/impl/res/values-gu/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-gu/strings.xml @@ -1,4 +1,20 @@ + + "સંદેશ સાથે નકારવા માટે આઇકનથી સ્વાઇપ કરો" @@ -20,5 +36,5 @@ "જવાબ આપો અને ચાલુ કૉલ સમાપ્ત કરો" "વિડિઓ બંધ છે" "જવાબ આપવા માટે બે આંગળી ઉપર સ્વાઇપ કરો. નકારવા માટે બે આંગળી નીચે સ્વાઇપ કરો." - "તાત્કાલિક" + "મહત્વપૂર્ણ" diff --git a/java/com/android/incallui/answer/impl/res/values-hi/strings.xml b/java/com/android/incallui/answer/impl/res/values-hi/strings.xml index f28505f7c1988c66233635c8442de0c3cb554fa1..e8e3c75c4237463bb65bd819f0f88a89fe1f098c 100644 --- a/java/com/android/incallui/answer/impl/res/values-hi/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-hi/strings.xml @@ -1,4 +1,20 @@ + + "संदेश के साथ अस्वीकार करने के लिए आइकन से स्वाइप करें" @@ -20,5 +36,5 @@ "कॉल का जवाब दें और जारी कॉल समाप्त करें" "वीडियो बंद है" "जवाब देने के लिए दो अंगुलियों से ऊपर स्वाइप करें. अस्वीकार करने के लिए दो अंगुलियों से नीचे स्वाइप करें." - "बहुत ज़रूरी" + "महत्वपूर्ण" diff --git a/java/com/android/incallui/answer/impl/res/values-hr/strings.xml b/java/com/android/incallui/answer/impl/res/values-hr/strings.xml index 28074397622e387cc0ce6877c9978bc9af37e868..ffd0c9b8cbc19bf1fa090401c54faad3fa043308 100644 --- a/java/com/android/incallui/answer/impl/res/values-hr/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-hr/strings.xml @@ -1,4 +1,20 @@ + + "Prijeđite prstom od ikone da biste odbili poruku" @@ -20,5 +36,5 @@ "Odgovorite na poziv i prekinite poziv u tijeku" "Videokamera je isključena" "Prijeđite dvama prstima prema gore za odgovor, a dvama prstima prema dolje za odbijanje." - "Hitno" + "Važno" diff --git a/java/com/android/incallui/answer/impl/res/values-hu/strings.xml b/java/com/android/incallui/answer/impl/res/values-hu/strings.xml index d7dacbfe0a35e37772f5ee1eec5ee40d27d87a3b..13ec7da173087f0baebdbc19682bf8f79beedf6b 100644 --- a/java/com/android/incallui/answer/impl/res/values-hu/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-hu/strings.xml @@ -1,4 +1,20 @@ + + "Csúsztassa el az ujját az ikonról az üzenettel való elutasításhoz" @@ -20,5 +36,5 @@ "Hívásfogadás és a folyamatban lévő hívás befejezése" "A videokép ki van kapcsolva" "Csúsztassa felfelé két ujját a hívás fogadásához. Csúsztassa lefelé két ujját a hívás elutasításához." - "Sürgős" + "Fontos" diff --git a/java/com/android/incallui/answer/impl/res/values-hy/strings.xml b/java/com/android/incallui/answer/impl/res/values-hy/strings.xml index 4492833d98e5ac8fde019904f5ed8a5de9c68cb8..7fb7ef45f21e3cc7f307960d19e142a5744207fc 100644 --- a/java/com/android/incallui/answer/impl/res/values-hy/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-hy/strings.xml @@ -1,4 +1,20 @@ + + "Զանգը մերժելու և հաղորդագրություն ուղարկելու համար պատկերակից մատով մի կողմ սահեցրեք" @@ -20,5 +36,5 @@ "Պատասխանել և ավարտել ընթացիկ զանգը" "Տեսախցիկն անջատած է" "Պատասխանելու համար երկու մատով սահեցրեք վերև, մերժելու համար՝ ներքև:" - "Շտապ" + "Կարևոր" diff --git a/java/com/android/incallui/answer/impl/res/values-in/strings.xml b/java/com/android/incallui/answer/impl/res/values-in/strings.xml index a1fd19f6eb1f255610cb1126431153b1a8a83412..48d71af9a6b7af2b2e9ffca2f1817beec8bb05c0 100644 --- a/java/com/android/incallui/answer/impl/res/values-in/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-in/strings.xml @@ -1,4 +1,20 @@ + + "Gesek dari ikon untuk menolak dengan pesan" @@ -20,5 +36,5 @@ "Menjawab dan mengakhiri panggilan yang sedang berlangsung" "Video nonaktif" "Geser ke atas dengan dua jari untuk menjawab. Geser ke bawah dengan dua jari untuk menolak." - "Penting" + "Penting" diff --git a/java/com/android/incallui/answer/impl/res/values-is/strings.xml b/java/com/android/incallui/answer/impl/res/values-is/strings.xml index c4f9eb40c04e5f95c7935a292f06e162f822553b..a92a411ee09de61c3667703e8d73392022a036b2 100644 --- a/java/com/android/incallui/answer/impl/res/values-is/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-is/strings.xml @@ -1,4 +1,20 @@ + + "Strjúktu frá tákninu til að hafna með skilaboðum" @@ -20,5 +36,5 @@ "Svara og ljúka yfirstandandi símtali" "Slökkt á myndavél" "Strjúktu upp með tveimur fingrum til að svara. Strjúktu niður með tveimur fingrum til að hafna." - "Áríðandi" + "Mikilvægt" diff --git a/java/com/android/incallui/answer/impl/res/values-it/strings.xml b/java/com/android/incallui/answer/impl/res/values-it/strings.xml index 70e972212456c86ab82f8142dab6f47dc968b0ef..b29bca7c86742e36670e14416a1cfbc22f847ce0 100644 --- a/java/com/android/incallui/answer/impl/res/values-it/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-it/strings.xml @@ -1,4 +1,20 @@ + + "Fai scorrere dall\'icona per rifiutare e inviare un messaggio" @@ -20,5 +36,5 @@ "Rispondi e termina la chiamata in corso" "Il video è disattivato" "Fai scorrere con due dita verso l\'alto per rispondere e verso il basso per rifiutare." - "Urgente" + "Importante" diff --git a/java/com/android/incallui/answer/impl/res/values-iw/strings.xml b/java/com/android/incallui/answer/impl/res/values-iw/strings.xml index 08c02e3895d7dbd25cc0e60952a51589406b5c0f..6544e8f3cf56cc447e20e121f5bb4ee84d2a655c 100644 --- a/java/com/android/incallui/answer/impl/res/values-iw/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-iw/strings.xml @@ -1,4 +1,20 @@ + + "החלק מהסמל כדי לדחות עם הודעה" @@ -20,5 +36,5 @@ "מענה וסיום שיחה" "הווידאו מושבת" "החלק עם שתי אצבעות למעלה כדי לענות או למטה כדי לדחות." - "דחופה" + "חשוב" diff --git a/java/com/android/incallui/answer/impl/res/values-ja/strings.xml b/java/com/android/incallui/answer/impl/res/values-ja/strings.xml index b7bd65bc45c0e64718aba5ccb4762963585aa73b..83f8f094a737a2590d7a0b24d9237a5323c6568b 100644 --- a/java/com/android/incallui/answer/impl/res/values-ja/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ja/strings.xml @@ -1,4 +1,20 @@ + + "アイコンをスワイプして着信を拒否し、メッセージを送信" @@ -20,5 +36,5 @@ "通話に応答し、進行中の通話を終了" "ビデオ: OFF" "応答するには 2 本の指で上にスワイプ、拒否するには 2 本の指で下にスワイプします。" - "緊急" + "重要" diff --git a/java/com/android/incallui/answer/impl/res/values-ka/strings.xml b/java/com/android/incallui/answer/impl/res/values-ka/strings.xml index 681306776f7b13f58cee876f211a8e5aee7ecdb1..4a1120c6936aec75e84e6ef8c1f20d81c5fdf552 100644 --- a/java/com/android/incallui/answer/impl/res/values-ka/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ka/strings.xml @@ -1,4 +1,20 @@ + + "გადაუსვით ხატულადან შეტყობინებით უარყოფისთვის" @@ -20,5 +36,5 @@ "პასუხი და მიმდინარე ზარის დასრულება" "ვიდეო გამორთულია" "საპასუხოდ გადაფურცლეთ ზემოთ ორი თითით. უარყოფისთვის გადაფურცლეთ ქვემოთ ორი თითით." - "სასწრაფო" + "მნიშვნელოვანი" diff --git a/java/com/android/incallui/answer/impl/res/values-kk/strings.xml b/java/com/android/incallui/answer/impl/res/values-kk/strings.xml index 3d1863323e4dda0ad4f3d25e376a2e9631f1e538..69cf9497dd72bd7f7b7a33ba92588396e6c97553 100644 --- a/java/com/android/incallui/answer/impl/res/values-kk/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-kk/strings.xml @@ -1,4 +1,20 @@ + + "Қабылдамай, жай хабар жіберу үшін, белгішеден әрі қарай сырғытыңыз" @@ -20,5 +36,5 @@ "Қоңырауға жауап беру және ағымдағы қоңырауды аяқтау" "Бейне өшірулі" "Жауап беру үшін екі саусақпен жоғары сырғытылады. Қабылдамау үшін екі саусақпен төмен сырғытылады." - "Шұғыл" + "Маңызды" diff --git a/java/com/android/incallui/answer/impl/res/values-km/strings.xml b/java/com/android/incallui/answer/impl/res/values-km/strings.xml index 89f9031e971d8d9f3006f942d05f7f1364feb673..db65a97f5280c5591b6efd372a9ed2773b357301 100644 --- a/java/com/android/incallui/answer/impl/res/values-km/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-km/strings.xml @@ -1,4 +1,20 @@ + + "អូស​ចេញ​ពី​រូបតំណាង​ដើម្បី​បដិសេធ​​ដោយ​មាន​សារ" @@ -20,5 +36,5 @@ "ឆ្លើយ និង​បញ្ចប់​ការ​ហៅ​ទូរសព្ទ​ដែល​កំពុង​ដំណើរការ" "វីដេអូត្រូវបានបិទ" "អូស​ម្រាម​ដៃ​ពីរ​ឡើងលើ​ ដើម្បី​ឆ្លើយ។ អូស​ម្រាមដៃ​ពីរ​ចុះ​ក្រោម​ ដើម្បី​បដិសេធ។" - "បន្ទាន់" + "សំខាន់" diff --git a/java/com/android/incallui/answer/impl/res/values-kn/strings.xml b/java/com/android/incallui/answer/impl/res/values-kn/strings.xml index f02a6b8a347b9c07ace6c3f5553078464ca87358..8426aef46761b481e752074efb503188222b838a 100644 --- a/java/com/android/incallui/answer/impl/res/values-kn/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-kn/strings.xml @@ -1,4 +1,20 @@ + + "ಸಂದೇಶದ ಜೊತೆಗೆ ನಿರಾಕರಿಸಲು ಐಕಾನ್‌ನಿಂದ ಸ್ವೈಪ್ ಮಾಡಿ" @@ -20,5 +36,5 @@ "ಚಾಲ್ತಿಯಲ್ಲಿರುವ ಕರೆಗೆ ಉತ್ತರಿಸಿ ಮತ್ತು ಅಂತ್ಯಗೊಳಿಸಿ" "ವೀಡಿಯೊ ಆಫ್ ಆಗಿದೆ" "ಉತ್ತರಿಸಲು ಎರಡು ಬೆರಳಿನಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ. ನಿರಾಕರಿಸಲು ಎರಡು ಬೆರಳಿನಿಂದ ಕೆಳಗೆ ಸ್ವೈಪ್ ಮಾಡಿ." - "ತುರ್ತು" + "ಪ್ರಮುಖ" diff --git a/java/com/android/incallui/answer/impl/res/values-ko/strings.xml b/java/com/android/incallui/answer/impl/res/values-ko/strings.xml index 850b4400767d793a4e1476b24b93162312faec39..6b6beff85815de1469423b76743b4381bf753cf0 100644 --- a/java/com/android/incallui/answer/impl/res/values-ko/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ko/strings.xml @@ -1,4 +1,20 @@ + + "메시지를 거부하려면 아이콘에서 스와이프하세요." @@ -20,5 +36,5 @@ "현재 통화를 종료하고 전화 받기" "동영상이 꺼져 있습니다." "받으려면 두 손가락을 위로 스와이프하고 거부하려면 두 손가락을 아래로 스와이프하세요." - "긴급" + "중요" diff --git a/java/com/android/incallui/answer/impl/res/values-ky/strings.xml b/java/com/android/incallui/answer/impl/res/values-ky/strings.xml index dc08e8449beb871bdc816a829575f5e162fd1761..6dd5a2dd75fb117cb508bd43e9f90f14d87c015f 100644 --- a/java/com/android/incallui/answer/impl/res/values-ky/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ky/strings.xml @@ -1,4 +1,20 @@ + + "Чалууну билдирүү менен четке кагуу үчүн сүрөтчөнү сүрүңүз" @@ -20,5 +36,5 @@ "Чалууга жооп бериңиз же учурдагы чалууну аяктаңыз" "Видео өчүк" "Жооп берүү үчүн экранды өйдө сүрүп, четке кагуу үчүн ылдый сүрүп коюңуз." - "Шашылыш" + "Маанилүү" diff --git a/java/com/android/incallui/answer/impl/res/values-lo/strings.xml b/java/com/android/incallui/answer/impl/res/values-lo/strings.xml index 06ad00c884582e7a17f1326fcbe31e39c64304de..776c027b528fd443ebda9049962ce2a0621f1fe1 100644 --- a/java/com/android/incallui/answer/impl/res/values-lo/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-lo/strings.xml @@ -1,4 +1,20 @@ + + "ປັດຈາກໄອຄອນເພື່ອປະຕິເສດຂໍ້ຄວາມ" @@ -20,5 +36,5 @@ "ຮັບສາຍ ແລະ ວາງສາຍທີ່ກຳລັງໂທອອກ" "ວິດີໂອປິດຢູ່" "ປັດສອງນິ້ວຂຶ້ນເພື່ອຮັບສາຍ. ປັດສອງນິ້ວລົງເພື່ອປະຕິເສດ." - "ດ່ວນ" + "ສຳຄັນ" diff --git a/java/com/android/incallui/answer/impl/res/values-lt/strings.xml b/java/com/android/incallui/answer/impl/res/values-lt/strings.xml index 3366e337b5df813a3536722e36429b87a13818a2..2ef70eaff077b06852f242ec5d96a5205864650d 100644 --- a/java/com/android/incallui/answer/impl/res/values-lt/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-lt/strings.xml @@ -1,4 +1,20 @@ + + "Perbraukite iš piktogramos, kad atmestumėte išsiųsdami pranešimą" @@ -20,5 +36,5 @@ "Atsakykite ir užbaikite vykstantį skambutį" "Vaizdas išjungtas" "Perbraukite dviem pirštais aukštyn, kad atsakytumėte. Perbraukite dviem pirštais žemyn, kad atmestumėte." - "Skubus" + "Svarbu" diff --git a/java/com/android/incallui/answer/impl/res/values-lv/strings.xml b/java/com/android/incallui/answer/impl/res/values-lv/strings.xml index 49d1dc9f4631e9ced5a8111989c6edf217c229ed..3fc754db4c17d2d0018086032cf77386f5242487 100644 --- a/java/com/android/incallui/answer/impl/res/values-lv/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-lv/strings.xml @@ -1,4 +1,20 @@ + + "Lai noraidītu, izmantojot ziņojumu, velciet no ikonas" @@ -20,5 +36,5 @@ "Atbildiet un beidziet notiekošo zvanu" "Video ir izslēgts" "Ar diviem pirkstiem velciet augšup, lai atbildētu. Ar diviem pirkstiem velciet lejup, lai noraidītu." - "Steidzams" + "Svarīgs" diff --git a/java/com/android/incallui/answer/impl/res/values-mk/strings.xml b/java/com/android/incallui/answer/impl/res/values-mk/strings.xml index c068f665b96e4c41533c386529060c25d72df7d1..deeba45e60172031e9be1947f7f519bd2d07e26d 100644 --- a/java/com/android/incallui/answer/impl/res/values-mk/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-mk/strings.xml @@ -1,4 +1,20 @@ + + "Повлечете од иконата за да одбиете со порака" @@ -20,5 +36,5 @@ "Одговорете и завршете го тековниот повик" "Видеото е исклучено" "Повлечете нагоре со два прста за да одговорите. Повлечете надолу со два прста за да одбиете." - "Итно" + "Важно" diff --git a/java/com/android/incallui/answer/impl/res/values-ml/strings.xml b/java/com/android/incallui/answer/impl/res/values-ml/strings.xml index 8e1d492e7dc1e9cfd92e1026ee6d7b548948b2ac..d8ce90dab0a63dd34376d75ad52f62e7c1ddfc49 100644 --- a/java/com/android/incallui/answer/impl/res/values-ml/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ml/strings.xml @@ -1,4 +1,20 @@ + + "സന്ദേശമയച്ചുകൊണ്ട് നിരസിക്കാൻ ഐക്കണിൽ നിന്ന് സ്വൈപ്പുചെയ്യുക" @@ -20,5 +36,5 @@ "മറുപടി നൽകുകയും നിലവിലുള്ള കോൾ അവസാനിപ്പിക്കുകയും ചെയ്യൂ" "വീഡിയോ ഓഫാണ്" "മറുപടി നൽകാൻ രണ്ടുവിരലുകൾ ഉപയോഗിച്ച് മുകളിലേക്ക് സ്വൈപ്പുചെയ്യുക. നിരസിക്കാൻ രണ്ടുവിരലുകൾ ഉപയോഗിച്ച് താഴേക്ക് സ്വൈപ്പുചെയ്യുക." - "അടിയന്തിര പ്രാധാന്യം" + "പ്രധാനപ്പെട്ടവ" diff --git a/java/com/android/incallui/answer/impl/res/values-mn/strings.xml b/java/com/android/incallui/answer/impl/res/values-mn/strings.xml index 4bdd912adc18b6756396dd3a04856b9eed7dca64..aaa16213a58c9a6ece3cbee9943fb8c8d7303c5a 100644 --- a/java/com/android/incallui/answer/impl/res/values-mn/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-mn/strings.xml @@ -1,4 +1,20 @@ + + "Зурвас явуулангаа татгалзах бол дүрснээс шударна уу" @@ -20,5 +36,5 @@ "Ирсэн дуудлагыг авч, одоогийн дуудлагыг таслах" "Видео идэвхгүй байна" "Хариулах бол хоёр хуруугаар дээш шударна уу. Таслах бол хоёр хуруугаар доош шударна уу." - "Яаралтай" + "Чухал" diff --git a/java/com/android/incallui/answer/impl/res/values-mr/strings.xml b/java/com/android/incallui/answer/impl/res/values-mr/strings.xml index 11c826896bfa356ebbc79aa102c682065fd73189..eea662fa11892abff70e5ae119f9987f248f531e 100644 --- a/java/com/android/incallui/answer/impl/res/values-mr/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-mr/strings.xml @@ -1,4 +1,20 @@ + + "संदेशासह नाकारण्यासाठी आयकॉनपासून स्वाइप करा" @@ -20,5 +36,5 @@ "उत्तर द्या आणि सुरु असलेला कॉल बंद करा" "व्हिडिओ बंद आहे" "उत्तर देण्यासाठी दोन बोटांनी वर स्वाइप करा. नकार देण्यासाठी दोन बोटांनी खाली स्वाइप करा." - "त्वरित" + "महत्त्वाचे" diff --git a/java/com/android/incallui/answer/impl/res/values-ms/strings.xml b/java/com/android/incallui/answer/impl/res/values-ms/strings.xml index 36ede756807eadf37e98ad06e96b433dca9d0aec..04b054e4ef1a38f7d86f2dcb64c2a0be8406aec1 100644 --- a/java/com/android/incallui/answer/impl/res/values-ms/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ms/strings.xml @@ -1,4 +1,20 @@ + + "Leret dari ikon untuk menolak dengan mesej" @@ -20,5 +36,5 @@ "Jawab dan tamatkan panggilan yang sedang berlangsung" "Video dimatikan" "Leret dua jari ke atas untuk menjawab. Leret dua jari ke bawah untuk menolak." - "Segera" + "Penting" diff --git a/java/com/android/incallui/answer/impl/res/values-my/strings.xml b/java/com/android/incallui/answer/impl/res/values-my/strings.xml index 5ad7a8284b408d9ceecd48b4967e6b09acd9e91a..f3d6a2e3818e2be74e3dae6b8404a8e5673d8370 100644 --- a/java/com/android/incallui/answer/impl/res/values-my/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-my/strings.xml @@ -1,4 +1,20 @@ + + "မက်ဆေ့ဂျ်ဖြင့်ငြင်းပယ်ရန် သင်္ကေတမှ ပွတ်ဆွဲပါ" @@ -20,5 +36,5 @@ "ဖြေကြားပြီး လက်ရှိခေါ်ဆိုမှုကို အပြီးသတ်ပါ" "ဗီဒီယို ပိတ်ထားပါသည်" "ဖြေကြားရန် လက်နှစ်ချောင်းဖြင့် အပေါ်သို့ ပွတ်ဆွဲပါ။ ငြင်းပယ်ရန် လက်နှစ်ချောင်းဖြင့် အောက်သို့ ပွတ်ဆွဲပါ။" - "အရေးတကြီး" + "အရေးကြီး" diff --git a/java/com/android/incallui/answer/impl/res/values-nb/strings.xml b/java/com/android/incallui/answer/impl/res/values-nb/strings.xml index b1c32bea44d6cdea75938025d871705ab257ea50..42ff3d0af640216e0aa4da816a590eb5b1d55319 100644 --- a/java/com/android/incallui/answer/impl/res/values-nb/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-nb/strings.xml @@ -1,4 +1,20 @@ + + "Sveip fra ikonet for å avslå med en melding" @@ -20,5 +36,5 @@ "Svar, og avslutt samtalen som er i gang" "Video er av" "Sveip oppover med to fingre for å svare. Sveip nedover med to fingre for å avvise." - "Haster" + "Viktig" diff --git a/java/com/android/incallui/answer/impl/res/values-ne/strings.xml b/java/com/android/incallui/answer/impl/res/values-ne/strings.xml index 40ef7b6e313ce7e90ca0a17b1155b74faa788632..f0b8641af85589c7c44830f480ebb14df99b0963 100644 --- a/java/com/android/incallui/answer/impl/res/values-ne/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ne/strings.xml @@ -1,4 +1,20 @@ + + "सन्देश सहित अस्वीकार गर्न आइकनबाट स्वाइप गर्नुहोस्" @@ -20,5 +36,5 @@ "जवाफ फर्काउनुहोस् र जारी कललाई अन्त्य गर्नुहोस्" "भिडियो निष्क्रिय छ" "जवाफ दिन दुई औंलाले माथितिर स्वाइप गर्नुहोस्। अस्वीकार गर्न दुई औंलाले तलतिर स्वाइप गर्नुहोस्।" - "जरुरी" + "महत्त्वपूर्ण" diff --git a/java/com/android/incallui/answer/impl/res/values-nl/strings.xml b/java/com/android/incallui/answer/impl/res/values-nl/strings.xml index b2f619fa3346c1b34f5ba2abf3c89fc7bc38eeea..89c956a9f811d59166c8d7565154e76616f1dd76 100644 --- a/java/com/android/incallui/answer/impl/res/values-nl/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-nl/strings.xml @@ -1,4 +1,20 @@ + + "Veeg vanaf pictogram om te weigeren met bericht" @@ -20,5 +36,5 @@ "Opnemen en actieve oproep beëindigen" "Video is uit" "Veeg met twee vingers omhoog om te beantwoorden. Veeg met twee vingers omlaag om te weigeren." - "Urgent" + "Belangrijk" diff --git a/java/com/android/incallui/answer/impl/res/values-no/strings.xml b/java/com/android/incallui/answer/impl/res/values-no/strings.xml index b1c32bea44d6cdea75938025d871705ab257ea50..42ff3d0af640216e0aa4da816a590eb5b1d55319 100644 --- a/java/com/android/incallui/answer/impl/res/values-no/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-no/strings.xml @@ -1,4 +1,20 @@ + + "Sveip fra ikonet for å avslå med en melding" @@ -20,5 +36,5 @@ "Svar, og avslutt samtalen som er i gang" "Video er av" "Sveip oppover med to fingre for å svare. Sveip nedover med to fingre for å avvise." - "Haster" + "Viktig" diff --git a/java/com/android/incallui/answer/impl/res/values-pa/strings.xml b/java/com/android/incallui/answer/impl/res/values-pa/strings.xml index d2b14523cdbf0415939dc3166b375cd3048f9617..3772f291f59b54bb4ec22b2d1e686adaa755f263 100644 --- a/java/com/android/incallui/answer/impl/res/values-pa/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-pa/strings.xml @@ -1,4 +1,20 @@ + + "ਸੁਨੇਹੇ ਦੇ ਨਾਲ ਅਸਵੀਕਾਰ ਕਰਨ ਲਈ ਚਿੰਨ੍ਹ ਤੋਂ ਸਵਾਈਪ ਕਰੋ" @@ -20,5 +36,5 @@ "ਜਵਾਬ ਦਿਓ ਅਤੇ ਜਾਰੀ ਕਾਲ ਨੂੰ ਸਮਾਪਤ ਕਰੋ" "ਵੀਡੀਓ ਬੰਦ ਹੈ" "ਜਵਾਬ ਦੇਣ ਲਈ ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ। ਅਸਵੀਕਾਰ ਕਰਨ ਲਈ ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਹੇਠਾਂ ਵੱਲ ਸਵਾਈਪ ਕਰੋ।" - "ਜ਼ਰੂਰੀ" + "ਮਹੱਤਵਪੂਰਨ" diff --git a/java/com/android/incallui/answer/impl/res/values-pl/strings.xml b/java/com/android/incallui/answer/impl/res/values-pl/strings.xml index b0c44e72a1e5a013a3299ab55b4d236e51f608f5..f6e1f1ba4f3645a6ab52b0c8d35e785859f6df98 100644 --- a/java/com/android/incallui/answer/impl/res/values-pl/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-pl/strings.xml @@ -1,4 +1,20 @@ + + "Przesuń palcem od ikony, aby odrzucić połączenie i wysłać wiadomość" @@ -20,5 +36,5 @@ "Odbierz połączenie i zakończ trwającą rozmowę" "Wideo jest wyłączone" "Przesuń dwoma palcami w górę, aby odebrać. Przesuń dwoma palcami w dół, aby odrzucić." - "Pilne" + "Ważne" diff --git a/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml b/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml index fe1c89de41c5a57989675750934075e292ad4241..1ed245140d8490c0ab511fed1ec4d5cd3fb81fc5 100644 --- a/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml @@ -1,4 +1,20 @@ + + "Deslize a partir do ícone para recusar com uma mensagem" @@ -20,5 +36,5 @@ "Atender e encerrar a chamada em andamento" "O vídeo está desativado" "Deslize com dois dedos para cima para atender. Deslize com dois dedos para baixo para recusar." - "Urgente" + "Importante" diff --git a/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml b/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml index 1a23a4a9d25e683629d6a0f73103bdc3ea461188..f1e17a1d9a71256ba49ddee997b33af0609038de 100644 --- a/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml @@ -1,4 +1,20 @@ + + "Deslize rapidamente a partir do ícone para recusar com uma mensagem" @@ -20,5 +36,5 @@ "Atender e terminar uma chamada em curso" "O vídeo está desativado" "Deslize rapidamente com dois dedos para cima para responder. Deslize rapidamente com dois dedos para baixo para recusar." - "Urgente" + "Importante" diff --git a/java/com/android/incallui/answer/impl/res/values-pt/strings.xml b/java/com/android/incallui/answer/impl/res/values-pt/strings.xml index fe1c89de41c5a57989675750934075e292ad4241..1ed245140d8490c0ab511fed1ec4d5cd3fb81fc5 100644 --- a/java/com/android/incallui/answer/impl/res/values-pt/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-pt/strings.xml @@ -1,4 +1,20 @@ + + "Deslize a partir do ícone para recusar com uma mensagem" @@ -20,5 +36,5 @@ "Atender e encerrar a chamada em andamento" "O vídeo está desativado" "Deslize com dois dedos para cima para atender. Deslize com dois dedos para baixo para recusar." - "Urgente" + "Importante" diff --git a/java/com/android/incallui/answer/impl/res/values-ro/strings.xml b/java/com/android/incallui/answer/impl/res/values-ro/strings.xml index 6c8bafa2865375635d567e93df8b2fa406ae72b1..0b1f4f4813b7f1ac1650828f88dcdd3c3433ee4c 100644 --- a/java/com/android/incallui/answer/impl/res/values-ro/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ro/strings.xml @@ -1,4 +1,20 @@ + + "Glisați de pe pictogramă pentru a respinge cu un mesaj" @@ -20,5 +36,5 @@ "Răspundeți și încheiați apelul în curs" "Camera video este dezactivată." "Glisați cu două degete în sus pentru a răspunde și în jos pentru a respinge." - "Urgent" + "Important" diff --git a/java/com/android/incallui/answer/impl/res/values-ru/strings.xml b/java/com/android/incallui/answer/impl/res/values-ru/strings.xml index 67ff06a3477a9770d7177039fe09561e8587ed5e..d1fdcf73e94a86cc73e446c41eb7b55a5b98079e 100644 --- a/java/com/android/incallui/answer/impl/res/values-ru/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ru/strings.xml @@ -1,4 +1,20 @@ + + "Чтобы отклонить вызов и отправить SMS, проведите пальцем от значка" @@ -20,5 +36,5 @@ "Ответить и завершить текущий вызов" "Камера выключена" "Проведите двумя пальцами по экрану вверх, чтобы ответить, или вниз, чтобы отклонить вызов." - "Срочно" + "Важный звонок" diff --git a/java/com/android/incallui/answer/impl/res/values-si/strings.xml b/java/com/android/incallui/answer/impl/res/values-si/strings.xml index ae3c0800895aa3a8cf7f161364823f1fbfbe9d2a..99f4989aa2c903b2423a51e2d735305853c5c2f9 100644 --- a/java/com/android/incallui/answer/impl/res/values-si/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-si/strings.xml @@ -1,4 +1,20 @@ + + "පණිවිඩය සහිතව ප්‍රතික්ෂේප කිරීමට නිරූපකයේ සිට ස්වයිප් කරන්න" @@ -20,5 +36,5 @@ "යන අැමතුමට පිළිතරු දී අවසන් කරන්න" "වීඩියෝව ක්‍රියාවිරහිතයි" "පිළිතුරු දීමට ඇඟිලි දෙකකින් ඉහළට ස්වයිප් කරන්න, ප්‍රතික්ෂේප කිරීමට ඇඟිලි දෙකකින් පහළට ස්වයිප් කරන්න." - "හදිසි" + "වැදගත්" diff --git a/java/com/android/incallui/answer/impl/res/values-sk/strings.xml b/java/com/android/incallui/answer/impl/res/values-sk/strings.xml index 179be7b08ce042967f31afefdfc087c24aa03350..fa00ac4c6ebb1beeea934f982d16465927cf5c93 100644 --- a/java/com/android/incallui/answer/impl/res/values-sk/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-sk/strings.xml @@ -1,4 +1,20 @@ + + "Prejdením prstom od ikony odmietnuť so správou" @@ -20,5 +36,5 @@ "Prijať hovor a ukončiť prebiehajúci hovor" "Video je vypnuté" "Ak chcete hovor prijať, prejdite dvomi prstami nahor. Ak ho chcete odmietnuť, prejdite dvomi prstami nadol." - "Naliehavé" + "Dôležité" diff --git a/java/com/android/incallui/answer/impl/res/values-sl/strings.xml b/java/com/android/incallui/answer/impl/res/values-sl/strings.xml index 5f658be9d9b78f97d72b6d5568700c518155b905..147a098356d4f447930a6a9761b0de0d9d7dba63 100644 --- a/java/com/android/incallui/answer/impl/res/values-sl/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-sl/strings.xml @@ -1,4 +1,20 @@ + + "Povlecite z ikone, da klic zavrnete s sporočilom" @@ -20,5 +36,5 @@ "Sprejmi klic in končaj aktivni klic" "Video je izklopljen" "Z dvema prstoma povlecite navzgor, da sprejmete klic. Z dvema prstoma povlecite navzdol, da zavrnete klic." - "Nujno" + "Pomembno" diff --git a/java/com/android/incallui/answer/impl/res/values-sq/strings.xml b/java/com/android/incallui/answer/impl/res/values-sq/strings.xml index 1de60c9c9b2d9302aeed5889904b8489fd7b6462..e71691af86674a9ad945a1b2861eadf29ea41223 100644 --- a/java/com/android/incallui/answer/impl/res/values-sq/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-sq/strings.xml @@ -1,4 +1,20 @@ + + "Rrëshqit nga ikona për të refuzuar me mesazh" @@ -20,5 +36,5 @@ "Përgjigju dhe mbyll telefonatën në vazhdim" "Videoja është joaktive" "Rrëshqit dy gishta lart për t\'u përgjigjur. Rrëshqit dy gishta poshtë për të refuzuar." - "Urgjente" + "E rëndësishme" diff --git a/java/com/android/incallui/answer/impl/res/values-sr/strings.xml b/java/com/android/incallui/answer/impl/res/values-sr/strings.xml index 4d6ef563606d7d8184d53ac196bea5cbb51d9ed0..c802b0e975d4aa91837632f1e458aeebab112fa7 100644 --- a/java/com/android/incallui/answer/impl/res/values-sr/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-sr/strings.xml @@ -1,4 +1,20 @@ + + "Превуците од иконе да бисте одбили поруком" @@ -20,5 +36,5 @@ "Јавите се и завршите позив који је у току" "Камера је искључена" "Превуците нагоре помоћу два прста да бисте одговорили. Превуците надоле помоћу два прста да бисте одбили." - "Хитно" + "Важно" diff --git a/java/com/android/incallui/answer/impl/res/values-sv/strings.xml b/java/com/android/incallui/answer/impl/res/values-sv/strings.xml index e47b4e0a3217caf8fa6467f7d766a67101effc20..2265dc4c2f4e2ccf9ba13387ef7bcd3a3b1ac092 100644 --- a/java/com/android/incallui/answer/impl/res/values-sv/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-sv/strings.xml @@ -1,4 +1,20 @@ + + "Svep från ikonen för att avvisa med meddelande" @@ -20,5 +36,5 @@ "Svara och avsluta pågående samtal" "Video avstängd" "Dra två fingrar uppåt för att svara och två nedåt för att avvisa." - "Brådskande" + "Viktigt" diff --git a/java/com/android/incallui/answer/impl/res/values-sw/strings.xml b/java/com/android/incallui/answer/impl/res/values-sw/strings.xml index 1e5896662e6ff1ea282d5d694c4387d50ad542c3..26e1b7ab54dc429fa4dc901c3b54c58011f50986 100644 --- a/java/com/android/incallui/answer/impl/res/values-sw/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-sw/strings.xml @@ -1,4 +1,20 @@ + + "Telezesha kidole ukianzia kwenye aikoni ili utume ujumbe wa kukataa" @@ -20,5 +36,5 @@ "Jibu na ukate simu inayoendelea" "Video imezimwa" "Telezesha juu kwa vidole viwili ili uijibu. Telezesha chini kwa vidole viwili ili uikate." - "Dharura" + "Muhimu" diff --git a/java/com/android/incallui/answer/impl/res/values-ta/strings.xml b/java/com/android/incallui/answer/impl/res/values-ta/strings.xml index 847936f5bfdd6360eecf93aca6ef846b96031a9f..453781dae9f0ef9ea4344e3ee20e6cf1ce5db033 100644 --- a/java/com/android/incallui/answer/impl/res/values-ta/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ta/strings.xml @@ -1,4 +1,20 @@ + + "செய்தியுடன் நிராகரிக்க, ஐகானிலிருந்து ஸ்வைப் செய்யவும்" @@ -20,5 +36,5 @@ "உள்வரும் அழைப்பிற்குப் பதிலளித்து, செயலில் உள்ள அழைப்பை முடிக்கும்" "வீடியோ முடக்கப்பட்டுள்ளது" "பதிலளிக்க, இரு விரல்களால் மேலே ஸ்வைப் செய்யவும். நிராகரிக்க, இரு விரல்களால் கீழே ஸ்வைப் செய்யவும்." - "அவசரம்" + "முக்கிய அழைப்பு" diff --git a/java/com/android/incallui/answer/impl/res/values-te/strings.xml b/java/com/android/incallui/answer/impl/res/values-te/strings.xml index abc3902940c15c308b55244721207b68c1884ed2..e0e508768c042155da6d295eab699340ded5f736 100644 --- a/java/com/android/incallui/answer/impl/res/values-te/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-te/strings.xml @@ -1,4 +1,20 @@ + + "సందేశంతో తిరస్కరించడానికి చిహ్నం నుండి స్వైప్ చేయండి" @@ -20,5 +36,5 @@ "సమాధానం ఇస్తుంది మరియు కొనసాగుతున్న కాల్‌ను ముగిస్తుంది" "వీడియో ఆఫ్‌లో ఉంది" "సమాధానం ఇవ్వడానికి రెండు వేళ్లతో పైకి స్వైప్ చేయండి. తిరస్కరించడానికి రెండు వేళ్లతో క్రిందికి స్వైప్ చేయండి." - "అత్యవసరం" + "ముఖ్యమైనది" diff --git a/java/com/android/incallui/answer/impl/res/values-th/strings.xml b/java/com/android/incallui/answer/impl/res/values-th/strings.xml index 54069b3d8a352a494d8133ddfc2e64cfc0bfe0b5..695da74f7f684a536c5e6976807b530fdb0a5277 100644 --- a/java/com/android/incallui/answer/impl/res/values-th/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-th/strings.xml @@ -1,4 +1,20 @@ + + "เลื่อนไอคอนเพื่อปฏิเสธสายด้วยข้อความ" @@ -20,5 +36,5 @@ "รับและวางสาย" "วิดีโอปิดอยู่" "ใช้สองนิ้วเลื่อนขึ้นเพื่อรับสายและเลื่อนลงเพื่อตัดสาย" - "ด่วน" + "สำคัญ" diff --git a/java/com/android/incallui/answer/impl/res/values-tl/strings.xml b/java/com/android/incallui/answer/impl/res/values-tl/strings.xml index 8f87b56052ab5a12262961b6692b47bb7c962ec4..6128d6fad21b63e01888574f614477d7fe69b682 100644 --- a/java/com/android/incallui/answer/impl/res/values-tl/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-tl/strings.xml @@ -1,4 +1,20 @@ + + "I-swipe mula sa icon upang tanggihan gamit ang mensahe" @@ -20,5 +36,5 @@ "Sagutin at tapusin ang kasalukuyang tawag" "Naka-off ang video" "I-swipe nang pataas gamit ang dalawang daliri upang sagutin. I-swipe nang pababa gamit ang dalawang daliri upang tanggihan." - "Apurahan" + "Mahalaga" diff --git a/java/com/android/incallui/answer/impl/res/values-tr/strings.xml b/java/com/android/incallui/answer/impl/res/values-tr/strings.xml index 53f5eb9a91e2abf1b899b90e75f8c56885f0159b..87583c03d0e54cfd2c08bd8c28902dada0f5ed01 100644 --- a/java/com/android/incallui/answer/impl/res/values-tr/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-tr/strings.xml @@ -1,4 +1,20 @@ + + "Mesajla reddetmek için, simgeden hızlıca kaydırın" @@ -20,5 +36,5 @@ "Bir çağrı cevaplanır ve devam eden çağrı sona erdirilir" "Video kapalı" "Cevaplamak için iki parmağınızla hızlıca yukarı kaydırın. Reddetmek içinse iki parmağınızla hızlıca aşağı kaydırın." - "Acil" + "Önemli" diff --git a/java/com/android/incallui/answer/impl/res/values-uk/strings.xml b/java/com/android/incallui/answer/impl/res/values-uk/strings.xml index a0332d377802871fe0d08a461d27fc745b375399..76eb2b0a205b8408a6be5d7de32ab8fa9b442834 100644 --- a/java/com/android/incallui/answer/impl/res/values-uk/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-uk/strings.xml @@ -1,4 +1,20 @@ + + "Проведіть пальцем убік від значка, щоб відхилити з повідомленням" @@ -20,5 +36,5 @@ "Відповісти на виклик, завершивши поточний" "Відео вимкнено" "Проведіть двома пальцями вгору, щоб відповісти, або вниз, щоб відхилити дзвінок." - "Терміново" + "Важливо" diff --git a/java/com/android/incallui/answer/impl/res/values-ur/strings.xml b/java/com/android/incallui/answer/impl/res/values-ur/strings.xml index e1813cbf71a2dca6fc939e3bc320f63e771cb60c..2a44e9083a3b6ecf41771cf32154767cf5d11f66 100644 --- a/java/com/android/incallui/answer/impl/res/values-ur/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ur/strings.xml @@ -1,4 +1,20 @@ + + "پیغام کے ساتھ رد کرنے کیلئے آئیکن سے سوائپ کریں" @@ -20,5 +36,5 @@ "جواب دیں اور جاری کال ختم کریں" "ویڈیو آف ہے" "جواب دینے کیلئے دوانگلیوں کے ساتھ اوپر سوائپ کریں۔ مسترد کرنے کیلئے دو انگلیوں کے ساتھ نیچے سوائپ کریں۔" - "ارجنٹ" + "اہم" diff --git a/java/com/android/incallui/answer/impl/res/values-uz/strings.xml b/java/com/android/incallui/answer/impl/res/values-uz/strings.xml index b83abcce05d70e2d55ba3ad053abbc505bd5a145..f348a499d5471f14e3c22fa034b7e700f09b8c2e 100644 --- a/java/com/android/incallui/answer/impl/res/values-uz/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-uz/strings.xml @@ -1,4 +1,20 @@ + + "Qo‘ng‘iroqni SMS bilan rad etish uchun nishonchadan suring." @@ -20,5 +36,5 @@ "Kiruvchi chaqiruvga javob berish va joriy qo‘ng‘iroqni tugatish" "Kamera o‘chiq" "Chaqiruvga javob berish uchun ikki barmoq bilan tepaga, rad etish uchun ikki barmoq bilan pastga suring." - "Juda muhim" + "Muhim qo‘ng‘iroq" diff --git a/java/com/android/incallui/answer/impl/res/values-vi/strings.xml b/java/com/android/incallui/answer/impl/res/values-vi/strings.xml index 94dd1c386126d27a69ef3f4d74c19a9cfee4b8b7..f4dfa5b1d3b9476dcfebc7e5653e9e5f099002ee 100644 --- a/java/com/android/incallui/answer/impl/res/values-vi/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-vi/strings.xml @@ -1,4 +1,20 @@ + + "Vuốt từ biểu tượng để từ chối kèm thông báo" @@ -20,5 +36,5 @@ "Trả lời và kết thúc cuộc gọi đang diễn ra" "Video đã tắt" "Vuốt hai ngón tay lên để trả lời. Vuốt hai ngón tay xuống để từ chối." - "Khẩn cấp" + "Quan trọng" diff --git a/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml b/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml index fc7ce64096be989c278b3108089fd78265b50f60..9698aa06d43dedf0cb77fde547c65574af5cf006 100644 --- a/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml @@ -1,4 +1,20 @@ + + "滑动图标即可拒接来电并发送信息" @@ -20,5 +36,5 @@ "接听并结束当前通话" "摄像头处于关闭状态" "双指向上滑动即可接听,向下滑动则可拒接。" - "紧急" + "重要" diff --git a/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml b/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml index 97955396f4a0c273bb5cc8a559d9650718b49d2f..81a88151b502aa062ffa79119d6336149e5db87c 100644 --- a/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml @@ -1,4 +1,20 @@ + + "從圖示快速滑動即可透過訊息拒絕" @@ -20,5 +36,5 @@ "接聽及結束進行中的通話" "視像已關閉" "兩指向上滑動可接聽,向下滑動則可拒接。" - "緊急" + "重要事項" diff --git a/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml b/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml index f27e5ae5bbea3b98f55897ac124cf5949746d82a..8f04992d1097c8d064a857e169ee3cdb82f6fdac 100644 --- a/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml @@ -1,4 +1,20 @@ + + "滑動圖示即可拒接來電並傳送簡訊" @@ -20,5 +36,5 @@ "接聽來電及結束進行中的通話" "已關閉攝影機" "用雙指向上滑動可接聽,向下滑動可拒接。" - "緊急" + "重要" diff --git a/java/com/android/incallui/answer/impl/res/values-zu/strings.xml b/java/com/android/incallui/answer/impl/res/values-zu/strings.xml index 52f2400eb39098ff3fbcf49e1cdff713a0366323..23c988eaad4e3b3877ab38edd929d7e4f051dda5 100644 --- a/java/com/android/incallui/answer/impl/res/values-zu/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-zu/strings.xml @@ -1,4 +1,20 @@ + + "Swayipha isithonjana ukuze wenqabe ngomlayezo" @@ -20,5 +36,5 @@ "Phendula uphinde uqede ikholi eqhubekayo" "Ividiyo ivaliwe" "Swayiphela iminwe emibili phezulu ukuze uphendule. Swayiphela iminwe emibili phansi ukuze wenqabe." - "Okuphuthumayo" + "Kubalulekile" diff --git a/java/com/android/incallui/answer/impl/res/values/strings.xml b/java/com/android/incallui/answer/impl/res/values/strings.xml index 235922047422db30008a0c72ef2264a437301ec3..de5ee6e69ae54397d06b105b120ff30ab0dd3ec6 100644 --- a/java/com/android/incallui/answer/impl/res/values/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values/strings.xml @@ -1,4 +1,19 @@ + Swipe from icon to decline with message Swipe from icon to answer as an audio call @@ -26,5 +41,5 @@ Two finger swipe up to answer. Two finger swipe down to decline. - Urgent + Important diff --git a/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java b/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java index 9815981ca3630290db4940f61031b743f5ed991f..10a3413af4b909b50d451778dd53a413eda4a074 100644 --- a/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java +++ b/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java @@ -32,6 +32,10 @@ public interface AnswerScreenDelegate { void onReject(); void onAnswerAndReleaseCall(); + + void onAnswerAndReleaseButtonEnabled(); + + void onAnswerAndReleaseButtonDisabled(); /** * Sets the window background color based on foreground call's theme and the given progress. This * is called from the answer UI to animate the accept and reject action. diff --git a/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java b/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java index 24fbfc42866d858d64cd17f401a6f7181c151596..fe4ae9f961e8086a7a87269c202c4a810f9666a6 100644 --- a/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java +++ b/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java @@ -142,6 +142,9 @@ public class AnswerProximitySensor @Override public void onInternationalCallOnWifi() {} + @Override + public void onEnrichedCallSessionUpdate() {} + @Override public void onDialerCallSessionModificationStateChange() {} diff --git a/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java b/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java index c757477f1a956eb15d6a758119f44a578080b4b8..c7a9d63325ac0a53654048f3d0b969ea884be345 100644 --- a/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java +++ b/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java @@ -18,6 +18,7 @@ package com.android.incallui.audioroute; import android.app.Dialog; import android.content.Context; +import android.content.DialogInterface; import android.content.res.ColorStateList; import android.graphics.PorterDuff.Mode; import android.os.Bundle; @@ -41,6 +42,8 @@ public class AudioRouteSelectorDialogFragment extends BottomSheetDialogFragment /** Called when an audio route is picked */ public interface AudioRouteSelectorPresenter { void onAudioRouteSelected(int audioRoute); + + void onAudioRouteSelectorDismiss(); } public static AudioRouteSelectorDialogFragment newInstance(CallAudioState audioState) { @@ -91,6 +94,14 @@ public class AudioRouteSelectorDialogFragment extends BottomSheetDialogFragment return view; } + @Override + public void onDismiss(DialogInterface dialogInterface) { + super.onDismiss(dialogInterface); + FragmentUtils.getParentUnsafe( + AudioRouteSelectorDialogFragment.this, AudioRouteSelectorPresenter.class) + .onAudioRouteSelectorDismiss(); + } + private void initItem(TextView item, final int itemRoute, CallAudioState audioState) { int selectedColor = getResources().getColor(R.color.dialer_theme_color); if ((audioState.getSupportedRouteMask() & itemRoute) == 0) { diff --git a/java/com/android/incallui/bindings/InCallUiBindings.java b/java/com/android/incallui/bindings/InCallUiBindings.java index d3d3a8b3747ed08be4ede3b620acf074c02509ee..5c6aef4bea2a2342a7927cdc06adf3242497c8a8 100644 --- a/java/com/android/incallui/bindings/InCallUiBindings.java +++ b/java/com/android/incallui/bindings/InCallUiBindings.java @@ -19,7 +19,6 @@ package com.android.incallui.bindings; import android.content.Context; import android.content.Intent; import android.support.annotation.Nullable; -import com.android.dialer.common.ConfigProvider; /** This interface allows the container application to customize the in call UI. */ public interface InCallUiBindings { @@ -37,12 +36,4 @@ public interface InCallUiBindings { */ @Nullable Intent getCallStateButtonBroadcastIntent(Context context); - - @Nullable - DistanceHelper newDistanceHelper(Context context, DistanceHelper.Listener listener); - - @Nullable - ContactUtils getContactUtilsInstance(Context context); - - ConfigProvider getConfigProvider(); } diff --git a/java/com/android/incallui/bindings/InCallUiBindingsStub.java b/java/com/android/incallui/bindings/InCallUiBindingsStub.java index 7b42fb375f4195c3570aeaa9810f77dd45358c29..3a005b0fb5b690ca4d5dd79e2e650c031364fd34 100644 --- a/java/com/android/incallui/bindings/InCallUiBindingsStub.java +++ b/java/com/android/incallui/bindings/InCallUiBindingsStub.java @@ -19,11 +19,9 @@ package com.android.incallui.bindings; import android.content.Context; import android.content.Intent; import android.support.annotation.Nullable; -import com.android.dialer.common.ConfigProvider; /** Default implementation for InCallUi bindings. */ public class InCallUiBindingsStub implements InCallUiBindings { - private ConfigProvider configProvider; @Override @Nullable @@ -42,40 +40,4 @@ public class InCallUiBindingsStub implements InCallUiBindings { public Intent getCallStateButtonBroadcastIntent(Context context) { return null; } - - @Override - @Nullable - public DistanceHelper newDistanceHelper(Context context, DistanceHelper.Listener listener) { - return null; - } - - @Override - @Nullable - public ContactUtils getContactUtilsInstance(Context context) { - return null; - } - - @Override - public ConfigProvider getConfigProvider() { - if (configProvider == null) { - configProvider = - new ConfigProvider() { - @Override - public String getString(String key, String defaultValue) { - return defaultValue; - } - - @Override - public long getLong(String key, long defaultValue) { - return defaultValue; - } - - @Override - public boolean getBoolean(String key, boolean defaultValue) { - return defaultValue; - } - }; - } - return configProvider; - } } diff --git a/java/com/android/incallui/call/CallList.java b/java/com/android/incallui/call/CallList.java index 34f0cc0d70be58419eae2faf7ec36260c7544bc0..3876ca64d16a97789be8178f53de8c5bba58527e 100644 --- a/java/com/android/incallui/call/CallList.java +++ b/java/com/android/incallui/call/CallList.java @@ -32,6 +32,8 @@ import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler; import com.android.dialer.blocking.FilteredNumbersUtil; import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; +import com.android.dialer.enrichedcall.EnrichedCallComponent; +import com.android.dialer.enrichedcall.EnrichedCallManager; import com.android.dialer.location.GeoUtil; import com.android.dialer.logging.DialerImpression; import com.android.dialer.logging.Logger; @@ -117,6 +119,10 @@ public class CallList implements DialerCallDelegate { new DialerCall(context, this, telecomCall, latencyReport, true /* registerCallback */); logSecondIncomingCall(context, call); + EnrichedCallManager manager = EnrichedCallComponent.get(context).getEnrichedCallManager(); + manager.registerCapabilitiesListener(call); + manager.registerStateChangedListener(call); + final DialerCallListenerImpl dialerCallListener = new DialerCallListenerImpl(call); call.addListener(dialerCallListener); LogUtil.d("CallList.onCallAdded", "callState=" + call.getState()); @@ -278,6 +284,10 @@ public class CallList implements DialerCallDelegate { DialerCall call = mCallByTelecomCall.get(telecomCall); Assert.checkArgument(!call.isExternalCall()); + EnrichedCallManager manager = EnrichedCallComponent.get(context).getEnrichedCallManager(); + manager.unregisterCapabilitiesListener(call); + manager.unregisterStateChangedListener(call); + // Don't log an already logged call. logCall() might be called multiple times // for the same call due to b/24109437. if (call.getLogState() != null && !call.getLogState().isLogged) { @@ -792,6 +802,9 @@ public class CallList implements DialerCallDelegate { } } + @Override + public void onEnrichedCallSessionUpdate() {} + @Override public void onDialerCallSessionModificationStateChange() { for (Listener listener : mListeners) { diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java index acedf41f1dac96650d86c5cb438f3fc9fad9ef7d..12edb07e62b5188f83707818522127f19fc2733a 100644 --- a/java/com/android/incallui/call/DialerCall.java +++ b/java/com/android/incallui/call/DialerCall.java @@ -51,6 +51,10 @@ import com.android.dialer.common.ConfigProviderBindings; import com.android.dialer.common.LogUtil; import com.android.dialer.enrichedcall.EnrichedCallCapabilities; import com.android.dialer.enrichedcall.EnrichedCallComponent; +import com.android.dialer.enrichedcall.EnrichedCallManager; +import com.android.dialer.enrichedcall.EnrichedCallManager.CapabilitiesListener; +import com.android.dialer.enrichedcall.EnrichedCallManager.Filter; +import com.android.dialer.enrichedcall.EnrichedCallManager.StateChangedListener; import com.android.dialer.enrichedcall.Session; import com.android.dialer.lightbringer.LightbringerComponent; import com.android.dialer.logging.ContactLookupResult; @@ -77,7 +81,7 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.TimeUnit; /** Describes a single call and its state. */ -public class DialerCall implements VideoTechListener { +public class DialerCall implements VideoTechListener, StateChangedListener, CapabilitiesListener { public static final int CALL_HISTORY_STATUS_UNKNOWN = 0; public static final int CALL_HISTORY_STATUS_PRESENT = 1; @@ -143,6 +147,12 @@ public class DialerCall implements VideoTechListener { private EnrichedCallCapabilities mEnrichedCallCapabilities; private Session mEnrichedCallSession; + private int answerAndReleaseButtonDisplayedTimes = 0; + private boolean releasedByAnsweringSecondCall = false; + // Times when a second call is received but AnswerAndRelease button is not shown + // since it's not supported. + private int secondCallWithoutAnswerAndReleasedButtonTimes = 0; + public static String getNumberFromHandle(Uri handle) { return handle == null ? "" : handle.getSchemeSpecificPart(); } @@ -292,6 +302,8 @@ public class DialerCall implements VideoTechListener { mTimeAddedMs = System.currentTimeMillis(); parseCallSpecificAppData(); + + updateEnrichedCallSession(); } private static int translateState(int state) { @@ -413,6 +425,12 @@ public class DialerCall implements VideoTechListener { for (DialerCallListener listener : mListeners) { listener.onDialerCallDisconnect(); } + EnrichedCallComponent.get(mContext) + .getEnrichedCallManager() + .unregisterCapabilitiesListener(this); + EnrichedCallComponent.get(mContext) + .getEnrichedCallManager() + .unregisterCapabilitiesListener(this); } else { for (DialerCallListener listener : mListeners) { listener.onDialerCallUpdate(); @@ -960,6 +978,30 @@ public class DialerCall implements VideoTechListener { return mLatencyReport; } + public int getAnswerAndReleaseButtonDisplayedTimes() { + return answerAndReleaseButtonDisplayedTimes; + } + + public void increaseAnswerAndReleaseButtonDisplayedTimes() { + answerAndReleaseButtonDisplayedTimes++; + } + + public boolean getReleasedByAnsweringSecondCall() { + return releasedByAnsweringSecondCall; + } + + public void setReleasedByAnsweringSecondCall(boolean releasedByAnsweringSecondCall) { + this.releasedByAnsweringSecondCall = releasedByAnsweringSecondCall; + } + + public int getSecondCallWithoutAnswerAndReleasedButtonTimes() { + return secondCallWithoutAnswerAndReleasedButtonTimes; + } + + public void increaseSecondCallWithoutAnswerAndReleasedButtonTimes() { + secondCallWithoutAnswerAndReleasedButtonTimes++; + } + @Nullable public EnrichedCallCapabilities getEnrichedCallCapabilities() { return mEnrichedCallCapabilities; @@ -1172,6 +1214,66 @@ public class DialerCall implements VideoTechListener { TelecomAdapter.getInstance().setAudioRoute(CallAudioState.ROUTE_SPEAKER); } + @Override + public void onCapabilitiesUpdated() { + if (getNumber() == null) { + return; + } + EnrichedCallCapabilities capabilities = + EnrichedCallComponent.get(mContext).getEnrichedCallManager().getCapabilities(getNumber()); + if (capabilities != null) { + setEnrichedCallCapabilities(capabilities); + update(); + } + } + + @Override + public void onEnrichedCallStateChanged() { + updateEnrichedCallSession(); + } + + private void updateEnrichedCallSession() { + if (getNumber() == null) { + return; + } + if (getEnrichedCallSession() != null) { + // State changes to existing sessions are currently handled by the UI components (which have + // their own listeners). Someday instead we could remove those and just call update() here and + // have the usual onDialerCallUpdate update the UI. + dispatchOnEnrichedCallSessionUpdate(); + return; + } + + EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager(); + + Filter filter = + isIncoming() + ? manager.createIncomingCallComposerFilter() + : manager.createOutgoingCallComposerFilter(); + + Session session = manager.getSession(getUniqueCallId(), getNumber(), filter); + if (session == null) { + return; + } + + session.setUniqueDialerCallId(getUniqueCallId()); + setEnrichedCallSession(session); + + LogUtil.i( + "DialerCall.updateEnrichedCallSession", + "setting session %d's dialer id to %s", + session.getSessionId(), + getUniqueCallId()); + + dispatchOnEnrichedCallSessionUpdate(); + } + + private void dispatchOnEnrichedCallSessionUpdate() { + for (DialerCallListener listener : mListeners) { + listener.onEnrichedCallSessionUpdate(); + } + } + /** * Specifies whether a number is in the call history or not. {@link #CALL_HISTORY_STATUS_UNKNOWN} * means there is no result. @@ -1372,6 +1474,7 @@ public class DialerCall implements VideoTechListener { String phoneNumber = call.getNumber(); phoneNumber = phoneNumber != null ? phoneNumber : ""; + phoneNumber = phoneNumber.replaceAll("[^+0-9]", ""); // Insert order here determines the priority of that video tech option videoTechs = new ArrayList<>(); diff --git a/java/com/android/incallui/call/DialerCallListener.java b/java/com/android/incallui/call/DialerCallListener.java index ed321be05084e9f10fcd1659239f64643cc443d8..5d24a4d4b66fe26874010dcefd3467d74f815ecf 100644 --- a/java/com/android/incallui/call/DialerCallListener.java +++ b/java/com/android/incallui/call/DialerCallListener.java @@ -36,4 +36,6 @@ public interface DialerCallListener { void onHandoverToWifiFailure(); void onInternationalCallOnWifi(); + + void onEnrichedCallSessionUpdate(); } diff --git a/java/com/android/incallui/call/TelecomAdapter.java b/java/com/android/incallui/call/TelecomAdapter.java index ebf4ecf4fada7445467e61431de61e1acedaa140..4fc9f81eb4fb87c94eb9f243ea24d7341efe2776 100644 --- a/java/com/android/incallui/call/TelecomAdapter.java +++ b/java/com/android/incallui/call/TelecomAdapter.java @@ -20,12 +20,13 @@ import android.content.ActivityNotFoundException; import android.content.Intent; import android.os.Looper; import android.support.annotation.MainThread; +import android.support.annotation.VisibleForTesting; import android.telecom.InCallService; import com.android.dialer.common.LogUtil; import java.util.List; /** Wrapper around Telecom APIs. */ -public final class TelecomAdapter implements InCallServiceListener { +public class TelecomAdapter implements InCallServiceListener { private static final String ADD_CALL_MODE_KEY = "add_call_mode"; @@ -45,6 +46,11 @@ public final class TelecomAdapter implements InCallServiceListener { return sInstance; } + @VisibleForTesting(otherwise = VisibleForTesting.NONE) + public static void setInstanceForTesting(TelecomAdapter telecomAdapter) { + sInstance = telecomAdapter; + } + @Override public void setInCallService(InCallService inCallService) { mInCallService = inCallService; diff --git a/java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java b/java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java index 801b0d35c25865b3ea4cb43fe52084996c06248f..b093a1b15e5a532f01034f115d90b6253f09ce2c 100644 --- a/java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java +++ b/java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java @@ -21,6 +21,7 @@ import android.location.Location; import android.net.TrafficStats; import android.os.AsyncTask; import com.android.dialer.common.LogUtil; +import com.android.dialer.constants.TrafficStatsTags; import com.android.incallui.calllocation.impl.LocationPresenter.LocationUi; import java.io.InputStream; import java.lang.ref.WeakReference; diff --git a/java/com/android/incallui/calllocation/impl/LocationHelper.java b/java/com/android/incallui/calllocation/impl/LocationHelper.java index 3a147894532cc4e512201085692480daff7e33c6..99a759bbb09d485a96c6033a66f9a56d46c99ad5 100644 --- a/java/com/android/incallui/calllocation/impl/LocationHelper.java +++ b/java/com/android/incallui/calllocation/impl/LocationHelper.java @@ -24,6 +24,7 @@ import android.os.Bundle; import android.os.Handler; import android.support.annotation.IntDef; import android.support.annotation.MainThread; +import android.support.v4.os.UserManagerCompat; import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; import com.android.dialer.util.PermissionsUtil; @@ -87,6 +88,12 @@ public class LocationHelper { LogUtil.i("LocationHelper.canGetLocation", "location service is disabled."); return false; } + + if (!UserManagerCompat.isUserUnlocked(context)) { + LogUtil.i("LocationHelper.canGetLocation", "location unavailable in FBE mode."); + return false; + } + return true; } diff --git a/java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java b/java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java index eb5957b0504e4d16cbd6d90fa9a51dbc2036f9ff..060ec0b4f0e2804dc5cb187c28b32a4b1599eb71 100644 --- a/java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java +++ b/java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java @@ -20,6 +20,7 @@ import android.location.Location; import android.net.TrafficStats; import android.os.AsyncTask; import com.android.dialer.common.LogUtil; +import com.android.dialer.constants.TrafficStatsTags; import com.android.incallui.calllocation.impl.LocationPresenter.LocationUi; import java.lang.ref.WeakReference; import org.json.JSONArray; diff --git a/java/com/android/incallui/commontheme/res/anim/blinking.xml b/java/com/android/incallui/commontheme/res/anim/blinking.xml deleted file mode 100644 index 4b921c611f03708b6af180730ba2be57afccf2aa..0000000000000000000000000000000000000000 --- a/java/com/android/incallui/commontheme/res/anim/blinking.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - \ No newline at end of file diff --git a/java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png deleted file mode 100644 index 26f3fe00107cde34214cc08fc6bf3f46d110e2d8..0000000000000000000000000000000000000000 Binary files a/java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png and /dev/null differ diff --git a/java/com/android/incallui/commontheme/res/drawable-mdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-mdpi/ic_phone_audio_white_36dp.png deleted file mode 100644 index 5b0a9d66305a83c903f994ec4869ed3b9543a788..0000000000000000000000000000000000000000 Binary files a/java/com/android/incallui/commontheme/res/drawable-mdpi/ic_phone_audio_white_36dp.png and /dev/null differ diff --git a/java/com/android/incallui/commontheme/res/drawable-xhdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-xhdpi/ic_phone_audio_white_36dp.png deleted file mode 100644 index d595b190d205afd9efc5a22542d419b3a94772e4..0000000000000000000000000000000000000000 Binary files a/java/com/android/incallui/commontheme/res/drawable-xhdpi/ic_phone_audio_white_36dp.png and /dev/null differ diff --git a/java/com/android/incallui/commontheme/res/drawable-xxhdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-xxhdpi/ic_phone_audio_white_36dp.png deleted file mode 100644 index fb7cf161b1c85df71970d24c694a33126aac327d..0000000000000000000000000000000000000000 Binary files a/java/com/android/incallui/commontheme/res/drawable-xxhdpi/ic_phone_audio_white_36dp.png and /dev/null differ diff --git a/java/com/android/incallui/commontheme/res/drawable-xxxhdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-xxxhdpi/ic_phone_audio_white_36dp.png deleted file mode 100644 index 4bb58d9f5f88db5c913890ca0ab5b768572a9a65..0000000000000000000000000000000000000000 Binary files a/java/com/android/incallui/commontheme/res/drawable-xxxhdpi/ic_phone_audio_white_36dp.png and /dev/null differ diff --git a/java/com/android/incallui/commontheme/res/values-af/strings.xml b/java/com/android/incallui/commontheme/res/values-af/strings.xml index 0dfdbc7d56c45b9d3b8789886401008a2f9c076f..0721869bbf78409a85ea4e2836a7e9806210cef8 100644 --- a/java/com/android/incallui/commontheme/res/values-af/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-af/strings.xml @@ -1,4 +1,20 @@ + + "Beëindig oproep" @@ -15,4 +31,6 @@ "Video aan" "Video af" "Verwissel video" + "Luidspreker" + "Klank" diff --git a/java/com/android/incallui/commontheme/res/values-am/strings.xml b/java/com/android/incallui/commontheme/res/values-am/strings.xml index 3155c39becbb1288864d1fded1ae790fb6a926a7..9d748e3808665e61b882dba612b2428f63cd7a72 100644 --- a/java/com/android/incallui/commontheme/res/values-am/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-am/strings.xml @@ -1,4 +1,20 @@ + + "ጥሪ ጨርስ" @@ -15,4 +31,6 @@ "ቪዲዮ በርቷል" "ቪዲዮ ጠፍቷል" "ቪዲዮ አገላብጥ" + "የድምጽ ማጉያ" + "ድምፅ" diff --git a/java/com/android/incallui/commontheme/res/values-ar/strings.xml b/java/com/android/incallui/commontheme/res/values-ar/strings.xml index ecb3608bd4c4ed887972420d9e43018d88f86f07..693bfc57a2016c3ee12052819d2697e7c1d74f4b 100644 --- a/java/com/android/incallui/commontheme/res/values-ar/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ar/strings.xml @@ -1,4 +1,20 @@ + + "إنهاء المكالمة" @@ -15,4 +31,6 @@ "الفيديو قيد التشغيل" "الفيديو ليس قيد التشغيل" "تبديل الفيديو" + "مكبر الصوت" + "صوت" diff --git a/java/com/android/incallui/commontheme/res/values-az/strings.xml b/java/com/android/incallui/commontheme/res/values-az/strings.xml index d935a6c934860b5db160afe6e7d3fceb3db030e5..a1d88ceef1a6b4dd9d2640907da9e77b72ccf3c9 100644 --- a/java/com/android/incallui/commontheme/res/values-az/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-az/strings.xml @@ -1,4 +1,20 @@ + + "Zəngi sonlandırın" @@ -15,4 +31,6 @@ "Video aktivdir" "Video deaktivdir" "Videonu dəyişdirin" + "Dinamik" + "Səs" diff --git a/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml index 36430c42bbfabe4d861381dc7a1b705b7d557474..05ae59cdd54f6ca2f4ff2a5314417ef4b26a548b 100644 --- a/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml @@ -1,4 +1,20 @@ + + "Završi poziv" @@ -15,4 +31,6 @@ "Uključi video" "Isključi video" "Zameni video" + "Zvučnik" + "Zvuk" diff --git a/java/com/android/incallui/commontheme/res/values-be/strings.xml b/java/com/android/incallui/commontheme/res/values-be/strings.xml index 9609a634677ca657de1b2eb451e6dec4879c2de4..e772e2795b330abc5496084c6554b165ae5287a0 100644 --- a/java/com/android/incallui/commontheme/res/values-be/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-be/strings.xml @@ -1,4 +1,20 @@ + + "Завяршыць выклік" @@ -15,4 +31,6 @@ "Відэа ўкл." "Відэа выкл." "Пераключыць відэа" + "Вонк.дынамік" + "Гук" diff --git a/java/com/android/incallui/commontheme/res/values-bg/strings.xml b/java/com/android/incallui/commontheme/res/values-bg/strings.xml index 1a0f3e312c78f9283daa0e2e676f861ceaa9016a..63364f8e682f1fa2bebf1806f790104e1d82c88d 100644 --- a/java/com/android/incallui/commontheme/res/values-bg/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-bg/strings.xml @@ -1,4 +1,20 @@ + + "Край на обаждането" @@ -15,4 +31,6 @@ "Видеото е включено" "Видеото е изключено" "Размяна на видеото" + "Високогов." + "Звук" diff --git a/java/com/android/incallui/commontheme/res/values-bn/strings.xml b/java/com/android/incallui/commontheme/res/values-bn/strings.xml index ef2408f6459b7b03c493c9b1c9c67124e62d50fe..9871ea447e74882397c6c78fb797f7c47c5bb7f6 100644 --- a/java/com/android/incallui/commontheme/res/values-bn/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-bn/strings.xml @@ -1,4 +1,20 @@ + + "কল কেটে দিন" @@ -15,4 +31,6 @@ "ভিডিও চালু আছে" "ভিডিও বন্ধ আছে" "ভিডিও অদল বদল করুন" + "স্পিকার" + "শব্দ" diff --git a/java/com/android/incallui/commontheme/res/values-bs/strings.xml b/java/com/android/incallui/commontheme/res/values-bs/strings.xml index bfaff983fa008a318adca64f8b77e6bb611be075..76f991d6453def3a72711ea864a319dbd189ec3f 100644 --- a/java/com/android/incallui/commontheme/res/values-bs/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-bs/strings.xml @@ -1,4 +1,20 @@ + + "Prekini poziv" @@ -15,4 +31,6 @@ "Kamera je uključena" "Kamera je isključena" "Zamijeni kameru" + "Zvučnik" + "Zvuk" diff --git a/java/com/android/incallui/commontheme/res/values-ca/strings.xml b/java/com/android/incallui/commontheme/res/values-ca/strings.xml index 1b6ed4492448a2b437828655a285ba09444083ab..832027d399599f13ef5f0feca5a1c45f0585ef2c 100644 --- a/java/com/android/incallui/commontheme/res/values-ca/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ca/strings.xml @@ -1,4 +1,20 @@ + + "Finalitza la trucada" @@ -15,4 +31,6 @@ "Vídeo activat" "Vídeo desactivat" "Canvia de vídeo" + "Altaveu" + "So" diff --git a/java/com/android/incallui/commontheme/res/values-cs/strings.xml b/java/com/android/incallui/commontheme/res/values-cs/strings.xml index 1f10d85fe355939b35bd36ad706e76227ac9eb9d..7afdcba0bfa0c2806f601fe0b1c7c4c67f7ed0c6 100644 --- a/java/com/android/incallui/commontheme/res/values-cs/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-cs/strings.xml @@ -1,4 +1,20 @@ + + "Ukončit hovor" @@ -15,4 +31,6 @@ "Zapnuté video" "Vypnuté video" "Přepnout video" + "Reproduktor" + "Zvuk" diff --git a/java/com/android/incallui/commontheme/res/values-da/strings.xml b/java/com/android/incallui/commontheme/res/values-da/strings.xml index 35d01e31799838009e9278c673c348eaf2ee8959..bd26e90e5a27bc4b531fcbb86859b631d1ca94de 100644 --- a/java/com/android/incallui/commontheme/res/values-da/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-da/strings.xml @@ -1,4 +1,20 @@ + + "Afslut opkald" @@ -15,4 +31,6 @@ "Video til" "Video fra" "Byt video" + "Højttaler" + "Lyd" diff --git a/java/com/android/incallui/commontheme/res/values-de/strings.xml b/java/com/android/incallui/commontheme/res/values-de/strings.xml index 57a95b7f3affae250836b6f03999d66ff631a28a..3fd10f0e60465dc8673a891f2754df565a66b5c3 100644 --- a/java/com/android/incallui/commontheme/res/values-de/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-de/strings.xml @@ -1,4 +1,20 @@ + + "Anruf beenden" @@ -15,4 +31,6 @@ "Video an" "Video aus" "Video wechseln" + "Lautsprecher" + "Tonausgabe" diff --git a/java/com/android/incallui/commontheme/res/values-el/strings.xml b/java/com/android/incallui/commontheme/res/values-el/strings.xml index 6bb9edcd14b1814e0ff7bb0350009d6f2fa375fb..71c0be9a7eb98ba46859bd8c9baffc17d9398442 100644 --- a/java/com/android/incallui/commontheme/res/values-el/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-el/strings.xml @@ -1,4 +1,20 @@ + + "Τερματισμός" @@ -15,4 +31,6 @@ "Εικόνα βίντεο ενεργοποιημένη" "Εικόνα βίντεο απενεργοποιημένη" "Εναλλαγή βίντεο" + "Ηχείο" + "Ήχος" diff --git a/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml b/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml index 8133185b577baf67d122fbbaf6c96ff33f48ea9d..4869c3fa3bf4f7a19feb112461e3ff982806733e 100644 --- a/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml @@ -1,4 +1,20 @@ + + "End call" @@ -15,4 +31,6 @@ "Video on" "Video off" "Swap video" + "Speaker" + "Sound" diff --git a/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml b/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml index 8133185b577baf67d122fbbaf6c96ff33f48ea9d..4869c3fa3bf4f7a19feb112461e3ff982806733e 100644 --- a/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml @@ -1,4 +1,20 @@ + + "End call" @@ -15,4 +31,6 @@ "Video on" "Video off" "Swap video" + "Speaker" + "Sound" diff --git a/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml b/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml index 8133185b577baf67d122fbbaf6c96ff33f48ea9d..4869c3fa3bf4f7a19feb112461e3ff982806733e 100644 --- a/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml @@ -1,4 +1,20 @@ + + "End call" @@ -15,4 +31,6 @@ "Video on" "Video off" "Swap video" + "Speaker" + "Sound" diff --git a/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml b/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml index 45f2e2f4263e552b1e1aab190285850e75fc3ea1..a9596d9e6fa6a71858748a1f2890d3c111e00c13 100644 --- a/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml @@ -1,4 +1,20 @@ + + "Finalizar llamada" @@ -15,4 +31,6 @@ "Video activado" "Video desactivado" "Intercambiar video" + "Altavoz" + "Sonido" diff --git a/java/com/android/incallui/commontheme/res/values-es/strings.xml b/java/com/android/incallui/commontheme/res/values-es/strings.xml index 56c8b2852a07c9d3eb0059cf0678afd9c6332fed..aa84c625b2f391c711e34c30ddf0b299e89cdc95 100644 --- a/java/com/android/incallui/commontheme/res/values-es/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-es/strings.xml @@ -1,4 +1,20 @@ + + "Finalizar llamada" @@ -15,4 +31,6 @@ "Vídeo activado" "Vídeo desactivado" "Cambiar de vídeo" + "Altavoz" + "Sonido" diff --git a/java/com/android/incallui/commontheme/res/values-et/strings.xml b/java/com/android/incallui/commontheme/res/values-et/strings.xml index 069f3b5fd8e6203ffec6c80646a533ad64fd2d80..ae2e1ba536f1de7d3cf476bc3f2527c425bea3d7 100644 --- a/java/com/android/incallui/commontheme/res/values-et/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-et/strings.xml @@ -1,4 +1,20 @@ + + "Kõne lõpetamine" @@ -15,4 +31,6 @@ "Video on sees" "Video on väljas" "Video vahetamine" + "Kõlar" + "Heli" diff --git a/java/com/android/incallui/commontheme/res/values-eu/strings.xml b/java/com/android/incallui/commontheme/res/values-eu/strings.xml index bbcf5dc6e3531d8c2ed100476ae87b10ccc46941..0dd126c5a1f8d0e377d97261361a843de9cfa9a4 100644 --- a/java/com/android/incallui/commontheme/res/values-eu/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-eu/strings.xml @@ -1,4 +1,20 @@ + + "Amaitu deia" @@ -15,4 +31,6 @@ "Aktibatuta dago bideoa" "Desaktibatuta dago bideoa" "Aldatu bideoa" + "Bozgorailua" + "Soinua" diff --git a/java/com/android/incallui/commontheme/res/values-fa/strings.xml b/java/com/android/incallui/commontheme/res/values-fa/strings.xml index ea967bb7e21c54f6ad5af0dfbe828e7fa4bfcd27..1996ad47ba023732cd67a0d77451a1c28faed403 100644 --- a/java/com/android/incallui/commontheme/res/values-fa/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-fa/strings.xml @@ -1,4 +1,20 @@ + + "پایان تماس" @@ -15,4 +31,6 @@ "ویدئو فعال" "ویدئو غیرفعال" "جابه‌جایی ویدئو" + "بلندگو" + "صدا" diff --git a/java/com/android/incallui/commontheme/res/values-fi/strings.xml b/java/com/android/incallui/commontheme/res/values-fi/strings.xml index f0da44f0704f08a98841b45c77a2dbc0188b4405..5a579816b46349b79892acf474cf12988364c35f 100644 --- a/java/com/android/incallui/commontheme/res/values-fi/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-fi/strings.xml @@ -1,4 +1,20 @@ + + "Päätä puhelu" @@ -15,4 +31,6 @@ "Videokuva käytössä" "Videokuva poissa käytöstä" "Vaihda videota" + "Kaiutin" + "Ääni" diff --git a/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml b/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml index bf74dfbefe293702d3ab3a3367ed091396dce0a2..a1db3065ab6675c0df19839eabc2f1d142c2e06f 100644 --- a/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml @@ -1,4 +1,20 @@ + + "Mettre fin à l\'appel" @@ -15,4 +31,6 @@ "Vidéo activée" "Vidéo désactivée" "Permuter la vidéo" + "Haut-parleur" + "Son" diff --git a/java/com/android/incallui/commontheme/res/values-fr/strings.xml b/java/com/android/incallui/commontheme/res/values-fr/strings.xml index fb674a4839881b99ec48c407e19db9da232c3ea7..e169a3d7a2c254ef41c53720c51e3de0227fd3f0 100644 --- a/java/com/android/incallui/commontheme/res/values-fr/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-fr/strings.xml @@ -1,4 +1,20 @@ + + "Mettre fin à l\'appel" @@ -15,4 +31,6 @@ "Vidéo activée" "Vidéo désactivée" "Permuter la vidéo" + "Haut-parleur" + "Audio" diff --git a/java/com/android/incallui/commontheme/res/values-gl/strings.xml b/java/com/android/incallui/commontheme/res/values-gl/strings.xml index c7e22141629c36b86571a24b6946ec5a4dac7de2..ba98a98a74644c42094292895c1655e2ab381562 100644 --- a/java/com/android/incallui/commontheme/res/values-gl/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-gl/strings.xml @@ -1,4 +1,20 @@ + + "Finalizar chamada" @@ -15,4 +31,6 @@ "Vídeo activado" "Vídeo desactivado" "Alternar vídeo" + "Altofalante" + "Son" diff --git a/java/com/android/incallui/commontheme/res/values-gu/strings.xml b/java/com/android/incallui/commontheme/res/values-gu/strings.xml index 75584ea0d3bfde2ccf87c9b517f045a75d5d96c7..194590cecee2475468a10ef5e1ab68c3721ffa11 100644 --- a/java/com/android/incallui/commontheme/res/values-gu/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-gu/strings.xml @@ -1,4 +1,20 @@ + + "કૉલ સમાપ્ત કરો" @@ -15,4 +31,6 @@ "વિડિઓ ચાલુ" "વિડિઓ બંધ" "વિડિઓ સ્વેપ કરો" + "સ્પીકર" + "ધ્વનિ" diff --git a/java/com/android/incallui/commontheme/res/values-hi/strings.xml b/java/com/android/incallui/commontheme/res/values-hi/strings.xml index f7ea68ad82e81e56f192e399a3a62bfdc017d0ec..207bbf2be2015093df38c4c6ef7f07e8375fd9f0 100644 --- a/java/com/android/incallui/commontheme/res/values-hi/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-hi/strings.xml @@ -1,4 +1,20 @@ + + "कॉल समाप्त करें" @@ -15,4 +31,6 @@ "वीडियो चालू" "वीडियो बंद" "वीडियो स्वैप करें" + "स्‍पीकर" + "ध्वनि" diff --git a/java/com/android/incallui/commontheme/res/values-hr/strings.xml b/java/com/android/incallui/commontheme/res/values-hr/strings.xml index c30f3977e7b7e8f3088de06b54bf3e99010a2141..c58ab852fcb16ff8f60808321e0ef9e50eca1818 100644 --- a/java/com/android/incallui/commontheme/res/values-hr/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-hr/strings.xml @@ -1,4 +1,20 @@ + + "Prekid poziva" @@ -15,4 +31,6 @@ "Videopoziv uključen" "Videopoziv isključen" "Zamijeni videopoziv" + "Zvučnik" + "Zvuk" diff --git a/java/com/android/incallui/commontheme/res/values-hu/strings.xml b/java/com/android/incallui/commontheme/res/values-hu/strings.xml index 9ee2300e2202f9eace2122a34148dee9392024ab..ba7fec7d55d03ff00be33b7f9ad3956b6715a154 100644 --- a/java/com/android/incallui/commontheme/res/values-hu/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-hu/strings.xml @@ -1,4 +1,20 @@ + + "Hívás befejezése" @@ -15,4 +31,6 @@ "Videó be" "Videó ki" "Videó cseréje" + "Hangszóró" + "Hang" diff --git a/java/com/android/incallui/commontheme/res/values-hy/strings.xml b/java/com/android/incallui/commontheme/res/values-hy/strings.xml index 96a0cab6fafca2dfcdf3033d2de4320d23efe7c9..81262e4c6800f86592e81cb3707f2cf39688010a 100644 --- a/java/com/android/incallui/commontheme/res/values-hy/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-hy/strings.xml @@ -1,4 +1,20 @@ + + "Ավարտել զանգը" @@ -15,4 +31,6 @@ "Տեսախցիկը միացած է" "Տեսախցիկն անջատած է" "Փոխարկել խցիկը" + "Բարձրախոս" + "Ձայն" diff --git a/java/com/android/incallui/commontheme/res/values-in/strings.xml b/java/com/android/incallui/commontheme/res/values-in/strings.xml index 4536f5db0e8c11eafee2ddc379e6b57de156718b..fb3fc56ec750efed72c4eddc70b895d88ee4d5ec 100644 --- a/java/com/android/incallui/commontheme/res/values-in/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-in/strings.xml @@ -1,4 +1,20 @@ + + "Akhiri panggilan" @@ -15,4 +31,6 @@ "Video aktif" "Video nonaktif" "Tukar Video" + "Speaker" + "Suara" diff --git a/java/com/android/incallui/commontheme/res/values-is/strings.xml b/java/com/android/incallui/commontheme/res/values-is/strings.xml index 357f90eee4e762c050d4e68687272cb3ff295123..438b143e44ae4505ef017cca3fc98a6c162fc635 100644 --- a/java/com/android/incallui/commontheme/res/values-is/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-is/strings.xml @@ -1,4 +1,20 @@ + + "Ljúka símtali" @@ -15,4 +31,6 @@ "Kveikja á mynd" "Slökkva á mynd" "Skipta um mynd" + "Hátalari" + "Hljóð" diff --git a/java/com/android/incallui/commontheme/res/values-it/strings.xml b/java/com/android/incallui/commontheme/res/values-it/strings.xml index a63d3140ae3de1873a1d531c95e940c510d48117..b7c1d3f4eda85db80ab3f53a5fcda9a7efd1ca1c 100644 --- a/java/com/android/incallui/commontheme/res/values-it/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-it/strings.xml @@ -1,4 +1,20 @@ + + "Termina chiamata" @@ -15,4 +31,6 @@ "Video attivo" "Video non attivo" "Scambia video" + "Altoparlante" + "Suono" diff --git a/java/com/android/incallui/commontheme/res/values-iw/strings.xml b/java/com/android/incallui/commontheme/res/values-iw/strings.xml index 1e2b7f2b17901d80fa5d3c1d714172eef4425564..cbd6d757306afa515cd9d0eeffb32bd717b5ac36 100644 --- a/java/com/android/incallui/commontheme/res/values-iw/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-iw/strings.xml @@ -1,4 +1,20 @@ + + "סיים שיחה" @@ -15,4 +31,6 @@ "הווידאו מופעל" "הווידאו מושבת" "החלף וידאו" + "רמקול" + "קול" diff --git a/java/com/android/incallui/commontheme/res/values-ja/strings.xml b/java/com/android/incallui/commontheme/res/values-ja/strings.xml index 658b51349c3c6f02cd9782bdce861db7137d5911..4ea949581228980bd4c41076f9dd4cef061e2f1b 100644 --- a/java/com/android/incallui/commontheme/res/values-ja/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ja/strings.xml @@ -1,4 +1,20 @@ + + "通話を終了" @@ -15,4 +31,6 @@ "ビデオが ON になっています" "ビデオが OFF になっています" "ビデオを切り替える" + "スピーカー" + "音声" diff --git a/java/com/android/incallui/commontheme/res/values-ka/strings.xml b/java/com/android/incallui/commontheme/res/values-ka/strings.xml index ffba7cedee22161f8d444d34dd014ae6b7ef8e7e..3163476b6e675c218b7adec97485271cffcc3409 100644 --- a/java/com/android/incallui/commontheme/res/values-ka/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ka/strings.xml @@ -1,4 +1,20 @@ + + "ზარის დასრულება" @@ -15,4 +31,6 @@ "ვიდეო ჩართულია" "ვიდეო გამორთულია" "ვიდეოს შენაცვლება" + "სპიკერი" + "ხმა" diff --git a/java/com/android/incallui/commontheme/res/values-kk/strings.xml b/java/com/android/incallui/commontheme/res/values-kk/strings.xml index ace83ecee0339d9cbaa669cdecadccfc63a6f670..23b3a2ad67274707f77262253d9e3f3a28cc7a15 100644 --- a/java/com/android/incallui/commontheme/res/values-kk/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-kk/strings.xml @@ -1,4 +1,20 @@ + + "Қоңырауды аяқтау" @@ -15,4 +31,6 @@ "Бейне қосулы" "Бейне өшірулі" "Бейнені ауыстыру" + "Динамик" + "Дыбыс" diff --git a/java/com/android/incallui/commontheme/res/values-km/strings.xml b/java/com/android/incallui/commontheme/res/values-km/strings.xml index e28f120297f906e8a6afaa9256793fd072ba7b50..55cfa0a16abf339f3c6a52f8899989dcfb8076d9 100644 --- a/java/com/android/incallui/commontheme/res/values-km/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-km/strings.xml @@ -1,4 +1,20 @@ + + "បញ្ចប់​ការ​ហៅ" @@ -15,4 +31,6 @@ "បើក​វីដេអូ​" "បិទ​វីដេអូ" "ប្ដូរ​វីដេអូ" + "ឧបករណ៍​បំពង​សំឡេង" + "សំឡេង" diff --git a/java/com/android/incallui/commontheme/res/values-kn/strings.xml b/java/com/android/incallui/commontheme/res/values-kn/strings.xml index 59186e0a3eb50d842c71ec3230b48c178277e7d0..685ef642ff8b827293b06277f1906a9436b2ad53 100644 --- a/java/com/android/incallui/commontheme/res/values-kn/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-kn/strings.xml @@ -1,4 +1,20 @@ + + "ಕರೆ ಅಂತ್ಯಗೊಳಿಸಿ" @@ -15,4 +31,6 @@ "ವೀಡಿಯೊ ಆನ್" "ವೀಡಿಯೊ ಆಫ್" "ವೀಡಿಯೊ ಬದಲಾಯಿಸಿ" + "ಸ್ಪೀಕರ್‌" + "ಶಬ್ದ" diff --git a/java/com/android/incallui/commontheme/res/values-ko/strings.xml b/java/com/android/incallui/commontheme/res/values-ko/strings.xml index 0a0e3c9aa84a350db7d206f995f07c9da8b3c1cb..088746ddd47fb441157c95cb8f5689be3bdd2b72 100644 --- a/java/com/android/incallui/commontheme/res/values-ko/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ko/strings.xml @@ -1,4 +1,20 @@ + + "통화 종료" @@ -15,4 +31,6 @@ "동영상 켜짐" "동영상 꺼짐" "동영상 전환" + "스피커" + "소리" diff --git a/java/com/android/incallui/commontheme/res/values-ky/strings.xml b/java/com/android/incallui/commontheme/res/values-ky/strings.xml index ac697e4fe6543f2a87e95e437a991996491c4b1a..5dd4d0c219f5fda742916c718122abcbb7354115 100644 --- a/java/com/android/incallui/commontheme/res/values-ky/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ky/strings.xml @@ -1,4 +1,20 @@ + + "Чалууну бүтүрүү" @@ -15,4 +31,6 @@ "Видео күйүк" "Видео өчүк" "Видеону иштетүү/өчүрүү" + "Катуу сүйлөткүч" + "Добуш" diff --git a/java/com/android/incallui/commontheme/res/values-lo/strings.xml b/java/com/android/incallui/commontheme/res/values-lo/strings.xml index da2050ac2116ea56b2bb528aae90da05c9ad7ce9..2f0b94b5421ba92ab6198ac5077017f973ab800d 100644 --- a/java/com/android/incallui/commontheme/res/values-lo/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-lo/strings.xml @@ -1,4 +1,20 @@ + + "ວາງສາຍ" @@ -15,4 +31,6 @@ "ວິດີໂອເປີດ" "ວິດີໂອປິດ" "ສະຫຼັບວິດີໂອ" + "ລຳໂພງ" + "ສຽງ" diff --git a/java/com/android/incallui/commontheme/res/values-lt/strings.xml b/java/com/android/incallui/commontheme/res/values-lt/strings.xml index bda53d6f6183234e9436b11fc989a4b98fd50f0c..d0a5e0d9cf042aec6555893b3d5f021db6ce95ed 100644 --- a/java/com/android/incallui/commontheme/res/values-lt/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-lt/strings.xml @@ -1,4 +1,20 @@ + + "Baigti skambutį" @@ -15,4 +31,6 @@ "Vaizdas įjungtas" "Vaizdas išjungtas" "Sukeisti vaizdą" + "Garsiakalbis" + "Garsas" diff --git a/java/com/android/incallui/commontheme/res/values-lv/strings.xml b/java/com/android/incallui/commontheme/res/values-lv/strings.xml index beaf35c5838f9f2c07ddea2e7b029b839eaad6e0..443ac5e80777bd3e61156419b434115f22ade818 100644 --- a/java/com/android/incallui/commontheme/res/values-lv/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-lv/strings.xml @@ -1,4 +1,20 @@ + + "Beigt zvanu" @@ -15,4 +31,6 @@ "Video ieslēgts" "Video izslēgts" "Mainīt video" + "Skaļrunis" + "Skaņa" diff --git a/java/com/android/incallui/commontheme/res/values-mk/strings.xml b/java/com/android/incallui/commontheme/res/values-mk/strings.xml index 5b4f6d0c5cf7f903b2386dbe4b9ad59d3632c35a..d9a339eab622a7d20e4a025eec39b81534e2dd0f 100644 --- a/java/com/android/incallui/commontheme/res/values-mk/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-mk/strings.xml @@ -1,4 +1,20 @@ + + "Завршете го повикот" @@ -15,4 +31,6 @@ "Видеото е вклучено" "Видеото е исклучено" "Заменете го видеото" + "Звучник" + "Звук" diff --git a/java/com/android/incallui/commontheme/res/values-ml/strings.xml b/java/com/android/incallui/commontheme/res/values-ml/strings.xml index 024266736565ba7023d516532b4c4b19d17e0d08..0f2d889687a7bbdf57f524a053d9b479d6aa8d02 100644 --- a/java/com/android/incallui/commontheme/res/values-ml/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ml/strings.xml @@ -1,4 +1,20 @@ + + "കോള്‍ അവസാനിപ്പിക്കൂ" @@ -15,4 +31,6 @@ "വീഡിയോ ഓണാണ്" "വീഡിയോ ഓഫാണ്" "വീഡിയോ സ്വാപ്പുചെയ്യുക" + "സ്പീക്കർ" + "ശബ്‌ദം" diff --git a/java/com/android/incallui/commontheme/res/values-mn/strings.xml b/java/com/android/incallui/commontheme/res/values-mn/strings.xml index cd286edb9e38bdff2c6c9f4e905d9ed281eb92dc..3665fcfa6fa4cb74c4f3cd4a86363b7a3d515a66 100644 --- a/java/com/android/incallui/commontheme/res/values-mn/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-mn/strings.xml @@ -1,4 +1,20 @@ + + "Дуудлагыг таслах" @@ -15,4 +31,6 @@ "Видео идэвхтэй" "Видео идэвхгүй" "Видеог солих" + "Чанга яригч" + "Дуу" diff --git a/java/com/android/incallui/commontheme/res/values-mr/strings.xml b/java/com/android/incallui/commontheme/res/values-mr/strings.xml index 2c626edbdbbc066cf9fbc3f3c48228a7fd9579ef..f7498097fed41084f575f544592f347ec17ab3dc 100644 --- a/java/com/android/incallui/commontheme/res/values-mr/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-mr/strings.xml @@ -1,4 +1,20 @@ + + "कॉल समाप्त करा" @@ -15,4 +31,6 @@ "व्हिडिओ चालू" "व्हिडिओ बंद" "व्हिडिओ बदला" + "स्पीकर" + "ध्वनी" diff --git a/java/com/android/incallui/commontheme/res/values-ms/strings.xml b/java/com/android/incallui/commontheme/res/values-ms/strings.xml index f6c358d7907112be17b57f4c12f728abc27d9b47..fb38fa9d1d9597440a6a7d63138ee0235e3a3144 100644 --- a/java/com/android/incallui/commontheme/res/values-ms/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ms/strings.xml @@ -1,4 +1,20 @@ + + "Tamatkan panggilan" @@ -15,4 +31,6 @@ "Video dihidupkan" "Video dimatikan" "Silih video" + "Pmbsr suara" + "Bunyi" diff --git a/java/com/android/incallui/commontheme/res/values-my/strings.xml b/java/com/android/incallui/commontheme/res/values-my/strings.xml index 6b6614c36d6e5db4799e25bc29bdd92b01371b7e..5b396be5919cf949d8aeb71d87c57fc500ec53ce 100644 --- a/java/com/android/incallui/commontheme/res/values-my/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-my/strings.xml @@ -1,4 +1,20 @@ + + "ခေါ်ဆိုမှုအပြီးသတ်ရန်" @@ -15,4 +31,6 @@ "ဗီဒီယိုဖွင့်ထားသည်" "ဗီဒီယိုပိတ်ထားသည်" "ဗီဒီယိုဖလှယ်ရန်" + "စပီကာ" + "အသံ" diff --git a/java/com/android/incallui/commontheme/res/values-nb/strings.xml b/java/com/android/incallui/commontheme/res/values-nb/strings.xml index 4974411bc8d84fa64c18020574e2b3b4467a4509..506b15e31895308b0f999b7131078c5e7d601835 100644 --- a/java/com/android/incallui/commontheme/res/values-nb/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-nb/strings.xml @@ -1,4 +1,20 @@ + + "Avslutt samtalen" @@ -15,4 +31,6 @@ "Video på" "Video av" "Bytt video" + "Høyttaler" + "Lyd" diff --git a/java/com/android/incallui/commontheme/res/values-ne/strings.xml b/java/com/android/incallui/commontheme/res/values-ne/strings.xml index 5cd91b336d191d4312d768cfd0ebc037afee00f1..fa9d87fb714dbddb46dc8c3aa0ba6943d29cb1d2 100644 --- a/java/com/android/incallui/commontheme/res/values-ne/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ne/strings.xml @@ -1,4 +1,20 @@ + + "कल अन्त्य गर्नुहोस्" @@ -15,4 +31,6 @@ "सक्रिय भिडियो" "निष्क्रिय भिडियो" "भिडियो साट्नुहोस्" + "स्पिकर" + "आवाज" diff --git a/java/com/android/incallui/commontheme/res/values-nl/strings.xml b/java/com/android/incallui/commontheme/res/values-nl/strings.xml index d33d60075dd5f684119834dc09109bdf650137a0..192c47b976d547305da43f2cbbe20fa50a60a7a8 100644 --- a/java/com/android/incallui/commontheme/res/values-nl/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-nl/strings.xml @@ -1,4 +1,20 @@ + + "Oproep beëindigen" @@ -15,4 +31,6 @@ "Video aan" "Video uit" "Video wisselen" + "Luidspreker" + "Geluid" diff --git a/java/com/android/incallui/commontheme/res/values-no/strings.xml b/java/com/android/incallui/commontheme/res/values-no/strings.xml index 4974411bc8d84fa64c18020574e2b3b4467a4509..506b15e31895308b0f999b7131078c5e7d601835 100644 --- a/java/com/android/incallui/commontheme/res/values-no/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-no/strings.xml @@ -1,4 +1,20 @@ + + "Avslutt samtalen" @@ -15,4 +31,6 @@ "Video på" "Video av" "Bytt video" + "Høyttaler" + "Lyd" diff --git a/java/com/android/incallui/commontheme/res/values-pa/strings.xml b/java/com/android/incallui/commontheme/res/values-pa/strings.xml index 7e59e6114eed329da7e465c537c0a4bafc62dc55..77ceb252a323403a5dd39448282c178277eed2bd 100644 --- a/java/com/android/incallui/commontheme/res/values-pa/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-pa/strings.xml @@ -1,4 +1,20 @@ + + "ਕਾਲ ਸਮਾਪਤ ਕਰੋ" @@ -15,4 +31,6 @@ "ਵੀਡੀਓ ਚਾਲੂ" "ਵੀਡੀਓ ਬੰਦ" "ਵੀਡੀਓ ਦੀ ਅਦਲਾ ਬਦਲੀ ਕਰੋ" + "ਸਪੀਕਰ" + "ਧੁਨੀ" diff --git a/java/com/android/incallui/commontheme/res/values-pl/strings.xml b/java/com/android/incallui/commontheme/res/values-pl/strings.xml index 4ab1d244d0f60358a0f1f7acd1862a595a2df041..d9b037e8dc8db15eb246ca2e7a226b2ae60471b1 100644 --- a/java/com/android/incallui/commontheme/res/values-pl/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-pl/strings.xml @@ -1,4 +1,20 @@ + + "Zakończ połączenie" @@ -15,4 +31,6 @@ "Wideo włączone" "Wideo wyłączone" "Przełącz wideo" + "Głośnik" + "Dźwięk" diff --git a/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml b/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml index 67f367466aa9f4ddca60dd03b2b8943c726a7bb3..2c1834e0f6212c06e4d41cc66df94a8991513411 100644 --- a/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml @@ -1,4 +1,20 @@ + + "Encerrar chamada" @@ -15,4 +31,6 @@ "Vídeo ativado" "Vídeo desativado" "Trocar vídeo" + "Alto-falante" + "Som" diff --git a/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml b/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml index 27c5649289a40d2cfd7e77bf45d688bbbed43a44..f0c14d027976d4d6b87c12d13f52367b00c04df7 100644 --- a/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml @@ -1,4 +1,20 @@ + + "Terminar chamada" @@ -15,4 +31,6 @@ "Vídeo ativado" "Vídeo desativado" "Alternar vídeo" + "Altifalante" + "Som" diff --git a/java/com/android/incallui/commontheme/res/values-pt/strings.xml b/java/com/android/incallui/commontheme/res/values-pt/strings.xml index 67f367466aa9f4ddca60dd03b2b8943c726a7bb3..2c1834e0f6212c06e4d41cc66df94a8991513411 100644 --- a/java/com/android/incallui/commontheme/res/values-pt/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-pt/strings.xml @@ -1,4 +1,20 @@ + + "Encerrar chamada" @@ -15,4 +31,6 @@ "Vídeo ativado" "Vídeo desativado" "Trocar vídeo" + "Alto-falante" + "Som" diff --git a/java/com/android/incallui/commontheme/res/values-ro/strings.xml b/java/com/android/incallui/commontheme/res/values-ro/strings.xml index b7fec9a58b7f507ed3d023dd01aa7faa914210b9..f7c8f7257601a34b8f7b00329ea2a168c9573150 100644 --- a/java/com/android/incallui/commontheme/res/values-ro/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ro/strings.xml @@ -1,4 +1,20 @@ + + "Încheiați apelul" @@ -15,4 +31,6 @@ "Imaginea video este activată" "Imaginea video este dezactivată" "Schimbați imaginea video" + "Difuzor" + "Sunet" diff --git a/java/com/android/incallui/commontheme/res/values-ru/strings.xml b/java/com/android/incallui/commontheme/res/values-ru/strings.xml index 5d1807f7af886199a5c93dcdb8796463fafbce30..1853ad23ffd48282f6c1c87092cbf9c44a9c69e8 100644 --- a/java/com/android/incallui/commontheme/res/values-ru/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ru/strings.xml @@ -1,4 +1,20 @@ + + "Завершить вызов" @@ -15,4 +31,6 @@ "Камера включена" "Камера выключена" "Включить/выключить камеру" + "Динамик" + "Звук" diff --git a/java/com/android/incallui/commontheme/res/values-si/strings.xml b/java/com/android/incallui/commontheme/res/values-si/strings.xml index 0a0f35c47fe34c5cde8d744225b7292edd359f13..ae13cc4242f73ac2d907acfce3c9d1aa5f14dd1f 100644 --- a/java/com/android/incallui/commontheme/res/values-si/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-si/strings.xml @@ -1,4 +1,20 @@ + + "ඇමතුම අවසන් කරන්න" @@ -15,4 +31,6 @@ "වීඩියෝව ක්‍රියාත්මකයි" "වීඩියෝව ක්‍රියාවිරහිතයි" "වීඩියෝව මාරු කරන්න" + "ස්පීකරය" + "හඬ" diff --git a/java/com/android/incallui/commontheme/res/values-sk/strings.xml b/java/com/android/incallui/commontheme/res/values-sk/strings.xml index 97eabebb4f869176cebeb32fab0050efbb9ccc34..cd9aa9912a68e6d65fe58e50d662ac290754176a 100644 --- a/java/com/android/incallui/commontheme/res/values-sk/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-sk/strings.xml @@ -1,4 +1,20 @@ + + "Ukončiť hovor" @@ -15,4 +31,6 @@ "Video je zapnuté" "Video je vypnuté" "Zameniť video" + "Reproduktor" + "Zvuk" diff --git a/java/com/android/incallui/commontheme/res/values-sl/strings.xml b/java/com/android/incallui/commontheme/res/values-sl/strings.xml index 46cf2e8eead8c16fd9bdbc673c723919c1dca3fe..0aa6e699add6d9a0d36417cba694c80a3a5acb80 100644 --- a/java/com/android/incallui/commontheme/res/values-sl/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-sl/strings.xml @@ -1,4 +1,20 @@ + + "Končaj klic" @@ -15,4 +31,6 @@ "Vklopi video" "Izklopi video" "Zamenjaj video" + "Zvočnik" + "Zvok" diff --git a/java/com/android/incallui/commontheme/res/values-sq/strings.xml b/java/com/android/incallui/commontheme/res/values-sq/strings.xml index 17ec08167ecc610924a18e45fc69294880969099..b9c97d1dd621cb034a5c8a944db437fa4021063f 100644 --- a/java/com/android/incallui/commontheme/res/values-sq/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-sq/strings.xml @@ -1,4 +1,20 @@ + + "Mbylle telefonatën" @@ -15,4 +31,6 @@ "Videoja aktive" "Videoja joaktive" "Shkëmbe video" + "Altoparlanti" + "Tingulli" diff --git a/java/com/android/incallui/commontheme/res/values-sr/strings.xml b/java/com/android/incallui/commontheme/res/values-sr/strings.xml index 2928bc992397f04619e451843bfd01eb0ac915d9..67586b72eb8215e8b0c4199c79c9227718c49bd6 100644 --- a/java/com/android/incallui/commontheme/res/values-sr/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-sr/strings.xml @@ -1,4 +1,20 @@ + + "Заврши позив" @@ -15,4 +31,6 @@ "Укључи видео" "Искључи видео" "Замени видео" + "Звучник" + "Звук" diff --git a/java/com/android/incallui/commontheme/res/values-sv/strings.xml b/java/com/android/incallui/commontheme/res/values-sv/strings.xml index 17b5d3745cf3730ef4c3a83650696de5597c5592..957a2f85ac7a7c876881320b1b2494a87fb8c423 100644 --- a/java/com/android/incallui/commontheme/res/values-sv/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-sv/strings.xml @@ -1,4 +1,20 @@ + + "Avsluta samtal" @@ -15,4 +31,6 @@ "Video på" "Video av" "Byt video" + "Högtalare" + "Ljud" diff --git a/java/com/android/incallui/commontheme/res/values-sw/strings.xml b/java/com/android/incallui/commontheme/res/values-sw/strings.xml index 165d57622fee2b48ba2923ea5473ed15dceb7ec0..8752c2d37e543290b8fc9b3c16183ae9b21fc42b 100644 --- a/java/com/android/incallui/commontheme/res/values-sw/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-sw/strings.xml @@ -1,4 +1,20 @@ + + "Kata simu" @@ -15,4 +31,6 @@ "Washa video" "Zima video" "Badilisha video" + "Spika" + "Sauti" diff --git a/java/com/android/incallui/commontheme/res/values-ta/strings.xml b/java/com/android/incallui/commontheme/res/values-ta/strings.xml index fa2dfb2801f00388368064211abebac5295d0c01..69258d2e6de39c95f973eb5886a9c036a53c8797 100644 --- a/java/com/android/incallui/commontheme/res/values-ta/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ta/strings.xml @@ -1,4 +1,20 @@ + + "அழைப்பைத் துண்டிக்கும்" @@ -15,4 +31,6 @@ "வீடியோ இயக்கப்பட்டது" "வீடியோ முடக்கப்பட்டது" "வீடியோவிற்கு மாற்றும்" + "ஸ்பீக்கர்" + "ஒலி" diff --git a/java/com/android/incallui/commontheme/res/values-te/strings.xml b/java/com/android/incallui/commontheme/res/values-te/strings.xml index 3ce431cd10e98aa855539cbbe058fc41b60ecfcc..9454e15b760c9e791ed7eba4504ef607627af312 100644 --- a/java/com/android/incallui/commontheme/res/values-te/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-te/strings.xml @@ -1,4 +1,20 @@ + + "కాల్‌ను ముగిస్తుంది" @@ -15,4 +31,6 @@ "వీడియో ఆన్‌లో ఉంది" "వీడియో ఆఫ్‌లో ఉంది" "వీడియోను మారుస్తుంది" + "స్పీకర్" + "ధ్వని" diff --git a/java/com/android/incallui/commontheme/res/values-th/strings.xml b/java/com/android/incallui/commontheme/res/values-th/strings.xml index 1fa145c025e59154bb0dbf0beea83957d0affc13..8235310000b1b9c1544284f745270bd957a3e756 100644 --- a/java/com/android/incallui/commontheme/res/values-th/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-th/strings.xml @@ -1,4 +1,20 @@ + + "วางสาย" @@ -15,4 +31,6 @@ "เปิดวิดีโอ" "ปิดวิดีโอ" "สลับวิดีโอ" + "ลำโพง" + "เสียง" diff --git a/java/com/android/incallui/commontheme/res/values-tl/strings.xml b/java/com/android/incallui/commontheme/res/values-tl/strings.xml index a53e11c7da0a040602f8b45f25e614b85c4460d0..f368e3a6850afa9e50c31b77753627da7a504d9f 100644 --- a/java/com/android/incallui/commontheme/res/values-tl/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-tl/strings.xml @@ -1,4 +1,20 @@ + + "Tapusin ang tawag" @@ -15,4 +31,6 @@ "Naka-on ang video" "Naka-off ang video" "Pagpalitin ang video" + "Speaker" + "Tunog" diff --git a/java/com/android/incallui/commontheme/res/values-tr/strings.xml b/java/com/android/incallui/commontheme/res/values-tr/strings.xml index 09552730a9aa6886b6dcd491aade851d1d5eb76c..cbf550211a987d9cc2ae2a8445363dc5e9e7d829 100644 --- a/java/com/android/incallui/commontheme/res/values-tr/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-tr/strings.xml @@ -1,4 +1,20 @@ + + "Çağrıyı sonlandırın" @@ -15,4 +31,6 @@ "Video açık" "Video kapalı" "Videoyu değiştirin" + "Hoparlör" + "Ses" diff --git a/java/com/android/incallui/commontheme/res/values-uk/strings.xml b/java/com/android/incallui/commontheme/res/values-uk/strings.xml index e17e781b3ae76595ce184ec45b3fecf4ac562f2a..2bcd04c0e878dcfeac369cde6d5a837853dba786 100644 --- a/java/com/android/incallui/commontheme/res/values-uk/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-uk/strings.xml @@ -1,4 +1,20 @@ + + "Завершити виклик" @@ -15,4 +31,6 @@ "Відео ввімкнено" "Відео вимкнено" "Поміняти відео" + "Динамік" + "Звук" diff --git a/java/com/android/incallui/commontheme/res/values-ur/strings.xml b/java/com/android/incallui/commontheme/res/values-ur/strings.xml index 5082e9d11b22d2fb21deddc57307b3fa8e8452c3..bd8cf680776ca52185487bd42b3d6fceaa25220b 100644 --- a/java/com/android/incallui/commontheme/res/values-ur/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ur/strings.xml @@ -1,4 +1,20 @@ + + "کال ختم کریں" @@ -15,4 +31,6 @@ "ویڈیو آن ہے" "ویڈیو آف ہے" "ویڈیو کا تبادلہ کریں" + "اسپیکر" + "آواز" diff --git a/java/com/android/incallui/commontheme/res/values-uz/strings.xml b/java/com/android/incallui/commontheme/res/values-uz/strings.xml index d349d3f9aada9267dac750128dd4ed1e090267ed..9bc995de2298a068f97277e22e55f18205989199 100644 --- a/java/com/android/incallui/commontheme/res/values-uz/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-uz/strings.xml @@ -1,4 +1,20 @@ + + "Qo‘ng‘iroqni tugatish" @@ -15,4 +31,6 @@ "Video yoniq" "Video o‘chiq" "Videoni yoqish/ochirish" + "Karnay" + "Tovush" diff --git a/java/com/android/incallui/commontheme/res/values-vi/strings.xml b/java/com/android/incallui/commontheme/res/values-vi/strings.xml index 3bd39ae4d30ddc1fd6c53a23b6ea832b0d1e90b9..caf8f3434e7048ce9cbeb2c77ed99e3da2648353 100644 --- a/java/com/android/incallui/commontheme/res/values-vi/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-vi/strings.xml @@ -1,4 +1,20 @@ + + "Kết thúc cuộc gọi" @@ -15,4 +31,6 @@ "Bật video" "Tắt video" "Hoán đổi video" + "Loa" + "Âm báo" diff --git a/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml b/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml index 0f57120e26b64593f89c372f9e1bae3bfbabf962..4d8bda6bce6d31b64188366f0de502930c24aa05 100644 --- a/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml @@ -1,4 +1,20 @@ + + "结束通话" @@ -15,4 +31,6 @@ "视频已开启" "视频已关闭" "切换视频" + "免提" + "音频路径" diff --git a/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml b/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml index a3809ebcad147efe68c99b28d901aafa9011cd21..175b3e6575764843adcf308a34d5e6399d65f7e5 100644 --- a/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml @@ -1,4 +1,20 @@ + + "結束通話" @@ -15,4 +31,6 @@ "視像已開啟" "視像已關閉" "切換視像" + "喇叭" + "音效" diff --git a/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml b/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml index 983dddda7b12d52f8696a036c36cdf7a5fab0ecd..dee1b9c958ce652bb5c45e58bea7f492114449c0 100644 --- a/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml @@ -1,4 +1,20 @@ + + "結束通話" @@ -15,4 +31,6 @@ "開啟視訊畫面" "關閉視訊畫面" "切換視訊畫面" + "擴音" + "音訊" diff --git a/java/com/android/incallui/commontheme/res/values-zu/strings.xml b/java/com/android/incallui/commontheme/res/values-zu/strings.xml index 2dd2c897ee2bbb9dfb671e12a04c7a29c1c3073f..953596231e8863f3008e5ac3cf56349ea91e95ff 100644 --- a/java/com/android/incallui/commontheme/res/values-zu/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-zu/strings.xml @@ -1,4 +1,20 @@ + + "Qeda ikholi" @@ -15,4 +31,6 @@ "Ividiyo ivuliwe" "Ividiyo ivaliwe" "Shintsha ividiyo" + "Isipikha" + "Umsindo" diff --git a/java/com/android/incallui/commontheme/res/values/strings.xml b/java/com/android/incallui/commontheme/res/values/strings.xml index 6f346a34de2506741148e5e5f4118f89ed2a1591..94a8c901b7fba07078af7f052f379da31439faa3 100644 --- a/java/com/android/incallui/commontheme/res/values/strings.xml +++ b/java/com/android/incallui/commontheme/res/values/strings.xml @@ -1,4 +1,19 @@ + End call @@ -32,4 +47,11 @@ Swap video + + Speaker + + Sound + diff --git a/java/com/android/incallui/contactgrid/BottomRow.java b/java/com/android/incallui/contactgrid/BottomRow.java index 228c786a01eb70a79f4fadf6e5b3d5acdd294cd9..d0ff1926acb06fa3946faa9fcc15d6e915409d1b 100644 --- a/java/com/android/incallui/contactgrid/BottomRow.java +++ b/java/com/android/incallui/contactgrid/BottomRow.java @@ -22,7 +22,6 @@ import android.telephony.PhoneNumberUtils; import android.text.BidiFormatter; import android.text.TextDirectionHeuristics; import android.text.TextUtils; -import com.android.contacts.common.compat.PhoneNumberUtilsCompat; import com.android.incallui.call.DialerCall.State; import com.android.incallui.incall.protocol.PrimaryCallState; import com.android.incallui.incall.protocol.PrimaryInfo; @@ -137,7 +136,7 @@ public class BottomRow { } private static CharSequence spanDisplayNumber(String displayNumber) { - return PhoneNumberUtilsCompat.createTtsSpannable( + return PhoneNumberUtils.createTtsSpannable( BidiFormatter.getInstance().unicodeWrap(displayNumber, TextDirectionHeuristics.LTR)); } diff --git a/java/com/android/incallui/contactgrid/ContactGridManager.java b/java/com/android/incallui/contactgrid/ContactGridManager.java index 1322d58eacec5ff4a95d8bfa015ffc7b0cd4ae39..502cc52b85f064d389fe379ca725855116d0ab84 100644 --- a/java/com/android/incallui/contactgrid/ContactGridManager.java +++ b/java/com/android/incallui/contactgrid/ContactGridManager.java @@ -20,10 +20,8 @@ import android.content.Context; import android.graphics.drawable.Animatable; import android.graphics.drawable.Drawable; import android.os.SystemClock; -import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.view.ViewCompat; -import android.telecom.TelecomManager; import android.text.TextUtils; import android.view.View; import android.view.accessibility.AccessibilityEvent; @@ -78,6 +76,7 @@ public class ContactGridManager { private boolean hideAvatar; private boolean showAnonymousAvatar; private boolean middleRowVisible = true; + private boolean isTimerStarted; private PrimaryInfo primaryInfo = PrimaryInfo.createEmptyPrimaryInfo(); private PrimaryCallState primaryCallState = PrimaryCallState.createEmptyPrimaryCallState(); @@ -105,6 +104,7 @@ public class ContactGridManager { contactGridLayout = (View) contactNameTextView.getParent(); letterTile = new LetterTileDrawable(context.getResources()); + isTimerStarted = false; } public void show() { @@ -213,7 +213,7 @@ public class ContactGridManager { * */ private void updateTopRow() { - TopRow.Info info = TopRow.getInfo(context, primaryCallState); + TopRow.Info info = TopRow.getInfo(context, primaryCallState, primaryInfo); if (TextUtils.isEmpty(info.label)) { // Use INVISIBLE here to prevent the rows below this one from moving up and down. statusTextView.setVisibility(View.INVISIBLE); @@ -232,26 +232,6 @@ public class ContactGridManager { } } - /** - * Returns the appropriate LetterTileDrawable.TYPE_ based on a given call state. - * - *

If no special state is detected, yields TYPE_DEFAULT. - */ - private static @LetterTileDrawable.ContactType int getContactTypeForPrimaryCallState( - @NonNull PrimaryCallState callState, @NonNull PrimaryInfo primaryInfo) { - if (callState.isVoiceMailNumber) { - return LetterTileDrawable.TYPE_VOICEMAIL; - } else if (callState.isBusinessNumber) { - return LetterTileDrawable.TYPE_BUSINESS; - } else if (primaryInfo.numberPresentation == TelecomManager.PRESENTATION_RESTRICTED) { - return LetterTileDrawable.TYPE_GENERIC_AVATAR; - } else if (callState.isConference) { - return LetterTileDrawable.TYPE_CONFERENCE; - } else { - return LetterTileDrawable.TYPE_DEFAULT; - } - } - /** * Updates row 1. For example: * @@ -295,8 +275,12 @@ public class ContactGridManager { primaryInfo.name, primaryInfo.contactInfoLookupKey, LetterTileDrawable.SHAPE_CIRCLE, - getContactTypeForPrimaryCallState(primaryCallState, primaryInfo)); - + LetterTileDrawable.getContactTypeFromPrimitives( + primaryCallState.isVoiceMailNumber, + primaryInfo.isSpam, + primaryCallState.isBusinessNumber, + primaryInfo.numberPresentation, + primaryCallState.isConference)); // By invalidating the avatarImageView we force a redraw of the letter tile. // This is required to properly display the updated letter tile iconography based on the // contact type, because the background drawable reference cached in the view, and the @@ -363,15 +347,19 @@ public class ContactGridManager { } if (info.isTimerVisible) { - bottomTextSwitcher.setDisplayedChild(1); - bottomTimerView.setBase( - primaryCallState.connectTimeMillis - - System.currentTimeMillis() - + SystemClock.elapsedRealtime()); - bottomTimerView.start(); + if (!isTimerStarted) { + bottomTextSwitcher.setDisplayedChild(1); + bottomTimerView.setBase( + primaryCallState.connectTimeMillis + - System.currentTimeMillis() + + SystemClock.elapsedRealtime()); + bottomTimerView.start(); + isTimerStarted = true; + } } else { bottomTextSwitcher.setDisplayedChild(0); bottomTimerView.stop(); + isTimerStarted = false; } } } diff --git a/java/com/android/incallui/contactgrid/TopRow.java b/java/com/android/incallui/contactgrid/TopRow.java index 8c3d6b00489dca25bff67b302dbec79098626dc5..ab003570f695e242d149a81b56ddbb13f064fe7b 100644 --- a/java/com/android/incallui/contactgrid/TopRow.java +++ b/java/com/android/incallui/contactgrid/TopRow.java @@ -19,10 +19,14 @@ package com.android.incallui.contactgrid; import android.content.Context; import android.graphics.drawable.Drawable; import android.support.annotation.Nullable; +import android.telephony.PhoneNumberUtils; +import android.text.BidiFormatter; +import android.text.TextDirectionHeuristics; import android.text.TextUtils; import com.android.dialer.common.Assert; import com.android.incallui.call.DialerCall.State; import com.android.incallui.incall.protocol.PrimaryCallState; +import com.android.incallui.incall.protocol.PrimaryInfo; import com.android.incallui.videotech.utils.SessionModificationState; import com.android.incallui.videotech.utils.VideoUtils; @@ -55,7 +59,7 @@ public class TopRow { private TopRow() {} - public static Info getInfo(Context context, PrimaryCallState state) { + public static Info getInfo(Context context, PrimaryCallState state, PrimaryInfo primaryInfo) { CharSequence label = null; Drawable icon = state.connectionIcon; boolean labelIsSingleLine = true; @@ -73,6 +77,11 @@ public class TopRow { labelIsSingleLine = false; } else { label = getLabelForIncoming(context, state); + // Show phone number if it's not displayed in name (center row) or location field (bottom + // row). + if (shouldShowNumber(primaryInfo)) { + label = TextUtils.concat(label, " ", spanDisplayNumber(primaryInfo.number)); + } } } else if (VideoUtils.hasSentVideoUpgradeRequest(state.sessionModificationState) || VideoUtils.hasReceivedVideoUpgradeRequest(state.sessionModificationState)) { @@ -85,6 +94,8 @@ public class TopRow { label = getLabelForDialing(context, state); } else if (state.state == State.ACTIVE && state.isRemotelyHeld) { label = context.getString(R.string.incall_remotely_held); + } else if (state.state == State.ACTIVE && shouldShowNumber(primaryInfo)) { + label = spanDisplayNumber(primaryInfo.number); } else { // Video calling... // [Wi-Fi icon] Starbucks Wi-Fi @@ -94,9 +105,27 @@ public class TopRow { return new Info(label, icon, labelIsSingleLine); } + private static CharSequence spanDisplayNumber(String displayNumber) { + return PhoneNumberUtils.createTtsSpannable( + BidiFormatter.getInstance().unicodeWrap(displayNumber, TextDirectionHeuristics.LTR)); + } + + private static boolean shouldShowNumber(PrimaryInfo primaryInfo) { + if (primaryInfo.nameIsNumber) { + return false; + } + if (primaryInfo.location == null) { + return false; + } + if (TextUtils.isEmpty(primaryInfo.number)) { + return false; + } + return true; + } + private static CharSequence getLabelForIncoming(Context context, PrimaryCallState state) { if (state.isVideoCall) { - return getLabelForIncomingVideo(context, state.isWifi); + return getLabelForIncomingVideo(context, state.sessionModificationState, state.isWifi); } else if (state.isWifi && !TextUtils.isEmpty(state.connectionLabel)) { return state.connectionLabel; } else if (isAccount(state)) { @@ -108,11 +137,20 @@ public class TopRow { } } - private static CharSequence getLabelForIncomingVideo(Context context, boolean isWifi) { - if (isWifi) { - return context.getString(R.string.contact_grid_incoming_wifi_video_call); + private static CharSequence getLabelForIncomingVideo( + Context context, @SessionModificationState int sessionModificationState, boolean isWifi) { + if (sessionModificationState == SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) { + if (isWifi) { + return context.getString(R.string.contact_grid_incoming_wifi_video_request); + } else { + return context.getString(R.string.contact_grid_incoming_video_request); + } } else { - return context.getString(R.string.contact_grid_incoming_video_call); + if (isWifi) { + return context.getString(R.string.contact_grid_incoming_wifi_video_call); + } else { + return context.getString(R.string.contact_grid_incoming_video_call); + } } } @@ -154,7 +192,7 @@ public class TopRow { case SessionModificationState.UPGRADE_TO_VIDEO_REQUEST_TIMED_OUT: return context.getString(R.string.incall_video_call_request_timed_out); case SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST: - return getLabelForIncomingVideo(context, state.isWifi); + return getLabelForIncomingVideo(context, state.sessionModificationState, state.isWifi); case SessionModificationState.NO_REQUEST: default: Assert.fail(); diff --git a/java/com/android/incallui/contactgrid/res/values-af/strings.xml b/java/com/android/incallui/contactgrid/res/values-af/strings.xml index 95ec39bc3be76aab9964f4840988368c70a30d7d..75a8bf37f8dd911f617d64724eb3696c111c8860 100644 --- a/java/com/android/incallui/contactgrid/res/values-af/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-af/strings.xml @@ -1,4 +1,20 @@ + + "Bel via %s" @@ -14,6 +30,8 @@ "Hou aan" "Video-oproep vanaf" "Wi-Fi-video-oproep vanaf" + "Versoekvorm vir video-opgradering" + "Versoekvorm vir Wi-Fi-video-opgradering" "Oproep vanaf" "Werkoproep vanaf" "Inkomend via %s" diff --git a/java/com/android/incallui/contactgrid/res/values-am/strings.xml b/java/com/android/incallui/contactgrid/res/values-am/strings.xml index d8060c9c574cebcd04b26d42a3ce994b475ab026..3d11f73c21220caed03699ea5879eb6b303351db 100644 --- a/java/com/android/incallui/contactgrid/res/values-am/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-am/strings.xml @@ -1,4 +1,20 @@ + + "በ%s በኩል በመደወል ላይ" @@ -14,6 +30,8 @@ "ያዝና ቆይ" "ቪዲዮ ጥሪ ከ" "Wi-Fi ቪዲዮ ጥሪ ከ" + "የቪዲዮ ማሻሻል ጥያቄ ከ" + "የWi-Fi ቪዲዮ ማሻሻል ጥያቄ ከ" "ጥሪ ከ" "የሥራ ጥሪ ከ" "በ%s በኩል የገባ" diff --git a/java/com/android/incallui/contactgrid/res/values-ar/strings.xml b/java/com/android/incallui/contactgrid/res/values-ar/strings.xml index 30fd32cfaf843f17426814dae3ea009a12aadb35..cddd1eca94d79a6e2ebdf62749b7ae49fe168303 100644 --- a/java/com/android/incallui/contactgrid/res/values-ar/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ar/strings.xml @@ -1,4 +1,20 @@ + + "الاتصال عبر %s" @@ -14,6 +30,8 @@ "معلقة" "مكالمة فيديو من" "‏مكالمة فيديو عبر Wi-Fi من" + "طلب ترقية الفيديو من" + "‏طلب ترقية فيديو Wi-Fi من" "اتصال من" "مكالمة عمل من" "واردة عبر %s" diff --git a/java/com/android/incallui/contactgrid/res/values-az/strings.xml b/java/com/android/incallui/contactgrid/res/values-az/strings.xml index 4fe79eeaac89dbd14647130704cfddc6795b24c4..8c1993dc04eb5d8efc3b48773b7ce5f50f6ba791 100644 --- a/java/com/android/incallui/contactgrid/res/values-az/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-az/strings.xml @@ -1,4 +1,20 @@ + + "%s vasitəsilə zəng edilir" @@ -14,6 +30,8 @@ "Gözləmədə" "Video zəng edən" "Wi-Fi video zəng edən" + "Video təkmilləşdirilməsi üçün təklif" + "Wi-Fi video təkmilləşdirilməsi üçün təklif" "Zəng edən" "İş zəngi edən" "%s vasitəsilə gələn" diff --git a/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml index f1a938ea9da14c99e88d4fa3c54c6011d25e73ed..caa61bdacec553b2b4d4ee2fc2c2a5c8c72c6499 100644 --- a/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml @@ -1,4 +1,20 @@ + + "Pozivamo preko %s" @@ -14,6 +30,8 @@ "Na čekanju" "Video poziv od" "Wi-Fi video poziv od" + "Zahtev za prelazak na video poziv od" + "Zahtev za prelazak na video poziv preko Wi-Fi-ja od" "Poziv od" "Poslovni poziv od" "Dolazni poziv preko %s" diff --git a/java/com/android/incallui/contactgrid/res/values-be/strings.xml b/java/com/android/incallui/contactgrid/res/values-be/strings.xml index aec3a3106f2d1c03daea64c23f37c9a04257e002..51f7ea97a48f95bb516f75ddb87ef87b1b59ce58 100644 --- a/java/com/android/incallui/contactgrid/res/values-be/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-be/strings.xml @@ -1,4 +1,20 @@ + + "Званкі праз %s" @@ -14,6 +30,8 @@ "На ўтрыманні" "Відэавыклік ад" "Відэавыклік праз Wi-Fi ад" + "Запыт на абнаўленне да відэавыкліка ад" + "Запыт на абнаўленне да відэавыкліка па Wi-Fi ад" "Выклік ад" "Рабочы выклік ад" "Уваходны выклік праз %s" diff --git a/java/com/android/incallui/contactgrid/res/values-bg/strings.xml b/java/com/android/incallui/contactgrid/res/values-bg/strings.xml index f162e4cd0eb99f5c1b0d59e4fe54abb13ec0f953..4e313d408acb518660657ef2b9ae49de56e1d3f9 100644 --- a/java/com/android/incallui/contactgrid/res/values-bg/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-bg/strings.xml @@ -1,4 +1,20 @@ + + "Обаждане чрез %s" @@ -14,6 +30,8 @@ "Задържано" "Видеообаждане от" "Видеообаждане по Wi-Fi от" + "Заявка за преминаване към видеообаждане от" + "Заявка за преминаване към видеообаждане през Wi-Fi от" "Обаждане от" "Служебно обаждане от" "Входящо обаждане чрез %s" diff --git a/java/com/android/incallui/contactgrid/res/values-bn/strings.xml b/java/com/android/incallui/contactgrid/res/values-bn/strings.xml index 6d3a50c6103efe7388fab13852635aa34bcba27a..8fce2e46079a8c13b463aa73c72802547c5e6465 100644 --- a/java/com/android/incallui/contactgrid/res/values-bn/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-bn/strings.xml @@ -1,4 +1,20 @@ + + "%s এর মাধ্যমে কল করা হচ্ছে" @@ -14,6 +30,8 @@ "হোল্ডে রয়েছে" "এর থেকে আগত ভিডিও কল" "এর থেকে আগত Wi-Fi ভিডিও কল" + "এর থেকে ভিডিও আপগ্রেড করার অনুরোধ" + "এর থেকে ওয়াই-ফাই ভিডিও আপগ্রেড করার অনুরোধ" "এর থেকে আগত কল" "এর থেকে আগত কর্মক্ষেত্রের কল" "%s এর মাধ্যমে আগত কল" diff --git a/java/com/android/incallui/contactgrid/res/values-bs/strings.xml b/java/com/android/incallui/contactgrid/res/values-bs/strings.xml index 258799215ac554cb12687fab3c7db8270cf05d31..0d4dfb3d83428d9363ef541dd5813cbeff229740 100644 --- a/java/com/android/incallui/contactgrid/res/values-bs/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-bs/strings.xml @@ -1,4 +1,20 @@ + + "Pozivanje putem mreže %s" @@ -14,6 +30,8 @@ "Na čekanju" "Videopoziv od" "Wi-Fi videopoziv od" + "Zahtjev za nadogradnju na videozapis od pozivaoca" + "Zahtjev za nadogradnju na Wi-Fi videozapis od pozivaoca" "Poziv od" "Poslovni poziv od" "Dolazni poziv putem %s" diff --git a/java/com/android/incallui/contactgrid/res/values-ca/strings.xml b/java/com/android/incallui/contactgrid/res/values-ca/strings.xml index 07598a2174b125f7d60c8ee1b27fe7e33a182305..b4aa2ddc0081451836278703c819694968746780 100644 --- a/java/com/android/incallui/contactgrid/res/values-ca/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ca/strings.xml @@ -1,4 +1,20 @@ + + "S\'està trucant amb %s" @@ -14,6 +30,8 @@ "En espera" "Videotrucada de" "Videotrucada per Wi-Fi de" + "Sol·licitud d\'actualització a videotrucada procedent de:" + "Sol·licitud d\'actualització a videotrucada per Wi-Fi procedent de:" "Trucada de" "Trucada de feina de" "Entrant via %s" diff --git a/java/com/android/incallui/contactgrid/res/values-cs/strings.xml b/java/com/android/incallui/contactgrid/res/values-cs/strings.xml index d27a0283b4c94e2dbc62cebbca59e3373d3d6911..b8698f0716e9d72ce98b2d64427cc7fe499f99ea 100644 --- a/java/com/android/incallui/contactgrid/res/values-cs/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-cs/strings.xml @@ -1,4 +1,20 @@ + + "Volání přes poskytovatele %s" @@ -14,6 +30,8 @@ "Podrženo" "Příchozí videohovor:" "Příchozí videohovor přes Wi-Fi:" + "Žádost o upgrade na videohovor od uživatele" + "Žádost o upgrade na videohovor přes Wi-Fi od uživatele" "Příchozí hovor:" "Příchozí pracovní hovor:" "Příchozí hovor přes poskytovatele %s" diff --git a/java/com/android/incallui/contactgrid/res/values-da/strings.xml b/java/com/android/incallui/contactgrid/res/values-da/strings.xml index 555a2ac5f3e7034c92d36208d4e197101af87248..71a651f189379f20e33d73b42513a195b390b885 100644 --- a/java/com/android/incallui/contactgrid/res/values-da/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-da/strings.xml @@ -1,4 +1,20 @@ + + "Ringer via %s" @@ -14,6 +30,8 @@ "I venteposition" "Videoopkald fra" "Wi-Fi-videoopkald fra" + "Anmodning om opgradering til et videoopkald fra" + "Anmodning om opgradering til et Wi-Fi-videoopkald fra" "Opkald fra" "Arbejdsopkald fra" "Indgående opkald via %s" diff --git a/java/com/android/incallui/contactgrid/res/values-de/strings.xml b/java/com/android/incallui/contactgrid/res/values-de/strings.xml index 3d3838ca2477d85dc9dfc8f6b5ab034049c6c61e..d69e0f6bb67d11cb6f22da7389dedf06471a48df 100644 --- a/java/com/android/incallui/contactgrid/res/values-de/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-de/strings.xml @@ -1,4 +1,20 @@ + + "Anruf über %s" @@ -14,6 +30,8 @@ "Anruf wird gehalten" "Videoanruf von" "WLAN-Videoanruf von" + "Anfrage für Upgrade auf Videoanruf von" + "Anfrage für Upgrade auf Videoanruf über WLAN von" "Anruf von" "Geschäftlicher Anruf von" "Eingehender Anruf über %s" diff --git a/java/com/android/incallui/contactgrid/res/values-el/strings.xml b/java/com/android/incallui/contactgrid/res/values-el/strings.xml index 337da7b0348b43fc2662d49427cc4e8decd04c3f..954e7b75d25ae2c316698acdf87b43754f3e3c13 100644 --- a/java/com/android/incallui/contactgrid/res/values-el/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-el/strings.xml @@ -1,4 +1,20 @@ + + "Κλήση μέσω %s" @@ -14,6 +30,8 @@ "Σε αναμονή" "Βιντεοκλήση από" "Βιντεοκλήση μέσω Wi-Fi από" + "Αίτημα αναβάθμισης βίντεο από" + "Αίτημα αναβάθμισης βίντεο Wi-Fi από" "Κλήση από" "Κλήση από το γραφείο από" "Εισερχόμενη κλήση μέσω %s" diff --git a/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml b/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml index 3748db2f40976a4e6699099836e6aa13712edaf6..a1402ff5c48d49e81505fa13970c58fde4ea551e 100644 --- a/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml @@ -1,4 +1,20 @@ + + "Calling via %s" @@ -14,6 +30,8 @@ "On hold" "Video call from" "Wi-Fi video call from" + "Video upgrade request from" + "Wi-Fi video upgrade request from" "Call from" "Work call from" "Incoming via %s" diff --git a/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml b/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml index 3748db2f40976a4e6699099836e6aa13712edaf6..a1402ff5c48d49e81505fa13970c58fde4ea551e 100644 --- a/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml @@ -1,4 +1,20 @@ + + "Calling via %s" @@ -14,6 +30,8 @@ "On hold" "Video call from" "Wi-Fi video call from" + "Video upgrade request from" + "Wi-Fi video upgrade request from" "Call from" "Work call from" "Incoming via %s" diff --git a/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml b/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml index 3748db2f40976a4e6699099836e6aa13712edaf6..a1402ff5c48d49e81505fa13970c58fde4ea551e 100644 --- a/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml @@ -1,4 +1,20 @@ + + "Calling via %s" @@ -14,6 +30,8 @@ "On hold" "Video call from" "Wi-Fi video call from" + "Video upgrade request from" + "Wi-Fi video upgrade request from" "Call from" "Work call from" "Incoming via %s" diff --git a/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml b/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml index fa56849279713907415f1e44a5b37374ec7989a8..abb2b01d96923cb8352af527940da0e69b5e1946 100644 --- a/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml @@ -1,4 +1,20 @@ + + "Llamada por medio de %s" @@ -14,6 +30,8 @@ "En espera" "Videollamada de" "Videollamada con Wi-Fi de" + "Actualización a video solicitada por" + "Actualización a video con Wi-Fi solicitada por" "Llamada de" "Llamada laboral de" "Entrante por medio de %s" diff --git a/java/com/android/incallui/contactgrid/res/values-es/strings.xml b/java/com/android/incallui/contactgrid/res/values-es/strings.xml index 1d57f9c6fddbee51d7a28f47b75c53e9852d6c92..ef7c45774b2bbd76e9c912ca794edf69ab04b203 100644 --- a/java/com/android/incallui/contactgrid/res/values-es/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-es/strings.xml @@ -1,4 +1,20 @@ + + "Llamada a través de %s" @@ -14,6 +30,8 @@ "En espera" "Videollamada de" "Videollamada por Wi-Fi de" + "Solicitud de actualización de videollamada de" + "Solicitud de actualización de videollamada por Wi-Fi de" "Llamada de" "Llamada de trabajo de" "Recibida a través de %s" diff --git a/java/com/android/incallui/contactgrid/res/values-et/strings.xml b/java/com/android/incallui/contactgrid/res/values-et/strings.xml index 2d81062f4b390b0923bf4d2517941f210243adeb..b91f073d0be218cf6184879abcb317845d25daa4 100644 --- a/java/com/android/incallui/contactgrid/res/values-et/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-et/strings.xml @@ -1,4 +1,20 @@ + + "Kõne edastab %s" @@ -14,6 +30,8 @@ "Ootel" "Videokõne kontaktilt" "WiFi-videokõne kontaktilt" + "Video täiendamise taotlus:" + "WiFi kaudu video täiendamise taotlus:" "Kõne kontaktilt" "Töökõne kontaktilt" "Sissetulev kõne teenusepakkuja %s kaudu" diff --git a/java/com/android/incallui/contactgrid/res/values-eu/strings.xml b/java/com/android/incallui/contactgrid/res/values-eu/strings.xml index f08347bf061315ba2cd6e0ab1d7ee120c4b5eaa3..ba7995ad9a3e23d8352dc427b2c226d06ef11ed6 100644 --- a/java/com/android/incallui/contactgrid/res/values-eu/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-eu/strings.xml @@ -1,4 +1,20 @@ + + "%s bidez deitzen" @@ -14,6 +30,8 @@ "Zain" "Bideo-deia:" "Wi-Fi bidezko bideo-deia:" + "Bideo-dei bat egiteko eskaera bidali dizu erabiltzaile honek:" + "Wi-Fi bidezko bideo-dei bat egiteko eskaera bidali dizu erabiltzaile honek:" "Deia:" "Laneko deia:" "%s bidez jasotzen" diff --git a/java/com/android/incallui/contactgrid/res/values-fa/strings.xml b/java/com/android/incallui/contactgrid/res/values-fa/strings.xml index 0dfc0f41fb2e22b7e24b34e2debcabc53c815cc3..40873ca158494ee2a77deb4dd3639517cd1be58a 100644 --- a/java/com/android/incallui/contactgrid/res/values-fa/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-fa/strings.xml @@ -1,4 +1,20 @@ + + "تماس از طریق %s" @@ -14,6 +30,8 @@ "درانتظار" "تماس ویدئویی از" "‏تماس ویدئویی Wi-Fi از" + "درخواست ارتقای تماس ویدیویی از" + "‏در خواست ارتقای تماس ویدیویی Wi-Fi از" "تماس از" "تماس کاری از" "تماس‌های ورودی ازطریق %s" diff --git a/java/com/android/incallui/contactgrid/res/values-fi/strings.xml b/java/com/android/incallui/contactgrid/res/values-fi/strings.xml index 00503bf2f324d92dcf6160aa285bb8c89deb4f00..241fef5a182de698fe4dc9eb2ab82b43b93c3a55 100644 --- a/java/com/android/incallui/contactgrid/res/values-fi/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-fi/strings.xml @@ -1,4 +1,20 @@ + + "Käytetään operaattoria %s" @@ -14,6 +30,8 @@ "Pidossa" "Videopuhelu henkilöltä" "Wi-Fi-videopuhelu henkilöltä" + "Videoon siirtymispyyntö, jonka lähettäjä on" + "Wi-Fi-videopuheluun siirtymispyyntö, jonka lähettäjän on" "Puhelu henkilöltä" "Työpuhelu henkilöltä" "Saapuva puhelu (%s)" diff --git a/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml b/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml index ee0196d9800b31f10102817d3d80f234addab17d..3ffc1e9183de48482feca9f9a3ddf886f5f6f585 100644 --- a/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml @@ -1,4 +1,20 @@ + + "Appel par %s en cours…" @@ -14,6 +30,8 @@ "En attente" "Appel vidéo de" "Appel vidéo Wi-Fi de" + "Demande de mise à niveau vidéo de" + "Demande de mise à niveau vidéo Wi-Fi de" "Appel de" "Appel professionnel de" "Appel entrant par %s" diff --git a/java/com/android/incallui/contactgrid/res/values-fr/strings.xml b/java/com/android/incallui/contactgrid/res/values-fr/strings.xml index 9849ad6230fa53264ac7a567c5d14de6275220a0..0db6ae0894b517fc6db0ef9ac56f3048864e363d 100644 --- a/java/com/android/incallui/contactgrid/res/values-fr/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-fr/strings.xml @@ -1,4 +1,20 @@ + + "Appel via %s" @@ -14,6 +30,8 @@ "En attente" "Appel vidéo de" "Appel vidéo Wi-Fi de" + "Demande de passage en mode vidéo par" + "Demande de passage en mode vidéo Wi-Fi par" "Appel de" "Appel professionnel de" "Appel entrant via %s" diff --git a/java/com/android/incallui/contactgrid/res/values-gl/strings.xml b/java/com/android/incallui/contactgrid/res/values-gl/strings.xml index c85f336b834cdc8c2f3c48529b3ad179eca2e3be..29700145496b36c6d39f04bc415224c21659e020 100644 --- a/java/com/android/incallui/contactgrid/res/values-gl/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-gl/strings.xml @@ -1,4 +1,20 @@ + + "Chamando a través de %s" @@ -14,6 +30,8 @@ "En espera" "Videochamada de" "Videochamada por wifi de" + "Solicitude de actualización a videochamada de" + "Solicitude de actualización a videochamada por wifi de" "Chamada de" "Chamada de traballo de" "Chamada entrante a través de %s" diff --git a/java/com/android/incallui/contactgrid/res/values-gu/strings.xml b/java/com/android/incallui/contactgrid/res/values-gu/strings.xml index 5179cc0cbe84ce1e45280a6301284c7d5682af90..220bebe39689233451fedfa0a4c64b23bbfdfcb5 100644 --- a/java/com/android/incallui/contactgrid/res/values-gu/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-gu/strings.xml @@ -1,4 +1,20 @@ + + "%s મારફતે કૉલ કરી રહ્યાં છે" @@ -14,6 +30,8 @@ "હોલ્ડ પર" "આમના તરફથી વિડિઓ કૉલ" "આમના તરફથી Wi-Fi વિડિઓ કૉલ" + "આમના તરફથી વિડિઓ અપગ્રેડની વિનંતી" + "આમના તરફથી Wi-Fi વિડિઓ અપગ્રેડની વિનંતી" "આમના તરફથી કૉલ" "આમના તરફથી કાર્ય કૉલ" "%s મારફતે ઇનકમિંગ" diff --git a/java/com/android/incallui/contactgrid/res/values-hi/strings.xml b/java/com/android/incallui/contactgrid/res/values-hi/strings.xml index dec7b629d9ee90d429d36d9a8231968ca530ac0e..da128b644e40726ca3527d9e204942e3cceeed2b 100644 --- a/java/com/android/incallui/contactgrid/res/values-hi/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-hi/strings.xml @@ -1,4 +1,20 @@ + + "%s के माध्यम से कॉल किया जा रहा है" @@ -14,6 +30,8 @@ "होल्ड पर" "इससे वीडियो कॉल" "इससे वाई-फ़ाई वीडियो कॉल" + "इसकी ओर से वीडियो में अपग्रेड करने का अनुरोध" + "इसकी ओर से वाई-फ़ाई वीडियो में अपग्रेड करने का अनुरोध" "इससे कॉल" "इससे कार्य संबंधी कॉल" "%s की ओर से इनकमिंग" diff --git a/java/com/android/incallui/contactgrid/res/values-hr/strings.xml b/java/com/android/incallui/contactgrid/res/values-hr/strings.xml index d7023ac24a5f771914c02ac9dc8c362da82ff695..24429a248644d41d734710a7cb77a3a1781d1bef 100644 --- a/java/com/android/incallui/contactgrid/res/values-hr/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-hr/strings.xml @@ -1,4 +1,20 @@ + + "Pozivanje putem operatera %s" @@ -14,6 +30,8 @@ "Na čekanju" "Videopoziv s broja" "Videopoziv putem Wi-Fi veze s broja" + "Video upgrade request from" + "Wi-Fi video upgrade request from" "Poziv s broja" "Poslovni poziv s broja" "Dolazni pozivi putem davatelja %s" diff --git a/java/com/android/incallui/contactgrid/res/values-hu/strings.xml b/java/com/android/incallui/contactgrid/res/values-hu/strings.xml index f7da92322c4e41f038a5234aa8d729629770afd8..600b69f6d23b3ebf891b084e2e5dc9e23d54c686 100644 --- a/java/com/android/incallui/contactgrid/res/values-hu/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-hu/strings.xml @@ -1,4 +1,20 @@ + + "Hívás a(z) %s szolgáltatón keresztül" @@ -14,6 +30,8 @@ "Várakoztatva" "Videohívás a következőtől:" "Wi-Fi-videohívás a következőtől:" + "Videófrissítési kérelem a következőtől" + "Wi-Fi-videófrissítési kérelem a következőtől" "Hívás a következőtől:" "Munkahelyi hívás a következőről:" "Bejövő hívás a következőn keresztül: %s" diff --git a/java/com/android/incallui/contactgrid/res/values-hy/strings.xml b/java/com/android/incallui/contactgrid/res/values-hy/strings.xml index 6384fa9243754b3f5075b7582b21e30cc1110f52..88a49eb487967f8e11a833e297722b2739e13782 100644 --- a/java/com/android/incallui/contactgrid/res/values-hy/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-hy/strings.xml @@ -1,4 +1,20 @@ + + "Զանգում է %s-ի միջոցով" @@ -14,6 +30,8 @@ "Սպասում" "Տեսազանգ հետևյալ բաժանորդից՝" "Wi-Fi տեսազանգ հետևյալ բաժանորդից՝" + "Տեսազանգին անցնելու խնդրանք հետևյալ օգտատիրոջից՝" + "Wi-Fi-ի միջոցով տեսազանգին անցնելու խնդրանք հետևյալ օգտատիրոջից՝" "Զանգ հետևյալ բաժանորդից՝" "Գործնական զանգ հետևյալ բաժանորդից՝" "Մուտքային զանգ %s ցանցից" diff --git a/java/com/android/incallui/contactgrid/res/values-in/strings.xml b/java/com/android/incallui/contactgrid/res/values-in/strings.xml index 75568387b72e4f3d69167b5e3aceec793d34aaf5..f6735832a907581dc55edb33d013b4eb0260b125 100644 --- a/java/com/android/incallui/contactgrid/res/values-in/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-in/strings.xml @@ -1,4 +1,20 @@ + + "Menelepon melalui %s" @@ -14,6 +30,8 @@ "Ditangguhkan" "Video call dari" "Video call Wi-Fi dari" + "Permintaan upgrade video dari" + "Permintaan upgrade video Wi-Fi dari" "Telepon dari" "Panggilan telepon kerja dari" "Masuk melalui %s" diff --git a/java/com/android/incallui/contactgrid/res/values-is/strings.xml b/java/com/android/incallui/contactgrid/res/values-is/strings.xml index 86d577c6480dbcce78410359b8fd4f99462fa5fd..9e830312d7f616712e790a64478ba68eb9860b8b 100644 --- a/java/com/android/incallui/contactgrid/res/values-is/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-is/strings.xml @@ -1,4 +1,20 @@ + + "Hringt í gegnum %s" @@ -14,6 +30,8 @@ "Í bið" "Myndsímtal berst frá" "Wi-Fi myndsímtal berst frá" + "Beiðni um að uppfæra í myndsímtal frá" + "Beiðni um að uppfæra í Wi-Fi myndsímtal frá" "Símtal berst frá" "Vinnusímtal berst frá" "Berst í gegnum %s" diff --git a/java/com/android/incallui/contactgrid/res/values-it/strings.xml b/java/com/android/incallui/contactgrid/res/values-it/strings.xml index 9576a6d958761109d651bfbbe3560e5084fcbb24..76958cf72aa3893822b9c8070ba3b8c49f2c1ba8 100644 --- a/java/com/android/incallui/contactgrid/res/values-it/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-it/strings.xml @@ -1,4 +1,20 @@ + + "Chiamate tramite %s" @@ -14,6 +30,8 @@ "In attesa" "Videochiamata da" "Videochiamata Wi-Fi da" + "Upgrade della videochiamata richiesto da" + "Upgrade della videochiamata Wi-Fi richiesto da" "Chiamata da" "Chiamata di lavoro da" "In arrivo tramite %s" diff --git a/java/com/android/incallui/contactgrid/res/values-iw/strings.xml b/java/com/android/incallui/contactgrid/res/values-iw/strings.xml index 62771d18f1dd31e67bcaa016f8841475c2e6619f..b06c3212cd2eaa4e1a2584bc83f1b7fec8086345 100644 --- a/java/com/android/incallui/contactgrid/res/values-iw/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-iw/strings.xml @@ -1,4 +1,20 @@ + + "שיחה באמצעות %s" @@ -14,6 +30,8 @@ "בהמתנה" "שיחת וידאו מאת" "‏שיחת וידאו ב-Wi-Fi מאת" + "בקשה לשדרוג לשיחת וידאו מאת" + "‏בקשת לשדרוג לשיחת וידאו ברשת Wi-Fi מאת" "שיחה מאת" "שיחת עבודה מאת" "שיחה נכנסת באמצעות %s" diff --git a/java/com/android/incallui/contactgrid/res/values-ja/strings.xml b/java/com/android/incallui/contactgrid/res/values-ja/strings.xml index a5d958c60289ce9fd3f05df8606230fdc6237a89..a2fce09cfabc76ea20cb82587b7874446069237e 100644 --- a/java/com/android/incallui/contactgrid/res/values-ja/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ja/strings.xml @@ -1,4 +1,20 @@ + + "%s で発信中" @@ -14,6 +30,8 @@ "保留中" "ビデオハングアウトの着信" "Wi-Fi ビデオハングアウトの着信" + "ビデオハングアウトへの変更リクエスト" + "Wi-Fi ビデオハングアウトへの変更リクエスト" "着信" "仕事の通話の着信" "%s から着信" diff --git a/java/com/android/incallui/contactgrid/res/values-ka/strings.xml b/java/com/android/incallui/contactgrid/res/values-ka/strings.xml index 7848f595eba566ec30d1e530fdf4f9300310d749..cb0094d3700d00eb0525caa18ff8c8ae1f288a8c 100644 --- a/java/com/android/incallui/contactgrid/res/values-ka/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ka/strings.xml @@ -1,4 +1,20 @@ + + "მიმდინარეობს დარეკვა %s-ის მეშვეობით" @@ -14,6 +30,8 @@ "მოცდის რეჟიმში" "ვიდეოზარი აბონენტისგან" "Wi-Fi ვიდეოზარი აბონენტისგან" + "ვიდეოზარზე გადასვლის მოთხოვნა კონტაქტისგან:" + "Wi-Fi ვიდეოზარზე გადასვლის მოთხოვნა კონტაქტისგან:" "ზარი აბონენტისგან" "სამსახურებრივი ზარი აბონენტისგან" "შემომავალი, %s-იდან" diff --git a/java/com/android/incallui/contactgrid/res/values-kk/strings.xml b/java/com/android/incallui/contactgrid/res/values-kk/strings.xml index aaf260b9a183b133a4783ad93c1dee950aba9288..3fc68c2dbdb834b381c9888ac28e18bd56dd1e84 100644 --- a/java/com/android/incallui/contactgrid/res/values-kk/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-kk/strings.xml @@ -1,4 +1,20 @@ + + "%s арқылы қоңырау шалу" @@ -14,6 +30,8 @@ "Күтуде" "Бейне қоңырау шалушы:" "Wi-Fi бейне қоңырау шалушы:" + "Бейне қоңырауға ауысу өтініші:" + "Wi-Fi арқылы бейне қоңырауға ауысу өтініші:" "Қоңырау шалушы:" "Жұмыстан қоңырау шалушы:" "%s арқылы кіріс" diff --git a/java/com/android/incallui/contactgrid/res/values-km/strings.xml b/java/com/android/incallui/contactgrid/res/values-km/strings.xml index b2bfc962891a1ba4eceb30acaa2f7aeacb2be7d7..7ee21ba705137d4fd3d83b328b842e48b96da2fd 100644 --- a/java/com/android/incallui/contactgrid/res/values-km/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-km/strings.xml @@ -1,4 +1,20 @@ + + "កំពុង​ហៅតាម %s" @@ -14,6 +30,8 @@ "កំពុង​រង់ចាំ" "ការ​ហៅ​ជា​វីដេអូ​ពី" "ការ​ហៅ​ជា​វីដេអូ​តាម Wi-Fi ពី" + "ស្នើ​ដំឡើង​កំណែ​វីដេអូ​ពី" + "ស្នើ​ដំឡើង​កំណែ​វីដេអូតាម Wi-Fi ពី" "ការ​ហៅ​ពី" "ការ​ហៅ​ការងារ​ពី" "ការ​ហៅ​ចូល​តាម %s" diff --git a/java/com/android/incallui/contactgrid/res/values-kn/strings.xml b/java/com/android/incallui/contactgrid/res/values-kn/strings.xml index 0ee73baccabe5768336f987a5dd20df519392633..e90bd6b540bbad9a17b629da3af95c7af377f51a 100644 --- a/java/com/android/incallui/contactgrid/res/values-kn/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-kn/strings.xml @@ -1,4 +1,20 @@ + + "%s ಮೂಲಕ ಕರೆ ಮಾಡಲಾಗುತ್ತಿದೆ" @@ -14,6 +30,8 @@ "ಹೋಲ್ಡ್‌ ಮಾಡಲಾಗಿದೆ" "ಇವರಿಂದ ವೀಡಿಯೊ ಕರೆ" "ಇವರಿಂದ ವೈ-ಫೈ ವೀಡಿಯೊ ಕರೆ" + "ಇದರಿಂದ ವೀಡಿಯೊ ಅಪ್‌ಗ್ರೇಡ್ ವಿನಂತಿ" + "ಇದರಿಂದ ವೈಫೈ ವೀಡಿಯೊ ಅಪ್‌ಗ್ರೇಡ್ ವಿನಂತಿ" "ಇವರಿಂದ ಕರೆ" "ಇವರಿಂದ ಕೆಲಸದ ಕರೆ" "%s ಮೂಲಕ ಒಳಬರುತ್ತಿರುವ ಕರೆ" diff --git a/java/com/android/incallui/contactgrid/res/values-ko/strings.xml b/java/com/android/incallui/contactgrid/res/values-ko/strings.xml index a5a34e3d7b2c988360f599675f3c9907d239386b..85dd613bb47a082ef1a6a86e1d2757388805a15e 100644 --- a/java/com/android/incallui/contactgrid/res/values-ko/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ko/strings.xml @@ -1,4 +1,20 @@ + + "%s을(를) 통해 거는 전화" @@ -14,6 +30,8 @@ "대기 중" "화상 통화 발신:" "Wi-Fi 화상 통화 발신:" + "화상 통화로의 업그레이드를 요청한 사용자:" + "Wi-Fi 화상 통화로의 업그레이드를 요청한 사용자:" "통화 발신:" "업무 통화 발신:" "%s을(를) 통해 걸려온 전화" diff --git a/java/com/android/incallui/contactgrid/res/values-ky/strings.xml b/java/com/android/incallui/contactgrid/res/values-ky/strings.xml index a020e70d1d1b9f282763ba1f684ce738e954f433..6028022e1b0c1ac8184109f80da20fd46c099416 100644 --- a/java/com/android/incallui/contactgrid/res/values-ky/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ky/strings.xml @@ -1,4 +1,20 @@ + + "%s аркылуу чалуу" @@ -14,6 +30,8 @@ "Күтүү режиминде" "Видео чалуу" "Wi-Fi аркылуу видео чалуу:" + "Видеону кийинки версияга көтөрүү сурамы:" + "Wi-Fi аркылуу видеомаектешүү сурамы:" "Чалып жатат:" "Иш боюнча чалып жатат:" "%s аркылуу чалып жатат" diff --git a/java/com/android/incallui/contactgrid/res/values-lo/strings.xml b/java/com/android/incallui/contactgrid/res/values-lo/strings.xml index 96c1dcf11ef1fdc40be7d0ee382f7af21f30ac38..6ad1178186f6835cae7460cdc72b7b1fb36e8c70 100644 --- a/java/com/android/incallui/contactgrid/res/values-lo/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-lo/strings.xml @@ -1,4 +1,20 @@ + + "ກຳລັງໂທຜ່ານ %s" @@ -14,6 +30,8 @@ "ຖືສາຍລໍຖ້າ" "ການໂທວິດີໂອຈາກ" "Wi-Fi video call from" + "ຄຳຮ້ອງອັບເກຣດວິດີໂອຈາກ" + "ຄຳຮ້ອງອັບເກຣດວິດີໂອ Wi-Fi ຈາກ" "ການໂທຈາກ" "Work call from" "ສາຍໂທເຂົ້າ​ຈາກ %s" diff --git a/java/com/android/incallui/contactgrid/res/values-lt/strings.xml b/java/com/android/incallui/contactgrid/res/values-lt/strings.xml index e8e42fc9bfcb776d52ef4ee5a208c7c4f225e19c..3cca55c46b56c63240041054baceb1b2fa9ecee5 100644 --- a/java/com/android/incallui/contactgrid/res/values-lt/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-lt/strings.xml @@ -1,4 +1,20 @@ + + "Skambinama naudojantis „%s“ paslaugomis" @@ -14,6 +30,8 @@ "Sulaikytas" "Vaizdo skambutis nuo" "„Wi-Fi“ vaizdo skambutis nuo" + "Vaizdo skambučio naujovinimo užklausa nuo" + "„Wi-Fi“ vaizdo skambučio naujovinimo užklausa nuo" "Skambutis nuo" "Darbo skambutis nuo" "Gaunama per „%s“" diff --git a/java/com/android/incallui/contactgrid/res/values-lv/strings.xml b/java/com/android/incallui/contactgrid/res/values-lv/strings.xml index 1b3823f1e96049e7c92bde1b9f7a3bd95d616a59..87e5c9049164ede1e812d68204ac887aabe7df17 100644 --- a/java/com/android/incallui/contactgrid/res/values-lv/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-lv/strings.xml @@ -1,4 +1,20 @@ + + "Zvanu nodrošina %s" @@ -14,6 +30,8 @@ "Aizturēts" "Videozvans no:" "Wi-Fi videozvans no:" + "Videozvana jaunināšanas pieprasījums no:" + "Wi-Fi videozvana jaunināšanas pieprasījums no:" "Zvans no:" "Darba zvans no:" "Ienākošie zvani, ko nodrošina %s" diff --git a/java/com/android/incallui/contactgrid/res/values-mk/strings.xml b/java/com/android/incallui/contactgrid/res/values-mk/strings.xml index 104468359a058c75e0b2b59ae433bc40ab5bb354..fcab8f45270bafc7b5085721fd0ea0d6453d0ece 100644 --- a/java/com/android/incallui/contactgrid/res/values-mk/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-mk/strings.xml @@ -1,4 +1,20 @@ + + "Повикување преку %s" @@ -14,6 +30,8 @@ "На чекање" "Видеоповик од" "Видеоповик преку Wi-Fi од" + "Барање за надградба на видеоповик од" + "Барање за надградба на видеоповик преку Wi-Fi од" "Повик од" "Работен повик од" "Дојдовни повици преку %s" diff --git a/java/com/android/incallui/contactgrid/res/values-ml/strings.xml b/java/com/android/incallui/contactgrid/res/values-ml/strings.xml index 519e9f47872c36c453748712aa1710f22640c52e..1dfb46a931786cfe7370a7ba4ba786f86026b326 100644 --- a/java/com/android/incallui/contactgrid/res/values-ml/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ml/strings.xml @@ -1,4 +1,20 @@ + + "%s മുഖേന വിളിക്കുന്നു" @@ -14,6 +30,8 @@ "ഹോള്‍ഡിലാണ്" "ഈ വ്യക്തിയിൽ നിന്നുള്ള വീഡിയോ കോൾ" "ഈ വ്യക്തിയിൽ നിന്നുള്ള Wi-Fi വീഡിയോ കോൾ" + "ഇനിപ്പറയുന്നതിൽ നിന്നുള്ള വീഡിയോ അപ്‌ഗ്രേഡ് അഭ്യർത്ഥന" + "ഇനിപ്പറയുന്നതിൽ നിന്നുള്ള Wi-Fi വീഡിയോ അപ്‌ഗ്രേഡ് അഭ്യർത്ഥന" "ഈ വ്യക്തിയിൽ നിന്നുള്ള കോൾ" "ഈ വ്യക്തിയിൽ നിന്നുള്ള ഔദ്യോഗിക കോൾ" "%s മുഖേനയുള്ള ഇൻകമിംഗ്" diff --git a/java/com/android/incallui/contactgrid/res/values-mn/strings.xml b/java/com/android/incallui/contactgrid/res/values-mn/strings.xml index c87e071798e6c6b05040b78cc22bcd1829acd38b..c93bd468a5e6662534d965fed6b94a7f438d2a67 100644 --- a/java/com/android/incallui/contactgrid/res/values-mn/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-mn/strings.xml @@ -1,4 +1,20 @@ + + "%s-р залгаж байна" @@ -14,6 +30,8 @@ "Хүлээлгэнд байгаа" "Видео дуудлага" "Wi-Fi видео дуудлага" + "Видеог сайжруулах хүсэлт" + "Wi-Fi видеог сайжруулах хүсэлт" "Дуудлага" "Ажлын дуудлага" "%s-р ирж байна" diff --git a/java/com/android/incallui/contactgrid/res/values-mr/strings.xml b/java/com/android/incallui/contactgrid/res/values-mr/strings.xml index 6a0181774c369b8152f58567a2dc457ffd746b1f..81d76dd7045e4504db6addd06de1c1e36c42a155 100644 --- a/java/com/android/incallui/contactgrid/res/values-mr/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-mr/strings.xml @@ -1,4 +1,20 @@ + + "%s द्वारे कॉल करीत आहे" @@ -14,6 +30,8 @@ "होल्ड वर" "यावरून व्हिडिओ कॉल" "Wi-Fi व्हिडिओ कॉल" + "याकडून व्हिडिओ श्रेणीसुधारणेची विनंती" + "याकडून Wi-Fi व्हिडिओ श्रेणीसुधारणेची विनंती" "यावरील कॉल" "कडून कार्य कॉल" "%s द्वारे येणारे" diff --git a/java/com/android/incallui/contactgrid/res/values-ms/strings.xml b/java/com/android/incallui/contactgrid/res/values-ms/strings.xml index 17ca75369123773a5f5abc37e80cca0ed354fa53..815df7947b3ee7b335051a7d5c629daec1c85415 100644 --- a/java/com/android/incallui/contactgrid/res/values-ms/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ms/strings.xml @@ -1,4 +1,20 @@ + + "Memanggil melalui %s" @@ -14,6 +30,8 @@ "Panggilan ditahan" "Panggilan video daripada" "Panggilan video Wi-Fi daripada" + "Permintaan peningkatan video daripada" + "Permintaan peningkatan video Wi-Fi daripada" "Panggilan daripada" "Panggilan kerja daripada" "Panggilan masuk melalui %s" diff --git a/java/com/android/incallui/contactgrid/res/values-my/strings.xml b/java/com/android/incallui/contactgrid/res/values-my/strings.xml index 14770cfaf8577a0bcbb41d01825ee1d5e79942a9..3c8a88e417e47b51c6218c0f2e08eebb37c7015f 100644 --- a/java/com/android/incallui/contactgrid/res/values-my/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-my/strings.xml @@ -1,4 +1,20 @@ + + "%s မှတစ်ဆင့် ခေါ်ဆိုနေသည်" @@ -14,6 +30,8 @@ "ဖုန်းကိုင်ထားသည်" "အောက်ပါထံမှ ဗီဒီယိုခေါ်ဆိုမှု" "အောက်ပါထံမှ Wi-Fi ဗီဒီယိုခေါ်ဆိုမှု" + "အောက်ပါထံမှ ဗီဒီယိုအဆင့်မြှင့်ခြင်းတောင်းဆိုချက်" + "အောက်ပါထံမှ Wi-Fi ဗီဒီယိုအဆင့်မြှင့်ခြင်းတောင်းဆိုချက်" "အောက်ပါထံမှ ခေါ်ဆိုမှု" "အောက်ပါထံမှ အလုပ်ခေါ်ဆိုမှု" "%s မှတစ်ဆင့် အဝင်ခေါ်ဆိုမှု" diff --git a/java/com/android/incallui/contactgrid/res/values-nb/strings.xml b/java/com/android/incallui/contactgrid/res/values-nb/strings.xml index fbf98954c899d7beab3b436041a54f7d0b090da0..9ad8d0d6aa7fa170edae5e1e3e428b3db3743eec 100644 --- a/java/com/android/incallui/contactgrid/res/values-nb/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-nb/strings.xml @@ -1,4 +1,20 @@ + + "Ringer via %s" @@ -14,6 +30,8 @@ "På vent" "Videoanrop fra" "Wi-Fi-videoanrop fra" + "Forespørsel om videooppdatering fra" + "Forespørsel om Wi-Fi-videooppdatering fra" "Anrop fra" "Jobbrelatert anrop fra" "Innkommende via %s" diff --git a/java/com/android/incallui/contactgrid/res/values-ne/strings.xml b/java/com/android/incallui/contactgrid/res/values-ne/strings.xml index d618af43f8fb59d077b060d6e049314942ec17a2..e6e65c5fbd5157625a7fc90139fc9978caa67869 100644 --- a/java/com/android/incallui/contactgrid/res/values-ne/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ne/strings.xml @@ -1,4 +1,20 @@ + + "%s मार्फत कल गर्दै" @@ -14,6 +30,8 @@ "होल्डमा छ" "निम्नबाट भिडियो कल आएको छ" "निम्नबाट Wi-Fi मार्फत गरिएको भिडियो कल आएको छ" + "निम्नबाट आएको भिडियो अपग्रेडसम्बन्धी अनुरोध" + "निम्नबाट आएको Wi-Fi मार्फत भिडियो अपग्रेडसम्बन्धी अनुरोध" "निम्नबाट कल आएको छ" "निम्नबाट कार्य सम्बन्धी कल आएको छ" "%s मार्फत गरिएको आगमन कल" diff --git a/java/com/android/incallui/contactgrid/res/values-nl/strings.xml b/java/com/android/incallui/contactgrid/res/values-nl/strings.xml index 10dcd13f045c5d227f2d82a64f134cf977451302..828a7a22846474a45e694aed045beabc9de4ec50 100644 --- a/java/com/android/incallui/contactgrid/res/values-nl/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-nl/strings.xml @@ -1,4 +1,20 @@ + + "Bellen via %s" @@ -14,6 +30,8 @@ "In de wacht" "Videogesprek van" "Wifi-videogesprek van" + "Upgradeverzoek voor videogesprek van" + "Upgradeverzoek voor wifi-videogesprek van" "Oproep van" "Zakelijke oproep van" "Inkomend via %s" diff --git a/java/com/android/incallui/contactgrid/res/values-no/strings.xml b/java/com/android/incallui/contactgrid/res/values-no/strings.xml index fbf98954c899d7beab3b436041a54f7d0b090da0..9ad8d0d6aa7fa170edae5e1e3e428b3db3743eec 100644 --- a/java/com/android/incallui/contactgrid/res/values-no/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-no/strings.xml @@ -1,4 +1,20 @@ + + "Ringer via %s" @@ -14,6 +30,8 @@ "På vent" "Videoanrop fra" "Wi-Fi-videoanrop fra" + "Forespørsel om videooppdatering fra" + "Forespørsel om Wi-Fi-videooppdatering fra" "Anrop fra" "Jobbrelatert anrop fra" "Innkommende via %s" diff --git a/java/com/android/incallui/contactgrid/res/values-pa/strings.xml b/java/com/android/incallui/contactgrid/res/values-pa/strings.xml index fb261d649ad5a7931edbcddef347ab3b847af577..1d4801c431e2d5ab054860a13123c6aeb02b9be8 100644 --- a/java/com/android/incallui/contactgrid/res/values-pa/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-pa/strings.xml @@ -1,4 +1,20 @@ + + "%s ਰਾਹੀਂ ਕਾਲ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ" @@ -14,6 +30,8 @@ "ਰੋਕ ਕੇ ਰੱਖੀ ਗਈ" "ਇਸ ਤੋਂ ਵੀਡੀਓ ਕਾਲ" "ਇਸ ਤੋਂ Wi-Fi ਵੀਡੀਓ ਕਾਲ" + "ਇਸ ਤੋਂ ਵੀਡੀਓ ਅੱਪਗ੍ਰੇਡ ਬੇਨਤੀ" + "ਇਸ ਤੋਂ Wi-Fi ਵੀਡੀਓ ਅੱਪਗ੍ਰੇਡ ਬੇਨਤੀ" "ਇਸ ਤੋਂ ਕਾਲ" "ਇਸ ਤੋਂ ਕੰਮ ਸਬੰਧੀ ਕਾਲ" "%s ਰਾਹੀਂ ਇਨਕਮਿੰਗ" diff --git a/java/com/android/incallui/contactgrid/res/values-pl/strings.xml b/java/com/android/incallui/contactgrid/res/values-pl/strings.xml index 998e49e3ef6a202df246b95ebe9462da6310e9b4..586f39e6518e780eda63b398cd4e2ebbc501aa10 100644 --- a/java/com/android/incallui/contactgrid/res/values-pl/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-pl/strings.xml @@ -1,4 +1,20 @@ + + "Dzwonię przez %s" @@ -14,6 +30,8 @@ "Oczekujące" "Rozmowa wideo z:" "Rozmowa wideo przez Wi-Fi z:" + "Prośba o przejście na rozmowę wideo wysłana przez:" + "Prośba o przejście na rozmowę wideo przez Wi-Fi wysłana przez:" "Połączenie z:" "Połączenie służbowe z:" "Przychodzące z sieci %s" diff --git a/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml b/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml index 4365cba595355403f84b595475c67868eb453010..a445cdf600ab22122a4fe31cef08cabe17e8d404 100644 --- a/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml @@ -1,4 +1,20 @@ + + "Ligando via %s" @@ -14,6 +30,8 @@ "Em espera" "Videochamada de" "Videochamada via Wi-Fi de" + "Solicitação de upgrade de vídeo de" + "Solicitação de upgrade de vídeo por Wi-Fi de" "Chamada de" "Chamada de trabalho de" "Chamada de %s" diff --git a/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml b/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml index 55d3c26950038a15b3bccfe5ec6a0d596ec06cae..ca07b3fc97558de087a2de9f3d5ccb6370d42ea9 100644 --- a/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml @@ -1,4 +1,20 @@ + + "A telefonar através de %s…" @@ -14,6 +30,8 @@ "Em espera" "Videochamada de" "Videochamada a partir de rede Wi-Fi de" + "Pedido de atualização para videochamada de" + "Pedido de atualização para videochamada por Wi-Fi de" "Chamada de" "Chamada de trabalho de" "Chamada recebida através de %s" diff --git a/java/com/android/incallui/contactgrid/res/values-pt/strings.xml b/java/com/android/incallui/contactgrid/res/values-pt/strings.xml index 4365cba595355403f84b595475c67868eb453010..a445cdf600ab22122a4fe31cef08cabe17e8d404 100644 --- a/java/com/android/incallui/contactgrid/res/values-pt/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-pt/strings.xml @@ -1,4 +1,20 @@ + + "Ligando via %s" @@ -14,6 +30,8 @@ "Em espera" "Videochamada de" "Videochamada via Wi-Fi de" + "Solicitação de upgrade de vídeo de" + "Solicitação de upgrade de vídeo por Wi-Fi de" "Chamada de" "Chamada de trabalho de" "Chamada de %s" diff --git a/java/com/android/incallui/contactgrid/res/values-ro/strings.xml b/java/com/android/incallui/contactgrid/res/values-ro/strings.xml index f8d1c9b5432bf5d1473e7d22ad6f49ff0122bc31..180a01f4c1294740dd567770159bb7bb5c46c9b2 100644 --- a/java/com/android/incallui/contactgrid/res/values-ro/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ro/strings.xml @@ -1,4 +1,20 @@ + + "Se apelează prin %s" @@ -14,6 +30,8 @@ "În așteptare" "Apel video de la" "Apel video prin Wi-Fi de la" + "Solicitare de upgrade la apel video de la" + "Solicitare de upgrade la apel video prin Wi-Fi de la" "Apel primit de la" "Apel de serviciu de la" "Primite prin %s" diff --git a/java/com/android/incallui/contactgrid/res/values-ru/strings.xml b/java/com/android/incallui/contactgrid/res/values-ru/strings.xml index dfbc08828b4ea2f9a98fd3c637e93551f1a4c118..e0a63518f36b505d18fb7ba5ac34b7bd77509208 100644 --- a/java/com/android/incallui/contactgrid/res/values-ru/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ru/strings.xml @@ -1,4 +1,20 @@ + + "Вызов через %s" @@ -14,6 +30,8 @@ "На удержании" "Видеовызов от" "Видеовызов по Wi-Fi от" + "Запрос на переход к видеовстрече от:" + "Запрос на переход к видеовстрече через Wi-Fi от:" "Вызов от" "Рабочий вызов от" "Входящий вызов (оператор: %s)" diff --git a/java/com/android/incallui/contactgrid/res/values-si/strings.xml b/java/com/android/incallui/contactgrid/res/values-si/strings.xml index 00ca2aa90bf8ac8a056543a62dd35b4fd1f2b3f5..451dc396ce1454120137410f964b3f511d5dbcce 100644 --- a/java/com/android/incallui/contactgrid/res/values-si/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-si/strings.xml @@ -1,4 +1,20 @@ + + "%s හරහා අමතමින්" @@ -14,6 +30,8 @@ "රඳවා ගත්" "වෙතින් වීඩියෝ ඇමතුම" "වෙතින් Wi-Fi වීඩියෝ ඇමතුම" + "වෙතින් වීඩියෝ උත්ශ්‍රේණි කිරීමේ ඉල්ලීම" + "වෙතින් Wi-Fi වීඩියෝ උත්ශ්‍රේණි කිරීමේ ඉල්ලීම" "වෙතින් ඇමතුම" "වෙතින් කාර්යාල ඇමතුම" "%s හරහා එන" diff --git a/java/com/android/incallui/contactgrid/res/values-sk/strings.xml b/java/com/android/incallui/contactgrid/res/values-sk/strings.xml index 40039ee9aa40003316c7cbb7981fa9dd80f3d5c5..ae21ec855dcba5c8d85b7a90235b699b5606b28c 100644 --- a/java/com/android/incallui/contactgrid/res/values-sk/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-sk/strings.xml @@ -1,4 +1,20 @@ + + "Voláte prostredníctvom poskytovateľa %s" @@ -14,6 +30,8 @@ "Podržané" "Videohovor od:" "Videohovor cez Wi-Fi od:" + "Žiadosť o inováciu na videohovor od používateľa" + "Žiadosť o inováciu na videohovor cez Wi-Fi od používateľa" "Hovor od:" "Pracovný hovor od:" "Prichádzajúci hovor prostredníctvom poskytovateľa %s" diff --git a/java/com/android/incallui/contactgrid/res/values-sl/strings.xml b/java/com/android/incallui/contactgrid/res/values-sl/strings.xml index f76b5cdacda464bd3283b5a13aa3c8e48167d100..1d93d21a4410616469798181edc6be80f5e01354 100644 --- a/java/com/android/incallui/contactgrid/res/values-sl/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-sl/strings.xml @@ -1,4 +1,20 @@ + + "Klicanje prek ponudnika %s" @@ -14,6 +30,8 @@ "Zadržano" "Videoklic osebe" "Videoklic prek omrežja Wi-Fi osebe" + "Zahteva za nadgradnjo v video – zahteva osebe" + "Zahteva za nadgradnjo v video prek omrežja Wi-Fi – zahteva osebe" "Klic osebe" "Delovni klic osebe" "Dohodni klic prek storitve %s" diff --git a/java/com/android/incallui/contactgrid/res/values-sq/strings.xml b/java/com/android/incallui/contactgrid/res/values-sq/strings.xml index 34ec2d1f6ba2f421be45829bcd36a208a597d19c..8c28eb7eacbab4233b0a20a2cb28cb600f77b262 100644 --- a/java/com/android/incallui/contactgrid/res/values-sq/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-sq/strings.xml @@ -1,4 +1,20 @@ + + "Telefonatë nëpërmjet %s" @@ -14,6 +30,8 @@ "Në pritje" "Telefonatë me video nga" "Telefonatë me video në Wi-Fi nga" + "Kërkesë për përmirësimin me video nga" + "Kërkesë për përmirësimin me video me Wi-Fi nga" "Telefonatë nga" "Telefonatë pune nga" "Telefonatë hyrëse nëpërmjet %s" diff --git a/java/com/android/incallui/contactgrid/res/values-sr/strings.xml b/java/com/android/incallui/contactgrid/res/values-sr/strings.xml index 9ad149905c1c23944921a0883849e36856818685..66ea45d6ec0d1323cc713ff151ec9caedd3f4b06 100644 --- a/java/com/android/incallui/contactgrid/res/values-sr/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-sr/strings.xml @@ -1,4 +1,20 @@ + + "Позивамо преко %s" @@ -14,6 +30,8 @@ "На чекању" "Видео позив од" "Wi-Fi видео позив од" + "Захтев за прелазак на видео позив од" + "Захтев за прелазак на видео позив преко Wi-Fi-ја од" "Позив од" "Пословни позив од" "Долазни позив преко %s" diff --git a/java/com/android/incallui/contactgrid/res/values-sv/strings.xml b/java/com/android/incallui/contactgrid/res/values-sv/strings.xml index d5dd15953ee2e29eb397cec1c7456ec8ee2933ea..931d9c98d5c59b66cfade519c45bf641c54c646b 100644 --- a/java/com/android/incallui/contactgrid/res/values-sv/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-sv/strings.xml @@ -1,4 +1,20 @@ + + "Ringer med %s" @@ -14,6 +30,8 @@ "Parkerat" "Videosamtal från" "Wi-Fi-videosamtal från" + "Begäran om videouppgradering från" + "Begäran om uppgradering av Wi-Fi-video från" "Samtal från" "Jobbsamtal från" "Inkommande via %s" diff --git a/java/com/android/incallui/contactgrid/res/values-sw/strings.xml b/java/com/android/incallui/contactgrid/res/values-sw/strings.xml index 72bc26f58879dfee04c9f7a9493fa113877e733a..581d7970a3c7310cbe53fd07a57a051299bade63 100644 --- a/java/com/android/incallui/contactgrid/res/values-sw/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-sw/strings.xml @@ -1,4 +1,20 @@ + + "Inapiga simu kupitia %s" @@ -14,6 +30,8 @@ "Imesitishwa" "Simu ya video kutoka kwa" "Simu ya video kupitia Wi-Fi kutoka kwa" + "Umetumiwa ombi ili ubadilishe utumie simu ya video na" + "Umetumiwa ombi ili ubadilishe utumie simu ya video kwenye Wi-Fi na" "Simu kutoka kwa" "Simu ya kazi kutoka kwa" "Simu zinazoingia kupitia %s" diff --git a/java/com/android/incallui/contactgrid/res/values-ta/strings.xml b/java/com/android/incallui/contactgrid/res/values-ta/strings.xml index 2f5b1b81db24fd79c1cb893e51109b7ffba8da6c..37ff87681bf6255d352204ae32d846c808545986 100644 --- a/java/com/android/incallui/contactgrid/res/values-ta/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ta/strings.xml @@ -1,4 +1,20 @@ + + "%s வழியாக அழைக்கிறது" @@ -14,6 +30,8 @@ "ஹோல்டில் உள்ளது" "வீடியோ அழைப்பு:" "வைஃபை வீடியோ அழைப்பு:" + "வீடியோவை மேம்படுத்துவதற்கான கோரிக்கை:" + "வைஃபையில் வீடியோவை மேம்படுத்துவதற்கான கோரிக்கை:" "அழைப்பு:" "அழைப்பு (பணி) :" "%s மூலம் உள்வரும் அழைப்பு" diff --git a/java/com/android/incallui/contactgrid/res/values-te/strings.xml b/java/com/android/incallui/contactgrid/res/values-te/strings.xml index 52038dbf806a37f0f38a852f0d3a07dbff805f5a..913c9448aa7ce33d7fa8e22e9d0efa7fce7ea559 100644 --- a/java/com/android/incallui/contactgrid/res/values-te/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-te/strings.xml @@ -1,4 +1,20 @@ + + "%s ద్వారా కాల్ చేస్తోంది" @@ -14,6 +30,8 @@ "హోల్డ్‌లో ఉంది" "వీరి నుండి వీడియో కాల్:" "వీరి నుండి Wi-Fi వీడియో కాల్:" + "వీరి నుండి వీడియో అప్‌గ్రేడ్ అభ్యర్థన" + "వీరి నుండి Wi-Fi వీడియో అప్‌గ్రేడ్ అభ్యర్థన" "వీరి నుండి కాల్:" "వీరి నుండి కార్యాలయ కాల్:" "%s ద్వారా ఇన్‌కమింగ్ కాల్" diff --git a/java/com/android/incallui/contactgrid/res/values-th/strings.xml b/java/com/android/incallui/contactgrid/res/values-th/strings.xml index 419db19cce33f65bad6c13658e888dfc6ba51d79..6503959e4fcaae8fbc4c54b030843b2da7f30e0c 100644 --- a/java/com/android/incallui/contactgrid/res/values-th/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-th/strings.xml @@ -1,4 +1,20 @@ + + "โทรผ่าน %s" @@ -14,6 +30,8 @@ "พักสาย" "แฮงเอาท์วิดีโอจาก" "แฮงเอาท์วิดีโอผ่าน Wi-Fi จาก" + "คำขออัปเกรดวิดีโอจาก" + "คำขออัปเกรดวิดีโอผ่าน Wi-Fi จาก" "โทรจาก" "โทรเรื่องงานจาก" "สายเรียกเข้าผ่าน %s" diff --git a/java/com/android/incallui/contactgrid/res/values-tl/strings.xml b/java/com/android/incallui/contactgrid/res/values-tl/strings.xml index 282ec106fb4a4fe27b2caf587e7a9fb08baef213..7fa063b61eff73c0d53198dceec2de5dc07cb0af 100644 --- a/java/com/android/incallui/contactgrid/res/values-tl/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-tl/strings.xml @@ -1,4 +1,20 @@ + + "Tumatawag sa pamamagitan ng %s" @@ -14,6 +30,8 @@ "Naka-hold" "Video call mula kay" "Wi-Fi na video call mula kay" + "Kahilingan upang i-upgrade ang video mula kay" + "Kahilingan upang i-upgrade ang video gamit ang Wi-Fi mula kay" "Tawag mula kay" "Tawag sa trabaho mula kay" "Papasok sa pamamagitan ng %s" diff --git a/java/com/android/incallui/contactgrid/res/values-tr/strings.xml b/java/com/android/incallui/contactgrid/res/values-tr/strings.xml index 5ecbf3543306ccf29ceb32fb6bb83c70b52a7cdf..1ce565dcad57ceb8e364f0a562f5a4afd3148b02 100644 --- a/java/com/android/incallui/contactgrid/res/values-tr/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-tr/strings.xml @@ -1,4 +1,20 @@ + + "%s üzerinden çağrı yapılıyor" @@ -14,6 +30,8 @@ "Beklemede" "Gelen video görüşmesi isteği:" "Gelen kablosuz video görüşmesi isteği:" + "Görüntülü görüşmeye geçme isteği alındı:" + "Kablosuz görüntülü görüşmeye geçme isteği alındı:" "Gelen çağrı:" "Gelen iş çağrısı:" "%s adlı sağlayıcı üzerinden gelen çağrı" diff --git a/java/com/android/incallui/contactgrid/res/values-uk/strings.xml b/java/com/android/incallui/contactgrid/res/values-uk/strings.xml index 7b84fb650032e835417919732b0f66319eb2fde8..0d4a595cadc3cc595863c344ae05b7812331eeb5 100644 --- a/java/com/android/incallui/contactgrid/res/values-uk/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-uk/strings.xml @@ -1,4 +1,20 @@ + + "Виклик здійснюється через оператора %s" @@ -14,6 +30,8 @@ "Утримується" "Відеодзвінок від:" "Відеодзвінок через Wi-Fi від:" + "Запит на відеодзвінок від користувача" + "Запит на відеодзвінок через Wi-Fi від користувача" "Виклик від:" "Виклик на робочий телефон від:" "Вхідні виклики через оператора %s" diff --git a/java/com/android/incallui/contactgrid/res/values-ur/strings.xml b/java/com/android/incallui/contactgrid/res/values-ur/strings.xml index 6584181fb863c9299b5c4f335e68450030e43246..793e4879dda86062e5492bb73bce80e901125819 100644 --- a/java/com/android/incallui/contactgrid/res/values-ur/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ur/strings.xml @@ -1,4 +1,20 @@ + + "کالنگ بذریعہ %s" @@ -14,6 +30,8 @@ "ہولڈ پر ہے" "ویڈیو کال منجانب" "‏Wi-Fi ویڈیو کال منجانب" + "ویڈیو اپ گریڈ کی درخواست منجانب" + "‏Wi-Fi ویڈیو اپ گریڈ کی درخواست منجانب" "کال منجانب" "دفتری کال منجانب" "%s کے ذریعے آنے والی کال" diff --git a/java/com/android/incallui/contactgrid/res/values-uz/strings.xml b/java/com/android/incallui/contactgrid/res/values-uz/strings.xml index db11a1822e21f86c374553e202c63fc457c0a6e2..a5ce1caeaf38fa483b4e45172551523db6f0c14c 100644 --- a/java/com/android/incallui/contactgrid/res/values-uz/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-uz/strings.xml @@ -1,4 +1,20 @@ + + "%s orqali qo‘ng‘rioq qilinmoqda" @@ -14,6 +30,8 @@ "Kutish rejimida" "Kimdan video qo‘ng‘iroq:" "Wi-Fi orqali kimdan video qo‘ng‘iroq:" + "Bu foydalanuvchi video suhbatga o‘tishni so‘ramoqda:" + "Bu foydalanuvchi Wi-Fi orqali video suhbatga o‘tishni so‘ramoqda:" "Kimdan qo‘ng‘iroq:" "Ish telefoniga kimdan qo‘ng‘iroq:" "Kiruvchi qo‘ng‘iroq (operator: %s)" diff --git a/java/com/android/incallui/contactgrid/res/values-vi/strings.xml b/java/com/android/incallui/contactgrid/res/values-vi/strings.xml index 340a115774ce2c0352c5096d2c24ad94b3c344ce..9ce0f18389d369f86d27bdba2cc40d9573457a5a 100644 --- a/java/com/android/incallui/contactgrid/res/values-vi/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-vi/strings.xml @@ -1,4 +1,20 @@ + + "Đang gọi điện qua %s" @@ -14,6 +30,8 @@ "Đang chờ" "Cuộc gọi điện video từ" "Cuộc gọi điện video qua Wi-Fi từ" + "Yêu cầu nâng cấp video từ" + "Yêu cầu nâng cấp video Wi-Fi từ" "Cuộc gọi từ" "Cuộc gọi về công việc từ" "Cuộc gọi đến qua %s" diff --git a/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml b/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml index 16031b81131f132a6d252f3176960541ec6883a7..af5008af0994abfa5c86af6b490ae9f82db9b32c 100644 --- a/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml @@ -1,4 +1,20 @@ + + "正在通过%s进行通话" @@ -14,6 +30,8 @@ "保持" "视频通话来自:" "WLAN 视频通话来自:" + "视频通话升级请求来自:" + "WLAN 视频通话升级请求来自:" "通话来自:" "工作通话来自:" "有人通过 %s 来电" diff --git a/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml b/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml index 14a444124d9fba4a99a4bf3ef950ddc8e3679025..9f47481759fe3306c4fb27cd635c18b643b000bf 100644 --- a/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml @@ -1,4 +1,20 @@ + + "正在透過 %s 撥號" @@ -14,6 +30,8 @@ "保留" "視像通話來自" "Wi-Fi 視像通話來自" + "視像升級要求來自" + "Wi-Fi 視像升級要求來自" "通話來自" "工作通話來自" "透過 %s 的來電" diff --git a/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml b/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml index bdee41e678a4983eaac0563beafca232dc7f5bed..563bb2832014a90ea56ed858a5a0e569546313e9 100644 --- a/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml @@ -1,4 +1,20 @@ + + "正在透過 %s 撥號" @@ -14,6 +30,8 @@ "保留中" "視訊通話來電:" "Wi-Fi 視訊通話來電:" + "視訊升級要求,來自:" + "Wi-Fi 視訊升級要求,來自:" "語音來電:" "公司來電:" "有人透過 %s 來電" diff --git a/java/com/android/incallui/contactgrid/res/values-zu/strings.xml b/java/com/android/incallui/contactgrid/res/values-zu/strings.xml index 150d5cc98d7c919e6821dfb0b1e8de14accc77d4..19951ccf7c0cbbb3a075448d88cca8eacf82532d 100644 --- a/java/com/android/incallui/contactgrid/res/values-zu/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-zu/strings.xml @@ -1,4 +1,20 @@ + + "Ishaya ucingo nge-%s" @@ -14,6 +30,8 @@ "Ibambile" "Ikholi yevidiyo kusukela ku-" "Ikholi yevidiyo ye-Wi-Fi kusukela ku-" + "Isicelo sokuthuthukiswa kwevidiyo kusukela" + "Isicelo sokuthuthukiswa kwevidiyo ye-Wi-Fi kusukela" "Ikholi esuka ku-" "Ikholi yomsebenzi kusukela ku-" "Ingena nge-%s" diff --git a/java/com/android/incallui/contactgrid/res/values/strings.xml b/java/com/android/incallui/contactgrid/res/values/strings.xml index 385f843b18480ab49789b6d51f8330a0e7530422..5a9272ca39fbb72f1db95ad1fd2dbb1d60107bdb 100644 --- a/java/com/android/incallui/contactgrid/res/values/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values/strings.xml @@ -1,4 +1,19 @@ + Wi-Fi video call from + + Video upgrade request from + + + Wi-Fi video upgrade request from + Call from diff --git a/java/com/android/incallui/incall/impl/ButtonChooserFactory.java b/java/com/android/incallui/incall/impl/ButtonChooserFactory.java index 0dcfdb5fe964d39f5828477387f038f98408ed6c..99364e22c8c88c03afc107305ebaf82278835690 100644 --- a/java/com/android/incallui/incall/impl/ButtonChooserFactory.java +++ b/java/com/android/incallui/incall/impl/ButtonChooserFactory.java @@ -82,12 +82,19 @@ class ButtonChooserFactory { Map mapping = createCommonMapping(); mapping.put( InCallButtonIds.BUTTON_SWITCH_TO_SECONDARY, MappingInfo.builder(4).setSlotOrder(0).build()); - mapping.put( - InCallButtonIds.BUTTON_MANAGE_VOICE_CONFERENCE, - MappingInfo.builder(4).setSlotOrder(5).build()); mapping.put( InCallButtonIds.BUTTON_UPGRADE_TO_VIDEO, MappingInfo.builder(4).setSlotOrder(10).build()); - mapping.put(InCallButtonIds.BUTTON_HOLD, MappingInfo.builder(5).setSlotOrder(0).build()); + + /* + * Unlike the other configurations, MANAGE_VOICE_CONFERENCE shares a spot with HOLD for GSM. + * On GSM, pressing hold while there's a background call just swaps to the background call. It + * doesn't make sense to show both SWITCH_TO_SECONDARY and HOLD when they do the same thing, so + * we show MANAGE_VOICE_CONFERENCE instead. Previously MANAGE_VOICE_CONFERENCE would not show. + */ + mapping.put( + InCallButtonIds.BUTTON_MANAGE_VOICE_CONFERENCE, + MappingInfo.builder(5).setSlotOrder(0).build()); + mapping.put(InCallButtonIds.BUTTON_HOLD, MappingInfo.builder(5).setSlotOrder(5).build()); return new ButtonChooser(new MappedButtonConfig(mapping)); } diff --git a/java/com/android/incallui/incall/impl/ButtonController.java b/java/com/android/incallui/incall/impl/ButtonController.java index 8c113649dbc0f2adf07500be838f34f21ef496ff..b7a47f08e573825dd8b6cca6279667e1b00a009d 100644 --- a/java/com/android/incallui/incall/impl/ButtonController.java +++ b/java/com/android/incallui/incall/impl/ButtonController.java @@ -29,6 +29,8 @@ import com.android.incallui.incall.impl.CheckableLabeledButton.OnCheckedChangeLi import com.android.incallui.incall.protocol.InCallButtonIds; import com.android.incallui.incall.protocol.InCallButtonUiDelegate; import com.android.incallui.incall.protocol.InCallScreenDelegate; +import com.android.incallui.speakerbuttonlogic.SpeakerButtonInfo; +import com.android.incallui.speakerbuttonlogic.SpeakerButtonInfo.IconSize; /** Manages a single button. */ interface ButtonController { @@ -376,36 +378,13 @@ interface ButtonController { } public void setAudioState(CallAudioState audioState) { - @StringRes int contentDescriptionResId; - if ((audioState.getSupportedRouteMask() & CallAudioState.ROUTE_BLUETOOTH) - == CallAudioState.ROUTE_BLUETOOTH) { - checkable = false; - isChecked = false; - label = R.string.incall_label_audio; - - if ((audioState.getRoute() & CallAudioState.ROUTE_BLUETOOTH) - == CallAudioState.ROUTE_BLUETOOTH) { - icon = R.drawable.quantum_ic_bluetooth_audio_white_36; - contentDescriptionResId = R.string.incall_content_description_bluetooth; - } else if ((audioState.getRoute() & CallAudioState.ROUTE_SPEAKER) - == CallAudioState.ROUTE_SPEAKER) { - icon = R.drawable.quantum_ic_volume_up_white_36; - contentDescriptionResId = R.string.incall_content_description_speaker; - } else if ((audioState.getRoute() & CallAudioState.ROUTE_WIRED_HEADSET) - == CallAudioState.ROUTE_WIRED_HEADSET) { - icon = R.drawable.quantum_ic_headset_white_36; - contentDescriptionResId = R.string.incall_content_description_headset; - } else { - icon = R.drawable.ic_phone_audio_white_36dp; - contentDescriptionResId = R.string.incall_content_description_earpiece; - } - } else { - checkable = true; - isChecked = audioState.getRoute() == CallAudioState.ROUTE_SPEAKER; - label = R.string.incall_label_speaker; - icon = R.drawable.quantum_ic_volume_up_white_36; - contentDescriptionResId = R.string.incall_content_description_speaker; - } + SpeakerButtonInfo info = new SpeakerButtonInfo(audioState, IconSize.SIZE_36_DP); + + checkable = info.checkable; + isChecked = info.isChecked; + label = info.label; + icon = info.icon; + @StringRes int contentDescriptionResId = info.contentDescription; contentDescription = delegate.getContext().getText(contentDescriptionResId); checkedContentDescription = diff --git a/java/com/android/incallui/incall/impl/InCallFragment.java b/java/com/android/incallui/incall/impl/InCallFragment.java index c5d75329f51f42cede7cfda8767bee7118203a59..d329dc903842d19fab3bda0a0545e4d878f990ad 100644 --- a/java/com/android/incallui/incall/impl/InCallFragment.java +++ b/java/com/android/incallui/incall/impl/InCallFragment.java @@ -473,6 +473,9 @@ public class InCallFragment extends Fragment inCallButtonUiDelegate.setAudioRoute(audioRoute); } + @Override + public void onAudioRouteSelectorDismiss() {} + @NonNull @Override public ButtonController getButtonController(@InCallButtonIds int id) { diff --git a/java/com/android/incallui/incall/impl/InCallPagerAdapter.java b/java/com/android/incallui/incall/impl/InCallPagerAdapter.java index 0b1088d2d4cd6ecc2be6a81258b5222dcb571729..bc0c6160786e9f28d6625f2c84bb8e87c9808f3b 100644 --- a/java/com/android/incallui/incall/impl/InCallPagerAdapter.java +++ b/java/com/android/incallui/incall/impl/InCallPagerAdapter.java @@ -21,7 +21,6 @@ import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import android.support.v4.view.PagerAdapter; -import android.text.TextUtils; import com.android.dialer.multimedia.MultimediaData; import com.android.incallui.sessiondata.MultimediaFragment; @@ -47,8 +46,7 @@ public class InCallPagerAdapter extends FragmentStatePagerAdapter { @Override public int getCount() { - if (attachments != null - && (!TextUtils.isEmpty(attachments.getText()) || attachments.hasImageData())) { + if (attachments != null && attachments.hasData()) { return 2; } return 1; diff --git a/java/com/android/incallui/incall/impl/res/values-af/strings.xml b/java/com/android/incallui/incall/impl/res/values-af/strings.xml index fd632fb9ab683c19e7528bcd4dd0a3371723064a..64529a51f9d9069c3b7c6f28e73e9340127baf81 100644 --- a/java/com/android/incallui/incall/impl/res/values-af/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-af/strings.xml @@ -1,18 +1,33 @@ + + "Video-oproep" "Hou aan" "Voeg oproep by" "Demp" + "Beëindig oproep" "Sleutelblok" - "Luidspreker" ", is aan" ", is af" "Voeg saam" "Bestuur" "Bestuur bellers" "Verwissel" - "Klank" "Nota is gestuur" diff --git a/java/com/android/incallui/incall/impl/res/values-am/strings.xml b/java/com/android/incallui/incall/impl/res/values-am/strings.xml index 9dfd0e61d05214e3e43b509bf61bba4b73c45bf4..66a38680eb2b383358aad114fb938a843cbd6383 100644 --- a/java/com/android/incallui/incall/impl/res/values-am/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-am/strings.xml @@ -1,18 +1,33 @@ + + "የቪዲዮ ጥሪ" "ይዘህ ቆይ" "ጥሪ ያክሉ" "ድምፀ-ከል አድርግ" + "ጥሪ ጨርስ" "ቁልፍ ሰሌዳ" - "የድምጽ ማጉያ" "፣ በርቷል" "፣ ጠፍቷል" "አዋህድ" "አስተዳድር" "ደዋዮችን ያስተዳድሩ" "አገላብጥ" - "ድምፅ" "ማስታወሻ ተልኳል" diff --git a/java/com/android/incallui/incall/impl/res/values-ar/strings.xml b/java/com/android/incallui/incall/impl/res/values-ar/strings.xml index a5f448a3181bba5ecc750376f1c9afe0f1983c35..e4dbfe4b6a757f805cf901c18c46e30871e8fa62 100644 --- a/java/com/android/incallui/incall/impl/res/values-ar/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ar/strings.xml @@ -1,18 +1,33 @@ + + "مكالمة فيديو" "انتظار" "إضافة مكالمة" "كتم" + "إنهاء المكالمة" "لوحة مفاتيح" - "مكبر الصوت" "، مشغل" "، غير مشغل" "دمج" "إدارة" "إدارة المتصلين" "تبديل" - "الصوت" "تم إرسال الملاحظة" diff --git a/java/com/android/incallui/incall/impl/res/values-az/strings.xml b/java/com/android/incallui/incall/impl/res/values-az/strings.xml index 5f1f8cb9861f078de955bce91ddaef481e499fde..9a1f7f8fe8fb02a095411f7322f16fb6449da259 100644 --- a/java/com/android/incallui/incall/impl/res/values-az/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-az/strings.xml @@ -1,18 +1,33 @@ + + "Video zəng" "Xətdə axlayın" "Zəng əlavə edin" "Susdurun" + "Zəngi bitirin" "Klaviatura" - "Dinamik" ", aktivdir" ", deaktivdir" "Birləşdir" "İdarə edin" "Zəng edənləri idarə edin" "Dəyişdirin" - "Səs" "Qeyd göndərildi" diff --git a/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml index bff7ed079a8dd2897b52a78f591288be5743f20a..02d6b7c96cde3fa0825d3e29715db0cea24d078c 100644 --- a/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml @@ -1,18 +1,33 @@ + + "Video poziv" "Na čekanje" "Dodaj poziv" "Isključi zvuk" + "Završi poziv" "Tastatura" - "Zvučnik" ", uključen" ", isključen" "Objedini" "Upravljaj" "Upravljajte pozivaocima" "Zameni" - "Zvuk" "Beleška je poslata" diff --git a/java/com/android/incallui/incall/impl/res/values-be/strings.xml b/java/com/android/incallui/incall/impl/res/values-be/strings.xml index 394c7c82e5f8555e7f541291158f0585929b51fb..45e1e10100b33c7fb9ef47674e0a740c55b1bfdc 100644 --- a/java/com/android/incallui/incall/impl/res/values-be/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-be/strings.xml @@ -1,18 +1,33 @@ + + "Відэавыклік" "Утрымліваць" "Дадаць выклік" "Адключыць мікрафон" + "Сконч. выкл." "Клавіятура" - "Вонк.дынамік" ", уключана" ", выключана" "Аб\'яднаць" "Кіраваць" "Кіраваць выклікаючымі абанентамі" "Пераключыць" - "Гук" "Нататка адпраўлена" diff --git a/java/com/android/incallui/incall/impl/res/values-bg/strings.xml b/java/com/android/incallui/incall/impl/res/values-bg/strings.xml index 4f5933be9f8ce264ef69f408afe2fbcc65c3b911..c339d3bca6920d06ce8666c6e547724e31f0baff 100644 --- a/java/com/android/incallui/incall/impl/res/values-bg/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-bg/strings.xml @@ -1,18 +1,33 @@ + + "Видеообажд." "Задържане" "Ново обажд." "Без звук" + "Затваряне" "Клавиатура" - "Високоговорител" "е включено" "е изключено" "Обединяване" "Управление" "Управление на обаждащите се" "Размяна" - "Звук" "Бележката е изпратена" diff --git a/java/com/android/incallui/incall/impl/res/values-bn/strings.xml b/java/com/android/incallui/incall/impl/res/values-bn/strings.xml index 9453e14bd62f0b581e9dac97343ef8facf8e7ee3..ca5837b0eb85b22cdf0297f709ffb11d3f6fc333 100644 --- a/java/com/android/incallui/incall/impl/res/values-bn/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-bn/strings.xml @@ -1,18 +1,33 @@ + + "ভিডিও কল" "ধরে থাকুন" "কল যোগ করুন" "নিঃশব্দ করুন" + "কল শেষ করুন" "কীপ্যাড" - "স্পিকার" ", চালু রয়েছে" ", বন্ধ রয়েছে" "মার্জ করুন" "পরিচালনা করুন" "কলারদের পরিচালনা করুন" "অদল বদল করুন" - "শব্দ" "নোট পাঠানো হয়েছে" diff --git a/java/com/android/incallui/incall/impl/res/values-bs/strings.xml b/java/com/android/incallui/incall/impl/res/values-bs/strings.xml index 4b47964574c81b0b5a44872ef0a15e94309aff52..26b44ea90500da9396dd06461452aba2e368d5e6 100644 --- a/java/com/android/incallui/incall/impl/res/values-bs/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-bs/strings.xml @@ -1,18 +1,33 @@ + + "Videopoziv" "Na čekanju" "Dodaj poziv" "Isključi" + "Prekini poziv" "Telefonska tastatura" - "Zvučnik" ", uključen" ", isključen" "Spoji" "Upravljaj" "Upravljanje pozivaocima" "Zamijeni" - "Zvuk" "Bilješka je poslana" diff --git a/java/com/android/incallui/incall/impl/res/values-ca/strings.xml b/java/com/android/incallui/incall/impl/res/values-ca/strings.xml index e10b7bd2d55201d4694b4515b6e0aff1d7c839aa..9c76a3a5f12860139b91047f5b7fd2d15790fb40 100644 --- a/java/com/android/incallui/incall/impl/res/values-ca/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ca/strings.xml @@ -1,18 +1,33 @@ + + "Videotrucada" "Posa en espera" "Afeg. trucada" "Silencia" + "Penja" "Teclat" - "Altaveu" ", activat" ", desactivat" "Combina" "Gestiona" "Gestiona les persones que truquen" "Canvia" - "So" "La nota s\'ha enviat" diff --git a/java/com/android/incallui/incall/impl/res/values-cs/strings.xml b/java/com/android/incallui/incall/impl/res/values-cs/strings.xml index a00c10547c03960aab48b5e13b7177ded8cd4853..69f3e53a0e777e479243f93235a980fc5a07f065 100644 --- a/java/com/android/incallui/incall/impl/res/values-cs/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-cs/strings.xml @@ -1,18 +1,33 @@ + + "Videohovor" "Podržet" "Přidat hovor" "Vyp. mikrof." + "Zavěsit" "Klávesnice" - "Reproduktor" "– zapnuto" "– vypnuto" "Sloučit" "Spravovat" "Spravovat volající" "Přepnout" - "Zvuk" "Poznámka byla odeslána" diff --git a/java/com/android/incallui/incall/impl/res/values-da/strings.xml b/java/com/android/incallui/incall/impl/res/values-da/strings.xml index 08b5cbb8e882c0e998f7081e7272234774c4d4c8..d9328afe44bfc35d31ccc647884dabba85139ad9 100644 --- a/java/com/android/incallui/incall/impl/res/values-da/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-da/strings.xml @@ -1,18 +1,33 @@ + + "Videoopkald" "Parkér" "Tilføj opkald" "Slå lyden fra" + "Slut opkald" "Tastatur" - "Højttaler" ", er til" ", er fra" "Flet" "Administrer" "Administrer opkaldere" "Byt" - "Lyd" "Noten blev sendt" diff --git a/java/com/android/incallui/incall/impl/res/values-de/strings.xml b/java/com/android/incallui/incall/impl/res/values-de/strings.xml index 5f3f8c1cbce6edae895247b2a1a9b4d79c075829..30eae96b364cee02216b60beecbd957d8c274ceb 100644 --- a/java/com/android/incallui/incall/impl/res/values-de/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-de/strings.xml @@ -1,18 +1,33 @@ + + "Videoanruf" "Halten" "Hinzufügen" "Stumm" + "Beenden" "Wähltasten" - "Lautsprecher" ", ist an" ", ist aus" "Zusammenf." "Verwalten" "Anrufer verwalten" "Wechseln" - "Audio" "Notiz gesendet" diff --git a/java/com/android/incallui/incall/impl/res/values-el/strings.xml b/java/com/android/incallui/incall/impl/res/values-el/strings.xml index 0f5a1423891206af683db69eac58082f57a7e83b..b45314fa7bf04c31e2f6690e96b9dfcfdabc16a9 100644 --- a/java/com/android/incallui/incall/impl/res/values-el/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-el/strings.xml @@ -1,18 +1,33 @@ + + "Βιντεοκλήση" "Αναμονή" "Προσθ. κλήσ." "Σίγαση" + "Τερματισμός" "Πληκτρολόγιο" - "Ηχείο" ", ενεργό" ", ανενεργό" "Συγχώνευση" "Διαχείριση" "Διαχείριση καλούντων" "Ανταλλαγή" - "Ήχος" "Η σημείωση εστάλη" diff --git a/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml b/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml index 89b72df5482b8dd1792cba3e7ac1fab3b57a6837..34323f57a64641af2295a35159940b710da0cb7b 100644 --- a/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml @@ -1,18 +1,33 @@ + + "Video call" "Hold" "Add call" "Mute" + "End call" "Keypad" - "Speaker" ", is on" ", is off" "Merge" "Manage" "Manage callers" "Swap" - "Sound" "Note sent" diff --git a/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml b/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml index 89b72df5482b8dd1792cba3e7ac1fab3b57a6837..34323f57a64641af2295a35159940b710da0cb7b 100644 --- a/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml @@ -1,18 +1,33 @@ + + "Video call" "Hold" "Add call" "Mute" + "End call" "Keypad" - "Speaker" ", is on" ", is off" "Merge" "Manage" "Manage callers" "Swap" - "Sound" "Note sent" diff --git a/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml b/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml index 89b72df5482b8dd1792cba3e7ac1fab3b57a6837..34323f57a64641af2295a35159940b710da0cb7b 100644 --- a/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml @@ -1,18 +1,33 @@ + + "Video call" "Hold" "Add call" "Mute" + "End call" "Keypad" - "Speaker" ", is on" ", is off" "Merge" "Manage" "Manage callers" "Swap" - "Sound" "Note sent" diff --git a/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml b/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml index fe9374cb9ef51790d463fda2778051f0210dbcd0..d39cf2f6f1b6890e0b1051c6485302935ddd9315 100644 --- a/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml @@ -1,18 +1,33 @@ + + "Videollamada" "Retener" "Agregar llamada" "Silenciar" + "Finalizar" "Teclado" - "Altavoz" ", activado" ", desactivado" "Combinar" "Administrar" "Administrar números" "Cambiar" - "Sonido" "Se envió la nota" diff --git a/java/com/android/incallui/incall/impl/res/values-es/strings.xml b/java/com/android/incallui/incall/impl/res/values-es/strings.xml index f2dd09bb942c11c823f5f5e31b56fcaa6ba9f144..db5a7e6438bbf9027f4733315d7483039efce208 100644 --- a/java/com/android/incallui/incall/impl/res/values-es/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-es/strings.xml @@ -1,18 +1,33 @@ + + "Videollamada" "Retener" "Añadir" "Silenciar" + "Finalizar" "Teclado" - "Altavoz" ", activado" ", desactivado" "Combinar" "Gestionar" "Administrar llamadas" "Cambiar" - "Sonido" "Nota enviada" diff --git a/java/com/android/incallui/incall/impl/res/values-et/strings.xml b/java/com/android/incallui/incall/impl/res/values-et/strings.xml index 03fa7deae3c5d79107ef697fa9cae3c9c0e82879..f4587adaa81f3c3dd6f9e3596381d59d0fcb110e 100644 --- a/java/com/android/incallui/incall/impl/res/values-et/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-et/strings.xml @@ -1,18 +1,33 @@ + + "Videokõne" "Ootele" "Lisa kõne" "Vaigista" + "Lõpeta kõne" "Klaviatuur" - "Kõlar" ", on sees" ", on väljas" "Ühenda" "Halda" "Helistajate haldamine" "Vaheta" - "Heli" "Märge on saadetud" diff --git a/java/com/android/incallui/incall/impl/res/values-eu/strings.xml b/java/com/android/incallui/incall/impl/res/values-eu/strings.xml index 51d300e2e8d1dc7f02dd51e06f1e06482423ed31..28d78a70b35c6d1c63a081f468db24ffb2452080 100644 --- a/java/com/android/incallui/incall/impl/res/values-eu/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-eu/strings.xml @@ -1,18 +1,33 @@ + + "Bideo-deia" "Utzi zain" "Gehitu deia" "Des. audioa" + "Amaitu deia" "Teklatua" - "Bozgorailua" ", aktibatuta" ", desaktib." "Bateratu" "Kudeatu" "Kudeatu deitzaileak" "Aldatu" - "Soinua" "Bidali da oharra" diff --git a/java/com/android/incallui/incall/impl/res/values-fa/strings.xml b/java/com/android/incallui/incall/impl/res/values-fa/strings.xml index a0701163e0196a61327cbd74d79d8060844fc567..a26ac75a2904ab1e6c53d0818cb78380c5371ec9 100644 --- a/java/com/android/incallui/incall/impl/res/values-fa/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-fa/strings.xml @@ -1,18 +1,33 @@ + + "تماس ویدئویی" "درحال انتظار" "افزودن تماس" "بی‌صدا کردن" + "پایان تماس" "صفحه کلید" - "بلندگو" "، فعال است" "، غیرفعال است" "ادغام" "مدیریت" "مدیریت تماس‌گیرندگان" "جابه‌جایی" - "صدا" "یادداشت ارسال شد" diff --git a/java/com/android/incallui/incall/impl/res/values-fi/strings.xml b/java/com/android/incallui/incall/impl/res/values-fi/strings.xml index d81bfbf3954198a33f807cb7bd3aa7cb9b81846b..9ae53488a1a6f92221e7fc106a14f0bd4b771c9a 100644 --- a/java/com/android/incallui/incall/impl/res/values-fi/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-fi/strings.xml @@ -1,18 +1,33 @@ + + "Videopuhelu" "Pitoon" "Lisää puhelu" "Mykistä" + "Päätä puhelu" "Näppäimistö" - "Kaiutin" ", käytössä" ", ei käytössä" "Yhdistä" "Hallinnoi" "Hallinnoi soittajia" "Vaihda" - "Ääni" "Muistiinpano lähetettiin." diff --git a/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml b/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml index 1278bce2d7796d10a624f19816735ca6ae66a3a7..cff6745d15d1feea4db1af1fc933aba093fa6620 100644 --- a/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml @@ -1,18 +1,33 @@ + + "Appel vidéo" "En attente" "Autre appel" "Couper son" + "Raccrocher" "Clavier" - "Haut-parleur" ", activé" ", désactivé" "Fusionner" "Gérer" "Gérer les appels" "Permuter" - "Son" "Note envoyée" diff --git a/java/com/android/incallui/incall/impl/res/values-fr/strings.xml b/java/com/android/incallui/incall/impl/res/values-fr/strings.xml index 5532032b98c84d2619ec298f734c41bc8a0f523a..14e92beeb031200d58c95b208974fabcde5c68dc 100644 --- a/java/com/android/incallui/incall/impl/res/values-fr/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-fr/strings.xml @@ -1,18 +1,33 @@ + + "Appel vidéo" "En attente" "Autre appel" "Couper micro" + "Raccrocher" "Clavier" - "Haut-parleur" ", activé" ", désactivé" "Fusionner" "Gérer" "Gérer les appelants" "Permuter" - "Son" "Note envoyée" diff --git a/java/com/android/incallui/incall/impl/res/values-gl/strings.xml b/java/com/android/incallui/incall/impl/res/values-gl/strings.xml index ec99b7c751cc369ff5b7509daef5b9f7d3c2a467..4b399f4eec818262f4f9a9c238b0d31a38afecd1 100644 --- a/java/com/android/incallui/incall/impl/res/values-gl/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-gl/strings.xml @@ -1,18 +1,33 @@ + + "Videochamada" "En espera" "Eng. chamada" "Ignorar" + "Finalizar chamada" "Teclado" - "Altofalante" "activado" "desactivado" "Combinar" "Xestionar" "Xestionar emisores de chamadas" "Cambiar" - "Son" "Enviouse a nota" diff --git a/java/com/android/incallui/incall/impl/res/values-gu/strings.xml b/java/com/android/incallui/incall/impl/res/values-gu/strings.xml index fb3999c9a18887f90897ed48668e8ed9c4b078b7..438f0f35183cc5bd6aa089c0aafc5c5fc413b053 100644 --- a/java/com/android/incallui/incall/impl/res/values-gu/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-gu/strings.xml @@ -1,18 +1,33 @@ + + "વિડિઓ કૉલ" "હોલ્ડ કરો" "કૉલ ઉમેરો" "મ્યૂટ કરો" + "કૉલ સમાપ્ત કરો" "કીપેડ" - "સ્પીકર" ", ચાલુ છે" ", બંધ છે" "મર્જ કરો" "સંચાલિત કરો" "કૉલર્સને સંચાલિત કરો" "સ્વેપ કરો" - "ધ્વનિ" "નોંધ મોકલી" diff --git a/java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml deleted file mode 100644 index 1f37cd50406f009d49043fe364b998d2b7ff1f40..0000000000000000000000000000000000000000 --- a/java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 88dp - diff --git a/java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..904aed2357e0e89a4c6e170c72478db55aa0cc31 --- /dev/null +++ b/java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml @@ -0,0 +1,20 @@ + + + + + 88dp + diff --git a/java/com/android/incallui/incall/impl/res/values-h580dp/styles.xml b/java/com/android/incallui/incall/impl/res/values-h650dp/styles.xml similarity index 100% rename from java/com/android/incallui/incall/impl/res/values-h580dp/styles.xml rename to java/com/android/incallui/incall/impl/res/values-h650dp/styles.xml diff --git a/java/com/android/incallui/incall/impl/res/values-hi/strings.xml b/java/com/android/incallui/incall/impl/res/values-hi/strings.xml index 6a7538dea6aec4ef570315cb1819f35c8302a3ed..39e6e6b6d6f77f1717cd90d5cd2f07aab8586d1e 100644 --- a/java/com/android/incallui/incall/impl/res/values-hi/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-hi/strings.xml @@ -1,18 +1,33 @@ + + "वीडियो कॉल" "होल्ड करें" "कॉल जोड़ें" "म्यूट करें" + "कॉल समाप्त करें" "कीपैड" - "स्‍पीकर" ", चालू है" ", बंद है" "एक बनाएं" "प्रबंधित करें" "कॉलर प्रबंधित करें" "स्वैप करें" - "ध्वनि" "नोट भेज दिया गया है" diff --git a/java/com/android/incallui/incall/impl/res/values-hr/strings.xml b/java/com/android/incallui/incall/impl/res/values-hr/strings.xml index fc431b33b3bcb0274e9c7de4265e7fe4e421051e..e440028d8a1abb9e379ed3128acb67285c614d8a 100644 --- a/java/com/android/incallui/incall/impl/res/values-hr/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-hr/strings.xml @@ -1,18 +1,33 @@ + + "Videopoziv" "Pauziraj" "Dodaj poziv" "Isklj. zvuk" + "Prekini poziv" "Tipkovnica" - "Zvučnik" ", uključeno" ", isključeno" "Spoji" "Upravljanje" "Upravljaj pozivateljima" "Zamijeni" - "Zvuk" "Bilješka je poslana" diff --git a/java/com/android/incallui/incall/impl/res/values-hu/strings.xml b/java/com/android/incallui/incall/impl/res/values-hu/strings.xml index 194c348d9c5d4e799017903d12e03706455241a6..e63ce5946c36714cc8c65ebc2949f8bcfeebfeec 100644 --- a/java/com/android/incallui/incall/impl/res/values-hu/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-hu/strings.xml @@ -1,18 +1,33 @@ + + "Videohívás" "Várakoztatás" "Hívás felv." "Némítás" + "Hívás vége" "Billentyűzet" - "Hangszóró" ", be" ", ki" "Egyesítés" "Kezelés" "Hívók kezelése" "Csere" - "Hang" "Üzenet elküldve" diff --git a/java/com/android/incallui/incall/impl/res/values-hy/strings.xml b/java/com/android/incallui/incall/impl/res/values-hy/strings.xml index 0e8054ec9b3c36841a83f44404a7f1f14c683373..ce395e70ce96f13822a8ec39d7a69f0e215a3939 100644 --- a/java/com/android/incallui/incall/impl/res/values-hy/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-hy/strings.xml @@ -1,18 +1,33 @@ + + "Տեսազանգ" "Պահել զանգը" "Ավելացնել զանգ" "Անջատել" + "Ավարտել զանգը" "Ստեղնաշար" - "Բարձրախոս" ", միացած է" ", անջատած է" "Միավորել" "Կառավարել" "Զանգողների կառավարում" "Փոխարկել" - "Ձայն" "Գրառումն ուղարկվեց" diff --git a/java/com/android/incallui/incall/impl/res/values-in/strings.xml b/java/com/android/incallui/incall/impl/res/values-in/strings.xml index f429cb4b7320413bfbbe18530e111fe4a3c9f1d7..e9d738a36ef751e21c2d99bfbd6e236875ba2fc5 100644 --- a/java/com/android/incallui/incall/impl/res/values-in/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-in/strings.xml @@ -1,18 +1,33 @@ + + "Video call" "Tahan" "Tambahkan panggilan" "Bisukan" + "Akhiri panggilan" "Keypad" - "Speaker" ", aktif" ", Nonaktif" "Gabungkan" "Kelola" "Kelola penelepon" "Tukar" - "Suara" "Catatan telah dikirim" diff --git a/java/com/android/incallui/incall/impl/res/values-is/strings.xml b/java/com/android/incallui/incall/impl/res/values-is/strings.xml index 9c3bf89bfc285895fc04f2497b9dd4a9fd679bc8..f262e3f9ff87b7dd0cfe2d40ffea2deeb54298d8 100644 --- a/java/com/android/incallui/incall/impl/res/values-is/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-is/strings.xml @@ -1,18 +1,33 @@ + + "Myndsímtal" "Setja í bið" "Bæta við" "Hljóð af" + "Ljúka" "Talnaborð" - "Hátalari" ", kveikt" ", slökkt" "Sameina" "Stjórna" "Hafa umsjón með hringjendum" "Skipta milli" - "Hljóð" "Glósa send" diff --git a/java/com/android/incallui/incall/impl/res/values-it/strings.xml b/java/com/android/incallui/incall/impl/res/values-it/strings.xml index 1cfb0be678974f23ef053b881e5ed28af941df33..f29a70260641e944421d44f7e49ef6ebb5034b1e 100644 --- a/java/com/android/incallui/incall/impl/res/values-it/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-it/strings.xml @@ -1,18 +1,33 @@ + + "Videochiamata" "In attesa" "Aggiungi chiamata" "Disattiva" + "Termina chiamata" "Tastierino" - "Altoparlante" ", attivo" ", non attivo" "Unisci" "Gestisci" "Gestisci chiamanti" "Scambia" - "Audio" "Nota inviata" diff --git a/java/com/android/incallui/incall/impl/res/values-iw/strings.xml b/java/com/android/incallui/incall/impl/res/values-iw/strings.xml index 2426fc86868855c146d7c892649d2f32c96c4a4f..bf08e3b0651bc97a9f813d1b743a706b50f8774f 100644 --- a/java/com/android/incallui/incall/impl/res/values-iw/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-iw/strings.xml @@ -1,18 +1,33 @@ + + "שיחת וידאו" "המתנה" "הוסף שיחה" "השתק" + "סיום השיחה" "לוח חיוג" - "רמקול" ", מופעל" ", מושבת" "מזג" "נהל" "ניהול המתקשרים" "החלף" - "צלילים" "ההערה נשלחה" diff --git a/java/com/android/incallui/incall/impl/res/values-ja/strings.xml b/java/com/android/incallui/incall/impl/res/values-ja/strings.xml index 9e313a072de0341b67d93720c239dbb54c39c406..b78ee202ec943f894e74c4d2b0707b015b6ff199 100644 --- a/java/com/android/incallui/incall/impl/res/values-ja/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ja/strings.xml @@ -1,18 +1,33 @@ + + "ビデオ通話" "保留" "通話を追加" "ミュート" + "通話を終了" "キーパッド" - "スピーカー" "がオンです" "がオフです" "統合" "管理" "発信者を管理" "切り替え" - "音声" "メモを送信しました" diff --git a/java/com/android/incallui/incall/impl/res/values-ka/strings.xml b/java/com/android/incallui/incall/impl/res/values-ka/strings.xml index d33af5a4662d59fd42e9eb096373a8b3fe09cd07..f6926f39cfcd81e4412920b40b5852ebee5c2f49 100644 --- a/java/com/android/incallui/incall/impl/res/values-ka/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ka/strings.xml @@ -1,18 +1,33 @@ + + "ვიდეოზარი" "შეყოვნება" "ზარის დამატ." "დადუმება" + "ზარის დასრ." "კლავიატურა" - "სპიკერი" ", ჩართულია" ", გამორთულია" "გაერთიანება" "მართვა" "აბონენტების მართვა" "შენაცვლება" - "ხმა" "ჩანიშვნა გაიგზავნა" diff --git a/java/com/android/incallui/incall/impl/res/values-kk/strings.xml b/java/com/android/incallui/incall/impl/res/values-kk/strings.xml index db9c4f6ca49514d41e10db051ae28589d6cdae4f..8da9982d0ea261e2543ff38f82e7b3141faf452c 100644 --- a/java/com/android/incallui/incall/impl/res/values-kk/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-kk/strings.xml @@ -1,18 +1,33 @@ + + "Бейне қоңырау" "Күттіру" "Қоңырау қосу" "Дыбысын өшіру" + "Қоңырауды аяқтау" "Пернетақта" - "Динамик" ", қосулы" ", өшірулі" "Біріктіру" "Басқару" "Қоңырау шалушыларды басқару" "Ауыстыру" - "Дыбыс" "Ескертпе жіберілді" diff --git a/java/com/android/incallui/incall/impl/res/values-km/strings.xml b/java/com/android/incallui/incall/impl/res/values-km/strings.xml index 6596bdf0c398c9b33578a83d2f327777c104191f..88e356a41d01411ea723c6d601dbacdde6b6c742 100644 --- a/java/com/android/incallui/incall/impl/res/values-km/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-km/strings.xml @@ -1,18 +1,33 @@ + + "ហៅ​ជា​វីដេអូ" "រង់ចាំ" "បន្ថែម​ការ​ហៅ" "បិទ​សំឡេង" + "បញ្ចប់​ការ​ហៅ" "បន្ទះ​​ចុច​លេខ" - "ឧបករណ៍​បំពង​សំឡេង" ", បាន​បើក" ", បានបិទ" "បញ្ចូលគ្នា" "គ្រប់គ្រង" "គ្រប់គ្រងអ្នក​ហៅ" "ប្ដូរ" - "សំឡេង" "បានផ្ញើចំណាំ" diff --git a/java/com/android/incallui/incall/impl/res/values-kn/strings.xml b/java/com/android/incallui/incall/impl/res/values-kn/strings.xml index c03ec09fadc8b32b549c5ac8cb4e3bdfa20f7a83..ad29b6d361f48d6c7a1a0729050b6194dbd1c969 100644 --- a/java/com/android/incallui/incall/impl/res/values-kn/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-kn/strings.xml @@ -1,18 +1,33 @@ + + "ವೀಡಿಯೊ ಕರೆ" "ಹೋಲ್ಡ್‌‌ ಮಾಡು" "ಕರೆಯನ್ನು ಸೇರಿಸಿ" "ಮ್ಯೂಟ್ ಮಾಡಿ" + "ಕರೆ ಅಂತ್ಯಗೊಳಿಸಿ" "ಕೀಪ್ಯಾಡ್‌" - "ಸ್ಪೀಕರ್‌" ", ಆನ್ ಆಗಿದೆ" ", ಆಫ್ ಆಗಿದೆ" "ವಿಲೀನಗೊಳಿಸು" "ನಿರ್ವಹಿಸು" "ಕರೆದಾತರನ್ನು ನಿರ್ವಹಿಸಿ" "ಸ್ವ್ಯಾಪ್‌ ಮಾಡು" - "ಧ್ವನಿ" "ಟಿಪ್ಪಣಿ ಕಳುಹಿಸಲಾಗಿದೆ" diff --git a/java/com/android/incallui/incall/impl/res/values-ko/strings.xml b/java/com/android/incallui/incall/impl/res/values-ko/strings.xml index e701e772f0280db16036e3cbea06ae84c0b4f381..f9bb20f8b12b7b25bd081f24f9f7bfb95708697d 100644 --- a/java/com/android/incallui/incall/impl/res/values-ko/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ko/strings.xml @@ -1,18 +1,33 @@ + + "화상 통화" "대기" "통화 추가" "음소거" + "통화 종료" "키패드" - "스피커" ", 켜짐" ", 꺼짐" "병합" "관리" "발신자 관리" "전환" - "소리" "메모가 전송되었습니다." diff --git a/java/com/android/incallui/incall/impl/res/values-ky/strings.xml b/java/com/android/incallui/incall/impl/res/values-ky/strings.xml index e51d4c582048b6e1c7ec8d8c327b07de6236fb4d..f00264dbe2a388ef0a183d039aec76b16ad45c4b 100644 --- a/java/com/android/incallui/incall/impl/res/values-ky/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ky/strings.xml @@ -1,18 +1,33 @@ + + "Видео чалуу" "Күттүрүү" "Чалууну кошуу" "Үнүн өчүрүү" + "Чалууну бүтүрүү" "Ном. тергич" - "Катуу сүйлөткүч" ", күйүк" ", өчүк" "Бириктирүү" "Башкаруу" "Чалуучуларды башкаруу" "Алмаштыруу" - "Добуш" "Билдирүү жөнөтүлдү" diff --git a/java/com/android/incallui/incall/impl/res/values-lo/strings.xml b/java/com/android/incallui/incall/impl/res/values-lo/strings.xml index 52de3ffccb2e122e4bace0351b4ec8ecbc44cbc0..2382f3241a0e213e0ecf2291943d65b6aefcc69a 100644 --- a/java/com/android/incallui/incall/impl/res/values-lo/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-lo/strings.xml @@ -1,18 +1,33 @@ + + "ໂທດ້ວຍວິດີໂອ" "ພັກສາຍຊົ່ວຄາວ" "ເພີ່ມການໂທ" "ປີດສຽງ" + "ວາງສາຍ" "ແປ້ນກົດ" - "ລຳໂພງ" ", ເປີດຢູ່" ", ປິດຢູ່" "ຮວມສາຍ" "ຈັດການ" "ຈັດການຜູ້ໂທ" "ສະຫຼັບສາຍ" - "ສຽງ" "ສົ່ງບັນທຶກແລ້ວ" diff --git a/java/com/android/incallui/incall/impl/res/values-lt/strings.xml b/java/com/android/incallui/incall/impl/res/values-lt/strings.xml index 4cd0356f35131bc042e5b31b247e72e6f39181fb..1a10884cb41732a21d9e87d96452af95b5893db5 100644 --- a/java/com/android/incallui/incall/impl/res/values-lt/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-lt/strings.xml @@ -1,18 +1,33 @@ + + "Vaizdo skambutis" "Sulaikyti" "Pr. skambutį" "Nutildyti" + "Baig. skamb." "Klaviatūra" - "Garsiakalbis" ", įjungtas" ", išjungtas" "Sujungti" "Tvarkyti" "Tvarkyti skambintojus" "Sukeisti" - "Garsas" "Užrašas išsiųstas" diff --git a/java/com/android/incallui/incall/impl/res/values-lv/strings.xml b/java/com/android/incallui/incall/impl/res/values-lv/strings.xml index 48f9ae032e7d5e4a2623d70461100443e56d7407..c19e7c0ae8b0ba045c27e0bff1be46277b5ad99d 100644 --- a/java/com/android/incallui/incall/impl/res/values-lv/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-lv/strings.xml @@ -1,18 +1,33 @@ + + "Videozvans" "Aizturēt" "Pievienot zvanu" "Izslēgt" + "Beigt zvanu" "Cipartast." - "Skaļrunis" ", ieslēgts" ", izslēgts" "Apvienot" "Pārvaldīt" "Pārvaldīt zvanītājus" "Pārslēgt" - "Skaņa" "Piezīme nosūtīta" diff --git a/java/com/android/incallui/incall/impl/res/values-mk/strings.xml b/java/com/android/incallui/incall/impl/res/values-mk/strings.xml index 5a61de5d3901edf3f57cf5c4983a816abbcef894..610a308035f7b590ef65d73ba96fb6ce4f3430aa 100644 --- a/java/com/android/incallui/incall/impl/res/values-mk/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-mk/strings.xml @@ -1,18 +1,33 @@ + + "Видеоповик" "На чекање" "Додај повик" "Исклучи звук" + "Заврши повик" "Тастатура" - "Звучник" ", е вклучен" ", е исклучен" "Спои" "Управувај" "Управувајте со повикувачите" "Замени" - "Звук" "Белешката е испратена" diff --git a/java/com/android/incallui/incall/impl/res/values-ml/strings.xml b/java/com/android/incallui/incall/impl/res/values-ml/strings.xml index 00586ffa7fe5d9fa7cad840bf8acb883da8c45cc..83c2989f0673bde21cc6a9f1ea937b5316b510e6 100644 --- a/java/com/android/incallui/incall/impl/res/values-ml/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ml/strings.xml @@ -1,18 +1,33 @@ + + "വീഡിയോ കോള്‍" "ഹോള്‍ഡുചെയ്യുക" "കോൾ ചേർക്കുക" "മ്യൂട്ടുചെയ്യുക" + "കോള്‍ അവസാനിപ്പിക്കൂ" "കീപാഡ്" - "സ്പീക്കർ" ", ഓണാണ്" ", ഓഫാണ്" "ലയിപ്പിക്കുക" "മാനേജുചെയ്യുക" "കോൾ ചെയ്യുന്നവരെ മാനേജുചെയ്യുക" "സ്വാപ്പുചെയ്യുക" - "ശബ്‌ദം" "കുറിപ്പ് അയച്ചു" diff --git a/java/com/android/incallui/incall/impl/res/values-mn/strings.xml b/java/com/android/incallui/incall/impl/res/values-mn/strings.xml index 085a405b01e01b0dce761090cbe032fdad14dfe7..9427d86d21451d4b0236c2144983abb080ef59b9 100644 --- a/java/com/android/incallui/incall/impl/res/values-mn/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-mn/strings.xml @@ -1,18 +1,33 @@ + + "Видео хурал" "Саатуулах" "Дуудлага нэмэх" "Дууг хаах" + "Дуудлагыг таслах" "Товчлуур" - "Чанга яригч" ", асаатай" ", унтраатай" "Нэгтгэх" "Удирдах" "Залгагчдыг удирдах" "Солих" - "Дуу" "Тэмдэглэлийг илгээсэн" diff --git a/java/com/android/incallui/incall/impl/res/values-mr/strings.xml b/java/com/android/incallui/incall/impl/res/values-mr/strings.xml index 8419233521de24ff5815fde7ffb798e943bd9027..194c192bd47f2ce25f915545a692b0cb07d54ac2 100644 --- a/java/com/android/incallui/incall/impl/res/values-mr/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-mr/strings.xml @@ -1,18 +1,33 @@ + + "व्हिडिओ कॉल" "होल्ड करा" "कॉल जोडा" "नि:शब्द करा" + "कॉल समाप्त करा" "कीपॅड" - "स्पीकर" ", सुरू आहे" ", बंद आहे" "विलीन करा" "व्यवस्थापित करा" "कॉलर व्यवस्थापित करा" "अदलाबदल करा" - "ध्वनी" "टीप पाठविली" diff --git a/java/com/android/incallui/incall/impl/res/values-ms/strings.xml b/java/com/android/incallui/incall/impl/res/values-ms/strings.xml index c9db8325e94d33929a0ce2614b583a0f0d617713..a918dedb4a5506129ba0f84af3867cb5209972eb 100644 --- a/java/com/android/incallui/incall/impl/res/values-ms/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ms/strings.xml @@ -1,18 +1,33 @@ + + "Pgln video" "Tunda" "Tambah pgln" "Redam" + "Tamatkn pgln" "Pad kekunci" - "Pmbsr suara" ", dihidupkan" ", Dimatikan" "Gabung" "Urus" "Urus pemanggil" "Silih" - "Bunyi" "Nota dihantar" diff --git a/java/com/android/incallui/incall/impl/res/values-my/strings.xml b/java/com/android/incallui/incall/impl/res/values-my/strings.xml index e0bfb8c711a413d3b1dcb5b321cdd2fa2fd43939..80070297bd2ccf2268c0c16c71cb989e77dbff7c 100644 --- a/java/com/android/incallui/incall/impl/res/values-my/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-my/strings.xml @@ -1,18 +1,33 @@ + + "ဗီဒီယိုခေါ်ဆိုမှု" "ခဏရပ်ထားရန်" "ထပ်ခေါ်ရန်" "အသံပိတ်ရန်" + "ဖုန်းချရန်" "ခလုတ်ခုံ" - "စပီကာ" "၊ ပွင့်နေသည်" "၊ ပိတ်နေသည်" "ပေါင်းရန်" "စီမံရန်" "ခေါ်ဆိုသူများကို စီမံခန့်ခွဲရန်" "ဖလှယ်ရန်" - "အသံ" "မှတ်စုပို့ပြီးပါပြီ" diff --git a/java/com/android/incallui/incall/impl/res/values-nb/strings.xml b/java/com/android/incallui/incall/impl/res/values-nb/strings.xml index 75200869c6b1f1e0494425f95906a92d04ca2ef3..704384ea0b83d31bef9205b2197e4d7320a1d1ef 100644 --- a/java/com/android/incallui/incall/impl/res/values-nb/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-nb/strings.xml @@ -1,18 +1,33 @@ + + "Videosamtale" "Sett på vent" "Nytt anrop" "Ignorer" + "Avslutt samtalen" "Tastatur" - "Høyttaler" "er på" "er av" "Slå sammen" "Administrer" "Håndter innringere" "Bytt" - "Lyd" "Notatet er sendt" diff --git a/java/com/android/incallui/incall/impl/res/values-ne/strings.xml b/java/com/android/incallui/incall/impl/res/values-ne/strings.xml index 6bcfb6dd27eb4e1af0ad3567d0f8637329d5f62b..beffa3e740c017204fa2bf4fd5f818fa3e815b11 100644 --- a/java/com/android/incallui/incall/impl/res/values-ne/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ne/strings.xml @@ -1,18 +1,33 @@ + + "भिडियो कल" "होल्ड गर्ने" "कल थप्नुहोस्" "म्यूट गर्ने" + "कल अन्त्य गर्ने" "किप्याड" - "स्पिकर" ", खुला छ" ", बन्द छ" "मर्ज गर्ने" "प्रबन्ध गर्ने" "कल गर्ने व्यक्तिहरूलाई व्यवस्थित गर्नुहोस्" "साट्नुहोस्" - "आवाज" "टिपोट पठाइयो" diff --git a/java/com/android/incallui/incall/impl/res/values-nl/strings.xml b/java/com/android/incallui/incall/impl/res/values-nl/strings.xml index 63f1ebd5d88ebe355fe7032797916beef5b9f816..e3c919e1ac9240e83352b2aa82b593eb9b948576 100644 --- a/java/com/android/incallui/incall/impl/res/values-nl/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-nl/strings.xml @@ -1,18 +1,33 @@ + + "Videogespr." "In wacht" "Oproep toev." "Dempen" + "Oproep beëindigen" "Toetsenblok" - "Luidspreker" ", is aan" ", is uit" "Samenvoegen" "Beheren" "Bellers beheren" "Wisselen" - "Geluid" "Notitie verzonden" diff --git a/java/com/android/incallui/incall/impl/res/values-no/strings.xml b/java/com/android/incallui/incall/impl/res/values-no/strings.xml index 75200869c6b1f1e0494425f95906a92d04ca2ef3..704384ea0b83d31bef9205b2197e4d7320a1d1ef 100644 --- a/java/com/android/incallui/incall/impl/res/values-no/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-no/strings.xml @@ -1,18 +1,33 @@ + + "Videosamtale" "Sett på vent" "Nytt anrop" "Ignorer" + "Avslutt samtalen" "Tastatur" - "Høyttaler" "er på" "er av" "Slå sammen" "Administrer" "Håndter innringere" "Bytt" - "Lyd" "Notatet er sendt" diff --git a/java/com/android/incallui/incall/impl/res/values-pa/strings.xml b/java/com/android/incallui/incall/impl/res/values-pa/strings.xml index 10a2865a653643c8566a8b6d74088c43bb842337..d7e74ed830f595d35bcd0e9fc6d08dbb42a3d0d3 100644 --- a/java/com/android/incallui/incall/impl/res/values-pa/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-pa/strings.xml @@ -1,18 +1,33 @@ + + "ਵੀਡੀਓ ਕਾਲ" "ਰੋਕ ਕੇ ਰੱਖੋ" "ਕਾਲ ਸ਼ਾਮਲ ਕਰੋ" "ਮਿਊਟ ਕਰੋ" + "ਕਾਲ ਖਤਮ ਕਰੋ" "ਕੀਪੈਡ" - "ਸਪੀਕਰ" ", ਚਾਲੂ ਹੈ" ", ਬੰਦ ਹੈ" "ਰਲਗੱਡ ਕਰੋ" "ਪ੍ਰਬੰਧਨ ਕਰੋ" "ਕਾਲਰਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ" "ਅਦਲੋ-ਬਦਲੋ" - "ਧੁਨੀ" "ਨੋਟ-ਕਥਨ ਭੇਜਿਆ ਗਿਆ" diff --git a/java/com/android/incallui/incall/impl/res/values-pl/strings.xml b/java/com/android/incallui/incall/impl/res/values-pl/strings.xml index 4bf6a5833f90b4a8e7c8fa42ff4959904b39259d..9971d75532dbfeb5b3a909f11dc4dec446137cac 100644 --- a/java/com/android/incallui/incall/impl/res/values-pl/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-pl/strings.xml @@ -1,18 +1,33 @@ + + "Rozmowa wid." "Wstrzymaj" "Dodaj poł." "Wycisz" + "Zakończ" "Klawiatura" - "Głośnik" "– włączony" "– wyłączony" "Scal" "Zarządzaj" "Zarządzaj rozmówcami" "Przełącz" - "Dźwięk" "Notatka wysłana" diff --git a/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml b/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml index 7ca6b6b6be84b2ab47682597d6098e42108922c5..538c20c0be0de912453f7e9429463fd94046b121 100644 --- a/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml @@ -1,18 +1,33 @@ + + "Videocham." "Em espera" "Adic chamada" "Desativar" + "Encerrar" "Teclado" - "Alto-falante" "ativado" "desativado" "Mesclar" "Gerenciar" "Gerenciar os autores das chamadas" "Trocar" - "Som" "Nota enviada" diff --git a/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml b/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml index 750e57e3753b69c8f7ca754722fd971f1ffaaa36..376ee84433ff09807850196cc5c30103f53916e1 100644 --- a/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml @@ -1,18 +1,33 @@ + + "Videochamada" "Em espera" "Adic. cham." "Desativ. som" + "Term. cham." "Teclado" - "Altifalante" ", ativado" ", desativado" "Unir" "Gerir" "Gerir autores das chamadas" "Alternar" - "Som" "Nota enviada" diff --git a/java/com/android/incallui/incall/impl/res/values-pt/strings.xml b/java/com/android/incallui/incall/impl/res/values-pt/strings.xml index 7ca6b6b6be84b2ab47682597d6098e42108922c5..538c20c0be0de912453f7e9429463fd94046b121 100644 --- a/java/com/android/incallui/incall/impl/res/values-pt/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-pt/strings.xml @@ -1,18 +1,33 @@ + + "Videocham." "Em espera" "Adic chamada" "Desativar" + "Encerrar" "Teclado" - "Alto-falante" "ativado" "desativado" "Mesclar" "Gerenciar" "Gerenciar os autores das chamadas" "Trocar" - "Som" "Nota enviada" diff --git a/java/com/android/incallui/incall/impl/res/values-ro/strings.xml b/java/com/android/incallui/incall/impl/res/values-ro/strings.xml index 1f93da9be0449f28044208eeeedaf10f1f543945..81dcdf3cce100052d7ab5d9cd74ad04f5099f546 100644 --- a/java/com/android/incallui/incall/impl/res/values-ro/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ro/strings.xml @@ -1,18 +1,33 @@ + + "Apel video" "În așteptare" "Încă un apel" "Dezactivați" + "Încheiați" "Tastatură" - "Difuzor" ", e activat" ", dezactivat" "Îmbinați" "Gestionați" "Gestionați apelanții" "Schimbați" - "Sunet" "Nota a fost trimisă" diff --git a/java/com/android/incallui/incall/impl/res/values-ru/strings.xml b/java/com/android/incallui/incall/impl/res/values-ru/strings.xml index 89192c3aead4e4fc740022cacd4c9c74d64e645d..274f8fff7faca06fbb609d57b368f92e81c2f699 100644 --- a/java/com/android/incallui/incall/impl/res/values-ru/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ru/strings.xml @@ -1,18 +1,33 @@ + + "Видеовызов" "Удерживать" "Добавить вызов" "Выкл. звук" + "Завершить вызов" "Клавиатура" - "Динамик" ", включен" ", отключен" "Объединить" "Управление" "Управление абонентами" "Переключить" - "Звук" "Сообщение отправлено" diff --git a/java/com/android/incallui/incall/impl/res/values-si/strings.xml b/java/com/android/incallui/incall/impl/res/values-si/strings.xml index 209bb77b1ad933b66f437a94d36d900a56f15626..a600c2193ef3381ff306109ce31afd7c1ac9a64c 100644 --- a/java/com/android/incallui/incall/impl/res/values-si/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-si/strings.xml @@ -1,18 +1,33 @@ + + "වීඩියෝ ඇමතුම" "රඳවා ගන්න" "ඇමතුම එක් ක." "නිහඬ කරන්න" + "ඇමතුම නිම ක." "යතුරු පුවරුව" - "ස්පීකරය" ", සක්‍රියයි" ", අක්‍රියයි" "ඒකාබද්ධ කර." "කළමනාකරණය ක." "අමතන්නන් කළමනාකරණය කරන්න" "මාරු කරන්න" - "හඬ" "සටහන යවන ලදී" diff --git a/java/com/android/incallui/incall/impl/res/values-sk/strings.xml b/java/com/android/incallui/incall/impl/res/values-sk/strings.xml index 4e06aee32b5efe5cbead245fb6757dd67313cd0f..d74d19e2214f601b075caa5311e2cf9dae7fcb33 100644 --- a/java/com/android/incallui/incall/impl/res/values-sk/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-sk/strings.xml @@ -1,18 +1,33 @@ + + "Videohovor" "Podržať" "Pridať hovor" "Vypnúť zvuk" + "Ukonč. hovor" "Klávesnica" - "Reproduktor" ", je zapnutý" ", je vypnutý" "Zlúčiť" "Spravovať" "Spravovať volajúcich" "Zameniť" - "Zvuk" "Poznámka bola odoslaná" diff --git a/java/com/android/incallui/incall/impl/res/values-sl/strings.xml b/java/com/android/incallui/incall/impl/res/values-sl/strings.xml index 7cdb6c88c8c02f76f6cd9b8c25dabe3911ee3e75..782ce444bf7af6a6e0f4537b263f8930df3fc513 100644 --- a/java/com/android/incallui/incall/impl/res/values-sl/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-sl/strings.xml @@ -1,18 +1,33 @@ + + "Videoklic" "Zadrži" "Dodaj klic" "Izklopi zvok" + "Končaj klic" "Tipkovnica" - "Zvočnik" ", vklopljen" ", izklopljen" "Združi" "Upravljanje" "Upravljanje klicateljev" "Zamenjaj" - "Zvok" "Opomba je poslana" diff --git a/java/com/android/incallui/incall/impl/res/values-sq/strings.xml b/java/com/android/incallui/incall/impl/res/values-sq/strings.xml index 9ba18b5f48a72ba0447ae0e8713a3791a6a6c3c1..a0fca3668e43cc4db32b0763100a792c4683d58b 100644 --- a/java/com/android/incallui/incall/impl/res/values-sq/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-sq/strings.xml @@ -1,18 +1,33 @@ + + "Video tel." "Në pritje" "Shto telef." "Hiqi zërin" + "Mbyll tel." "Blloku i tasteve" - "Altoparlant" ", është aktiv" ", është joaktiv" "Shkri" "Menaxho" "Menaxho telefonuesit" "Shkëmbe" - "Tingulli" "Shënimi u dërgua" diff --git a/java/com/android/incallui/incall/impl/res/values-sr/strings.xml b/java/com/android/incallui/incall/impl/res/values-sr/strings.xml index 56a968453c343af32c6e6de0c266fc0383e92bcf..ec704511b2b1da52008b19d7d6388ae5d859cd3e 100644 --- a/java/com/android/incallui/incall/impl/res/values-sr/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-sr/strings.xml @@ -1,18 +1,33 @@ + + "Видео позив" "На чекање" "Додај позив" "Искључи звук" + "Заврши позив" "Тастатура" - "Звучник" ", укључен" ", искључен" "Обједини" "Управљај" "Управљајте позиваоцима" "Замени" - "Звук" "Белешка је послата" diff --git a/java/com/android/incallui/incall/impl/res/values-sv/strings.xml b/java/com/android/incallui/incall/impl/res/values-sv/strings.xml index 27d83b74b0112b226b9acaea38eb1980f2bce16e..ded45221cceb608bda3f9aa0fbdd988347b66c0f 100644 --- a/java/com/android/incallui/incall/impl/res/values-sv/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-sv/strings.xml @@ -1,18 +1,33 @@ + + "Videosamtal" "Parkera" "Lägg t samt." "Ljud av" + "Avsl. samtal" "Knappsats" - "Högtalare" ", är på" ", är av" "Sammanfoga" "Hantera" "Hantera uppringare" "Växla" - "Ljud" "Anteckning skickad" diff --git a/java/com/android/incallui/incall/impl/res/values-sw/strings.xml b/java/com/android/incallui/incall/impl/res/values-sw/strings.xml index 136fe1713f53e3d5fb6b9a56709f00c31e678066..df634f4694cb4d2f0db9282e7f2cdbbbfadb9bb7 100644 --- a/java/com/android/incallui/incall/impl/res/values-sw/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-sw/strings.xml @@ -1,18 +1,33 @@ + + "Hangout ya video" "Shikilia" "Ongeza simu" "Zima maikrofoni" + "Kata simu" "Vitufe vya Simu" - "Spika" ", kimewashwa" ", kimezimwa" "Unganisha" "Dhibiti" "Dhibiti wanaopiga simu" "Badili" - "Sauti" "Dokezo limetumwa" diff --git a/java/com/android/incallui/incall/impl/res/values-ta/strings.xml b/java/com/android/incallui/incall/impl/res/values-ta/strings.xml index 342f8d0419a09f0f92e6b5f909d337d75997973f..5c94abff418ce64216570b3005d976cbb375bfcf 100644 --- a/java/com/android/incallui/incall/impl/res/values-ta/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ta/strings.xml @@ -1,18 +1,33 @@ + + "வீடியோ கால்" "ஹோல்டில் வை" "அழைப்பை சேர்" "முடக்கு" + "அழைப்பை முடி" "விசைத்தளம்" - "ஸ்பீக்கர்" ", ஆன்" ", ஆஃப்" "இணை" "நிர்வகி" "அழைப்பாளர்களை நிர்வகிக்கும்" "மாற்று" - "ஒலி" "குறிப்பு அனுப்பப்பட்டது" diff --git a/java/com/android/incallui/incall/impl/res/values-te/strings.xml b/java/com/android/incallui/incall/impl/res/values-te/strings.xml index 004895647b3731136c5198a5da14efae38cac9f8..0cb3fb837ce3a2304f90e25b8fe88379fb6ca6c0 100644 --- a/java/com/android/incallui/incall/impl/res/values-te/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-te/strings.xml @@ -1,18 +1,33 @@ + + "వీడియో కాల్" "హోల్డ్ చేయి" "కాల్ జోడించు" "మ్యూట్ చేయి" + "కాల్ ముగించు" "కీప్యాడ్" - "స్పీకర్" ", ఆన్‌లో ఉంది" ", ఆఫ్‌లో ఉంది" "విలీనం చేయి" "నిర్వహించు" "కాలర్‌లను నిర్వహిస్తుంది" "మార్చు" - "శబ్దం" "గమనిక పంపబడింది" diff --git a/java/com/android/incallui/incall/impl/res/values-th/strings.xml b/java/com/android/incallui/incall/impl/res/values-th/strings.xml index a74028842399bef5fd7a05f00d1773d84684321e..0929cfc23f803ef5765d9fc9544ef3392e1c04e2 100644 --- a/java/com/android/incallui/incall/impl/res/values-th/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-th/strings.xml @@ -1,18 +1,33 @@ + + "แฮงเอาท์วิดีโอ" "พักสาย" "เพิ่มการโทร" "ปิดเสียง" + "วางสาย" "ปุ่มกด" - "ลำโพง" "เปิดอยู่" "ปิดอยู่" "รวม" "จัดการ" "จัดการผู้โทร" "สลับ" - "เสียง" "ส่งโน้ตแล้ว" diff --git a/java/com/android/incallui/incall/impl/res/values-tl/strings.xml b/java/com/android/incallui/incall/impl/res/values-tl/strings.xml index 46ff797313cce542a1d3b5ecf4f4a7e6391ba5c3..1ac2ef88cfcfe0fe664daf724b2cb90695dc0ed1 100644 --- a/java/com/android/incallui/incall/impl/res/values-tl/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-tl/strings.xml @@ -1,18 +1,33 @@ + + "Video call" "I-hold" "Mag-add: tawag" "I-mute" + "Tapusin ang tawag" "Keypad" - "Speaker" ",ay On" ", ay Off" "I-merge" "Pamahalaan" "Pamahalaan ang mga tumatawag" "Pagpalitin" - "Tunog" "Naipadala ang tala" diff --git a/java/com/android/incallui/incall/impl/res/values-tr/strings.xml b/java/com/android/incallui/incall/impl/res/values-tr/strings.xml index 89ca3302f69ae8f838e2708d37b644d2dbf2961d..241b69429199d2357c8870c81971bf28b0b0f5fb 100644 --- a/java/com/android/incallui/incall/impl/res/values-tr/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-tr/strings.xml @@ -1,18 +1,33 @@ + + "Görü. görüş." "Beklemeye al" "Çağrı ekle" "Sesi kapat" + "Çğryı sonldr" "Tuş takımı" - "Hoparlör" ", Açık" ", Kapalı" "Birleştir" "Yönet" "Arayanları yönetin" "Değiştir" - "Ses" "Not gönderildi" diff --git a/java/com/android/incallui/incall/impl/res/values-uk/strings.xml b/java/com/android/incallui/incall/impl/res/values-uk/strings.xml index 516bcb757df4a00ad92b6a708b97cd024cd53769..1821556fa1bed27643745041e9ccddf344602e42 100644 --- a/java/com/android/incallui/incall/impl/res/values-uk/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-uk/strings.xml @@ -1,18 +1,33 @@ + + "Відеодзвінок" "Утримувати" "Дод. виклик" "Без звуку" + "Завер. викл." "Клавіатура" - "Динамік" ", увімкнено" ", вимкнено" "Об’єднати" "Керувати" "Керувати абонентами" "Поміняти" - "Звук" "Нотатку надіслано" diff --git a/java/com/android/incallui/incall/impl/res/values-ur/strings.xml b/java/com/android/incallui/incall/impl/res/values-ur/strings.xml index 53ba19031c8ba91aeda54126bd643dfa5ccc33b2..fed0af6c249937c84c7ab2d52dae4685cd5071ee 100644 --- a/java/com/android/incallui/incall/impl/res/values-ur/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ur/strings.xml @@ -1,18 +1,33 @@ + + "ویڈیو کال" "ہولڈ کریں" "کال شامل کریں" "خاموش کریں" + "کال ختم کریں" "کی پیڈ" - "اسپیکر" "، آن ہے" "، آف ہے" "ضم کریں" "نظم کریں" "کالرز کا نظم کریں" "تبادلہ کریں" - "آواز" "نوٹ بھیج دیا گیا" diff --git a/java/com/android/incallui/incall/impl/res/values-uz/strings.xml b/java/com/android/incallui/incall/impl/res/values-uz/strings.xml index 88184896509c299c417aecfa4ddb5c41ff6937b4..7d6af27b23ce09dd27f4847500aa74667737a594 100644 --- a/java/com/android/incallui/incall/impl/res/values-uz/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-uz/strings.xml @@ -1,18 +1,33 @@ + + "Video qo‘n." "Pauza" "Chaqiruv" "Ovozsiz" + "Tugatish" "Klaviatura" - "Karnay" ", yoniq" ", o‘chiq" - "Birlashtir." + "Birlashtirish" "Boshqarish" "Qo‘ng‘iroq qiluvchilarni boshqarish" "Almashish" - "Ovoz" "Qayd yuborildi" diff --git a/java/com/android/incallui/incall/impl/res/values-vi/strings.xml b/java/com/android/incallui/incall/impl/res/values-vi/strings.xml index 29f85efab1918d51ae502c5f30047b06a03d7ee2..42e320a7a9613fdd738c288535ac09c9eba9492d 100644 --- a/java/com/android/incallui/incall/impl/res/values-vi/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-vi/strings.xml @@ -1,18 +1,33 @@ + + "Gọi điện video" "Giữ" "Thêm cuộc gọi" "Tắt tiếng" + "Kết thúc cuộc gọi" "Bàn phím" - "Loa" ", đang bật" ", đang tắt" "Hợp nhất" "Quản lý" "Quản lý người gọi" "Hoán đổi" - "Âm thanh" "Đã gửi ghi chú" diff --git a/java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml deleted file mode 100644 index e73eb934c5df1dc546929629572478ae1252bd15..0000000000000000000000000000000000000000 --- a/java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - 16dp - 16dp - 64dp - 92dp - diff --git a/java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..834ea2f30223b18a720aaff3a2b9baf605760eaa --- /dev/null +++ b/java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml @@ -0,0 +1,23 @@ + + + + + 16dp + 16dp + 64dp + 92dp + diff --git a/java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml deleted file mode 100644 index 502ae72dc7533ba37df3b3541019ccde19235c09..0000000000000000000000000000000000000000 --- a/java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - 32dp - 32dp - diff --git a/java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..c7ac35efcad3609d65908e2e797176508b4ecb6d --- /dev/null +++ b/java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml @@ -0,0 +1,21 @@ + + + + + 32dp + 32dp + diff --git a/java/com/android/incallui/incall/impl/res/values-zh-rCN/strings.xml b/java/com/android/incallui/incall/impl/res/values-zh-rCN/strings.xml index ec64045692026a8e884d901c9a90f66346f59b19..f0cca9060a78a90bca2b712e13f50c22b0200614 100644 --- a/java/com/android/incallui/incall/impl/res/values-zh-rCN/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-zh-rCN/strings.xml @@ -1,18 +1,33 @@ + + "视频通话" "保持" "添加通话" "静音" + "结束通话" "拨号键盘" - "免提" ",已开启" ",已关闭" "合并" "管理" "管理来电者" "切换" - "声音" "已发送备注" diff --git a/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml b/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml index 63cd6d8c8452c291f92506f239cefca2d4189029..c38ef35a059dbc6c26c0381833f17bfdc977a7ef 100644 --- a/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml @@ -1,18 +1,33 @@ + + "視像通話" "保留" "新增通話" "靜音" + "結束通話" "小鍵盤" - "揚聲器" ",已開啟" ",已關閉" "合併" "管理" "管理來電者" "切換" - "音效" "已傳送筆記" diff --git a/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml b/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml index be3103ba6d78d5eb3e98ffb7f18aa0116611dfb4..c04b8309e769be75931940e89d071e70a35349e2 100644 --- a/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml @@ -1,18 +1,33 @@ + + "視訊通話" "保留" "新增通話" "靜音" + "結束通話" "撥號鍵盤" - "擴音模式" ",已開啟" ",已關閉" "合併" "管理" "管理來電者" "切換" - "音訊" "備註已送出" diff --git a/java/com/android/incallui/incall/impl/res/values-zu/strings.xml b/java/com/android/incallui/incall/impl/res/values-zu/strings.xml index df3f79484b0548d18578bb30ffe256075bb9fc70..a23a1d5e3460a301ff01d99cd31f04abc72c94bc 100644 --- a/java/com/android/incallui/incall/impl/res/values-zu/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-zu/strings.xml @@ -1,18 +1,33 @@ + + "Ikholi yevidiyo ye-Hangout" "Bamba" "Engeza ikholi" "Thulisa" + "Qeda ikholi" "Ikhiphedi" - "Isipikha" ", ivuliwe" ", ivaliwe" "Hlanganisa" "Phatha" "Phatha abashayi" "Shintsha" - "Umsindo" "Inothi lithunyelwe" diff --git a/java/com/android/incallui/incall/impl/res/values/strings.xml b/java/com/android/incallui/incall/impl/res/values/strings.xml index 054ca9687b8119233ec978b73917b18c24ffce33..2b30dfa5386b5900bd2ee91e871280cb53dffe22 100644 --- a/java/com/android/incallui/incall/impl/res/values/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values/strings.xml @@ -1,4 +1,19 @@ + Mute - - Keypad + End call - - Speaker + Keypad , is on @@ -45,12 +60,9 @@ [CHAR LIMIT=12] --> Swap - - Sound Note sent - \ No newline at end of file + diff --git a/java/com/android/incallui/incall/protocol/PrimaryCallState.java b/java/com/android/incallui/incall/protocol/PrimaryCallState.java index 2ae6a18e5b25d628a21aa73296159bd2f68f24a9..26dd3887aa6f3ecf23bf0339c07e54df405a5b7c 100644 --- a/java/com/android/incallui/incall/protocol/PrimaryCallState.java +++ b/java/com/android/incallui/incall/protocol/PrimaryCallState.java @@ -44,6 +44,7 @@ public class PrimaryCallState { public final boolean isVoiceMailNumber; public final boolean isRemotelyHeld; public final boolean isBusinessNumber; + public final boolean supportsCallOnHold; // TODO: Convert to autovalue. b/34502119 public static PrimaryCallState createEmptyPrimaryCallState() { @@ -67,7 +68,8 @@ public class PrimaryCallState { 0, false /* isVoiceMailNumber */, false /* isRemotelyHeld */, - false /* isBusinessNumber */); + false /* isBusinessNumber */, + true /* supportsCallOnHold */); } public PrimaryCallState( @@ -90,7 +92,8 @@ public class PrimaryCallState { long connectTimeMillis, boolean isVoiceMailNumber, boolean isRemotelyHeld, - boolean isBusinessNumber) { + boolean isBusinessNumber, + boolean supportsCallOnHold) { this.state = state; this.isVideoCall = isVideoCall; this.sessionModificationState = sessionModificationState; @@ -111,6 +114,7 @@ public class PrimaryCallState { this.isVoiceMailNumber = isVoiceMailNumber; this.isRemotelyHeld = isRemotelyHeld; this.isBusinessNumber = isBusinessNumber; + this.supportsCallOnHold = supportsCallOnHold; } @Override diff --git a/java/com/android/incallui/res/drawable-hdpi/img_conference.png b/java/com/android/incallui/res/drawable-hdpi/img_conference.png deleted file mode 100644 index 3d9f683a58a696d3afa6a61031959036a2c15836..0000000000000000000000000000000000000000 Binary files a/java/com/android/incallui/res/drawable-hdpi/img_conference.png and /dev/null differ diff --git a/java/com/android/incallui/res/drawable-mdpi/img_conference.png b/java/com/android/incallui/res/drawable-mdpi/img_conference.png deleted file mode 100644 index 0694dbd556796c5c3455263db478100ae34b91d3..0000000000000000000000000000000000000000 Binary files a/java/com/android/incallui/res/drawable-mdpi/img_conference.png and /dev/null differ diff --git a/java/com/android/incallui/res/drawable-xhdpi/img_conference.png b/java/com/android/incallui/res/drawable-xhdpi/img_conference.png deleted file mode 100644 index b0dbcc2dc1501ca8d5b825d0b6baf198362b0747..0000000000000000000000000000000000000000 Binary files a/java/com/android/incallui/res/drawable-xhdpi/img_conference.png and /dev/null differ diff --git a/java/com/android/incallui/res/drawable-xxhdpi/img_conference.png b/java/com/android/incallui/res/drawable-xxhdpi/img_conference.png deleted file mode 100644 index a8dba5ed02efd651135c248d2dbcefc4962217ed..0000000000000000000000000000000000000000 Binary files a/java/com/android/incallui/res/drawable-xxhdpi/img_conference.png and /dev/null differ diff --git a/java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png b/java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png deleted file mode 100644 index eb42b5552108d1db6364c8c6bb1d4b68d9a255a0..0000000000000000000000000000000000000000 Binary files a/java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png and /dev/null differ diff --git a/java/com/android/incallui/res/values-ca/strings.xml b/java/com/android/incallui/res/values-ca/strings.xml index 5148db5408cc2d38269c2b1bee5f11306cae1896..ad34b00ef9046b70547bca81833447c95310121e 100644 --- a/java/com/android/incallui/res/values-ca/strings.xml +++ b/java/com/android/incallui/res/values-ca/strings.xml @@ -136,6 +136,6 @@ "En una trucada" "S\'està continuant la trucada mitjançant dades mòbils…" "No s\'ha pogut canviar a la xarxa Wi-Fi" - "La videotrucada es mantindrà a la xarxa mòbil. És possible que s\'apliquin càrrecs de dades estàndard." + "La videotrucada es mantindrà a la xarxa mòbil. És possible que s\'hi apliquin càrrecs de dades estàndard." "No ho tornis a mostrar" diff --git a/java/com/android/incallui/res/values-mcc262-mnc01/strings.xml b/java/com/android/incallui/res/values-mcc262-mnc01/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..2679653a7485e39cc53d626f13b3ac9de1f614aa --- /dev/null +++ b/java/com/android/incallui/res/values-mcc262-mnc01/strings.xml @@ -0,0 +1,32 @@ + + + + + + + Ongoing WLAN Call + + Ongoing WLAN work call + + Incoming WLAN Call + + Incoming WLAN work call + \ No newline at end of file diff --git a/java/com/android/incallui/res/values-uz/strings.xml b/java/com/android/incallui/res/values-uz/strings.xml index 38285015a6c1ea4e2607e3459f02341e2cb93264..b04972ffd10687fe2bd205a897db0d4e8cf07d68 100644 --- a/java/com/android/incallui/res/values-uz/strings.xml +++ b/java/com/android/incallui/res/values-uz/strings.xml @@ -36,7 +36,7 @@ "Chiquvchi Wi-Fi qo‘ng‘irog‘i" "Chiquvchi Wi-Fi ishchi qo‘ng‘irog‘i" "Kutmoqda" - "Kiruvchi qo‘ng‘iroq" + "Kiruvchi chaqiruv" "Suratga ega kiruvchi chaqiruv" "Xabarga ega kiruvchi chaqiruv" "Joylashuv axborotiga ega kiruvchi chaqiruv" diff --git a/java/com/android/incallui/res/values/dimens.xml b/java/com/android/incallui/res/values/dimens.xml index 18816f645ba8d25e54c8f7ef2d17b7bcc5391590..fb4934d015ad9677d8cb3c7de0709df41e430749 100644 --- a/java/com/android/incallui/res/values/dimens.xml +++ b/java/com/android/incallui/res/values/dimens.xml @@ -38,7 +38,7 @@ 0dp 20sp 50dp - 36sp + 36dp 10dp diff --git a/java/com/android/incallui/res/values/styles.xml b/java/com/android/incallui/res/values/styles.xml index 68a38f0b261eba9316540a8a99e48285b74e12ff..3c036c95ff1ae92fc442d7552cdec8a6d604f231 100644 --- a/java/com/android/incallui/res/values/styles.xml +++ b/java/com/android/incallui/res/values/styles.xml @@ -78,4 +78,13 @@ @color/dialer_theme_color + + diff --git a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml index ed29e78c4b02a8321dfcc0d65fae1feb894583de..3b3327d4f1a66654c7255a82cb9ddce250b70110 100644 --- a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml +++ b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml @@ -24,8 +24,8 @@ + android:scaleType="centerCrop"/> + + diff --git a/java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java b/java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java new file mode 100644 index 0000000000000000000000000000000000000000..5ab821be0b1bcee5a4699a4b9b7e941238329d46 --- /dev/null +++ b/java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.incallui.speakerbuttonlogic; + +import android.support.annotation.DrawableRes; +import android.support.annotation.IntDef; +import android.support.annotation.StringRes; +import android.telecom.CallAudioState; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** Info about how a "Speaker" button should be displayed */ +public class SpeakerButtonInfo { + + // Testing note: most of this is exercised in ReturnToCallTest.java + + /** Preferred size for icons */ + @Retention(RetentionPolicy.SOURCE) + @IntDef({IconSize.SIZE_24_DP, IconSize.SIZE_36_DP}) + public @interface IconSize { + int SIZE_24_DP = 1; + int SIZE_36_DP = 2; + } + + @DrawableRes public final int icon; + @StringRes public final int contentDescription; + @StringRes public final int label; + public final boolean checkable; + public final boolean isChecked; + + public SpeakerButtonInfo(CallAudioState audioState, @IconSize int iconSize) { + if ((audioState.getSupportedRouteMask() & CallAudioState.ROUTE_BLUETOOTH) + == CallAudioState.ROUTE_BLUETOOTH) { + checkable = false; + isChecked = false; + label = R.string.incall_label_audio; + + if ((audioState.getRoute() & CallAudioState.ROUTE_BLUETOOTH) + == CallAudioState.ROUTE_BLUETOOTH) { + icon = + iconSize == IconSize.SIZE_36_DP + ? R.drawable.quantum_ic_bluetooth_audio_white_36 + : R.drawable.quantum_ic_bluetooth_audio_white_24; + contentDescription = R.string.incall_content_description_bluetooth; + } else if ((audioState.getRoute() & CallAudioState.ROUTE_SPEAKER) + == CallAudioState.ROUTE_SPEAKER) { + icon = + iconSize == IconSize.SIZE_36_DP + ? R.drawable.quantum_ic_volume_up_white_36 + : R.drawable.quantum_ic_volume_up_white_24; + contentDescription = R.string.incall_content_description_speaker; + } else if ((audioState.getRoute() & CallAudioState.ROUTE_WIRED_HEADSET) + == CallAudioState.ROUTE_WIRED_HEADSET) { + icon = + iconSize == IconSize.SIZE_36_DP + ? R.drawable.quantum_ic_headset_white_36 + : R.drawable.quantum_ic_headset_white_24; + contentDescription = R.string.incall_content_description_headset; + } else { + icon = + iconSize == IconSize.SIZE_36_DP + ? R.drawable.quantum_ic_phone_in_talk_white_36 + : R.drawable.quantum_ic_phone_in_talk_white_24; + contentDescription = R.string.incall_content_description_earpiece; + } + } else { + checkable = true; + isChecked = audioState.getRoute() == CallAudioState.ROUTE_SPEAKER; + label = R.string.incall_label_speaker; + icon = + iconSize == IconSize.SIZE_36_DP + ? R.drawable.quantum_ic_volume_up_white_36 + : R.drawable.quantum_ic_volume_up_white_24; + contentDescription = R.string.incall_content_description_speaker; + } + } +} diff --git a/java/com/android/incallui/video/impl/SpeakerButtonController.java b/java/com/android/incallui/video/impl/SpeakerButtonController.java index e12032abf7857f64d5cda0b041390cfd6895fe8d..d98545feb25ad1cbb08f2376bbe76730c800d3ad 100644 --- a/java/com/android/incallui/video/impl/SpeakerButtonController.java +++ b/java/com/android/incallui/video/impl/SpeakerButtonController.java @@ -88,7 +88,7 @@ public class SpeakerButtonController implements OnCheckedChangeListener, OnClick icon = R.drawable.quantum_ic_headset_white_36; contentDescriptionResId = R.string.incall_content_description_headset; } else { - icon = R.drawable.ic_phone_audio_white_36dp; + icon = R.drawable.quantum_ic_phone_in_talk_white_36; contentDescriptionResId = R.string.incall_content_description_earpiece; } } else { diff --git a/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java b/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java index b7a960e352457cbe4d2253d074006b75f91dc80b..489f72b7d72897bfc95289a32b281b57f5df389c 100644 --- a/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java +++ b/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java @@ -495,7 +495,7 @@ public class SurfaceViewVideoCallFragment extends Fragment } private View[] getAllPreviewRelatedViews() { - return new View[] {previewRoot}; + return new View[] {previewRoot, mutePreviewOverlay}; } private int getOffsetTop(View view) { @@ -644,12 +644,6 @@ public class SurfaceViewVideoCallFragment extends Fragment updateVideoOffViews(); } - /** - * This method scales the video feed inside the texture view, it doesn't change the texture view's - * size. In the old UI we would change the view size to match the aspect ratio of the video. In - * the new UI the view is always square (with the circular clip) so we have to do additional work - * to make sure the non-square video doesn't look squished. - */ @Override public void onLocalVideoDimensionsChanged() { LogUtil.i("SurfaceViewVideoCallFragment.onLocalVideoDimensionsChanged", null); @@ -833,6 +827,9 @@ public class SurfaceViewVideoCallFragment extends Fragment inCallButtonUiDelegate.setAudioRoute(audioRoute); } + @Override + public void onAudioRouteSelectorDismiss() {} + @Override public void setPrimary(@NonNull PrimaryInfo primaryInfo) { LogUtil.i("SurfaceViewVideoCallFragment.setPrimary", primaryInfo.toString()); diff --git a/java/com/android/incallui/video/impl/VideoCallFragment.java b/java/com/android/incallui/video/impl/VideoCallFragment.java index 8e2f5aefd9103de1eac94b38b561238d1115cd69..6e45f928a56e42bd7cddacd048acee6b705acc7d 100644 --- a/java/com/android/incallui/video/impl/VideoCallFragment.java +++ b/java/com/android/incallui/video/impl/VideoCallFragment.java @@ -59,6 +59,7 @@ import android.widget.TextView; import com.android.dialer.common.Assert; import com.android.dialer.common.FragmentUtils; import com.android.dialer.common.LogUtil; +import com.android.dialer.common.concurrent.ThreadUtil; import com.android.dialer.compat.ActivityCompat; import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment; import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment.AudioRouteSelectorPresenter; @@ -665,22 +666,14 @@ public class VideoCallFragment extends Fragment updateRemoteVideoScaling(); } - /** - * This method scales the video feed inside the texture view, it doesn't change the texture view's - * size. In the old UI we would change the view size to match the aspect ratio of the video. In - * the new UI the view is always square (with the circular clip) so we have to do additional work - * to make sure the non-square video doesn't look squished. - */ @Override public void onLocalVideoDimensionsChanged() { LogUtil.i("VideoCallFragment.onLocalVideoDimensionsChanged", null); - updatePreviewVideoScaling(); } @Override public void onLocalVideoOrientationChanged() { LogUtil.i("VideoCallFragment.onLocalVideoOrientationChanged", null); - updatePreviewVideoScaling(); } /** Called when the remote video's dimensions change. */ @@ -852,6 +845,9 @@ public class VideoCallFragment extends Fragment inCallButtonUiDelegate.setAudioRoute(audioRoute); } + @Override + public void onAudioRouteSelectorDismiss() {} + @Override public void setPrimary(@NonNull PrimaryInfo primaryInfo) { LogUtil.i("VideoCallFragment.setPrimary", primaryInfo.toString()); @@ -1045,7 +1041,6 @@ public class VideoCallFragment extends Fragment params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); previewTextureView.setLayoutParams(params); previewTextureView.setOutlineProvider(circleOutlineProvider); - updatePreviewVideoScaling(); updateOverlayBackground(); contactGridManager.setIsMiddleRowVisible(false); updateMutePreviewOverlayVisibility(); @@ -1053,6 +1048,9 @@ public class VideoCallFragment extends Fragment previewOffBlurredImageView.setLayoutParams(params); previewOffBlurredImageView.setOutlineProvider(circleOutlineProvider); previewOffBlurredImageView.setClipToOutline(true); + + // Wait until the layout pass has finished before updating the scaling + ThreadUtil.postOnUiThread(this::updatePreviewVideoScaling); } private void updateVideoOffViews() { diff --git a/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml b/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml index c672466759f3a8e0dbbb3a07e77bc423df755c9f..1a2bc2429a4ee055ac0d217c4aaa86d6d1a029f1 100644 --- a/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml +++ b/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml @@ -14,7 +14,7 @@ ~ See the License for the specific language governing permissions and ~ limitations under the License --> - - - + + - + diff --git a/java/com/android/incallui/video/impl/res/values-h580dp/dimens.xml b/java/com/android/incallui/video/impl/res/values-h580dp/dimens.xml index a53fb64043ff1313602dfe391676b2a075ff02cc..e9e7f9e8b5620037c70c1f5472baa0a819f041fc 100644 --- a/java/com/android/incallui/video/impl/res/values-h580dp/dimens.xml +++ b/java/com/android/incallui/video/impl/res/values-h580dp/dimens.xml @@ -19,5 +19,5 @@ 72dp 88dp 88dp - 104dp + 116dp diff --git a/java/com/android/incallui/video/impl/res/values-land/dimens.xml b/java/com/android/incallui/video/impl/res/values-land/dimens.xml index 6485735e2bd37fa468a0a19f69309da197c2d0af..d0a5e409ac9afd791be85c33d75eaf06bdf0d5d0 100644 --- a/java/com/android/incallui/video/impl/res/values-land/dimens.xml +++ b/java/com/android/incallui/video/impl/res/values-land/dimens.xml @@ -15,5 +15,5 @@ ~ limitations under the License --> - 92dp + 96dp diff --git a/java/com/android/incallui/video/impl/res/values-land/styles.xml b/java/com/android/incallui/video/impl/res/values-land/styles.xml index a809708df6e3bee13f6326f0842808a6eee58863..f60dbd1d6ac8b955615fadf9717d0c9dc3706ac6 100644 --- a/java/com/android/incallui/video/impl/res/values-land/styles.xml +++ b/java/com/android/incallui/video/impl/res/values-land/styles.xml @@ -16,7 +16,8 @@ -->